diff --git a/INSTALL.txt b/INSTALL.txt index b1a15f014..68ef8416a 100644 --- a/INSTALL.txt +++ b/INSTALL.txt @@ -98,13 +98,12 @@ II. Installation on GNU/Linux and MacOSX OR - b) Clone development version from mercurial repository - http://hg.openslides.org. This requires Mercurial source control - management (hg): + b) Clone development version from OpenSlides' github repository + https://github.com/OpenSlides/OpenSlides. + This requires Git, see http://git-scm.com/. + Open command line (cmd) and run: - E.g. for Ubuntu run: - $ sudo apt-get install mercurial - $ hg clone http://hg.openslides.org OpenSlides + git clone git://github.com/OpenSlides/OpenSlides.git 3. Setup your virtual environment with virtualenv: diff --git a/extras/win32-portable/create_portable.txt b/extras/win32-portable/create_portable.txt index 6213aafd6..5c5fa2c41 100644 --- a/extras/win32-portable/create_portable.txt +++ b/extras/win32-portable/create_portable.txt @@ -6,17 +6,11 @@ How to create a new portable Windows distribution of OpenSlides: easy_install -Z django django-mptt reportlab pil -2.) Install OpenSlides by running in the top directory: - - python setup.py install - - NOTE: This step must be repeated whenever you make changes to OpenSlides. - -3.) Run in the main directory of the OpenSlides checkout: +2.) Run in the main directory of the OpenSlides checkout: python extras\win32-portable\prepare_portable.py -4.) The portable OpenSlides distribution is now ready as a zip archive +3.) The portable OpenSlides distribution is now ready as a zip archive in the 'dist' directory diff --git a/extras/win32-portable/prepare_portable.py b/extras/win32-portable/prepare_portable.py index 04c1e0cc7..9418b8e10 100644 --- a/extras/win32-portable/prepare_portable.py +++ b/extras/win32-portable/prepare_portable.py @@ -18,8 +18,6 @@ import zipfile import distutils.ccompiler import distutils.sysconfig -from contextlib import nested - import pkg_resources sys.path.insert(0, os.getcwd()) @@ -80,10 +78,7 @@ SITE_PACKAGES = { "pil": { # NOTE: PIL is a special case, see copy_pil "copy": [], - }, - "openslides": { - "copy" : ["openslides"], - }, + } } PY_DLLS = [ @@ -297,9 +292,13 @@ def main(): raise os.makedirs(odir) + out_site_packages = os.path.join(odir, "site-packages") collect_lib(libdir, odir) - collect_site_packages(sitedir, os.path.join(odir, "site-packages")) + collect_site_packages(sitedir, out_site_packages) + + exclude = get_pkg_exclude("openslides") + copy_dir_exclude(exclude, ".", "openslides", out_site_packages) if not compile_openslides_launcher(): sys.stdout.write("Using prebuild openslides.exe\n") diff --git a/initial_data.json b/initial_data.json index a0d786baf..b662beff6 100644 --- a/initial_data.json +++ b/initial_data.json @@ -3,7 +3,7 @@ "pk": 1, "model": "auth.group", "fields": { - "name": "Beobachter", + "name": "Beobachter/in", "permissions": [ [ "can_see_agenda", @@ -57,7 +57,7 @@ "pk": 2, "model": "auth.group", "fields": { - "name": "Delegierter", + "name": "Delegierte/r", "permissions": [ [ "can_see_agenda", diff --git a/openslides/locale/de/LC_MESSAGES/django.mo b/openslides/locale/de/LC_MESSAGES/django.mo index 8a6529757..e3d56e464 100644 Binary files a/openslides/locale/de/LC_MESSAGES/django.mo and b/openslides/locale/de/LC_MESSAGES/django.mo differ diff --git a/openslides/locale/de/LC_MESSAGES/django.po b/openslides/locale/de/LC_MESSAGES/django.po index c693aed2a..cebb45241 100644 --- a/openslides/locale/de/LC_MESSAGES/django.po +++ b/openslides/locale/de/LC_MESSAGES/django.po @@ -2189,6 +2189,10 @@ msgstr "Teilnehmer/in ist kein Mitglied einer Gruppe." msgid "The participant has not logged in yet." msgstr "Teilnehmer/in hat sich noch nicht angemeldet." +#: participant/templates/projector/GroupSlide.html:11 +msgid "participants" +msgstr "Teilnehmer/innen" + #: poll/models.py:95 msgid "Votes invalid" msgstr "Ungültige Stimmen" diff --git a/openslides/participant/templates/participant/overview.html b/openslides/participant/templates/participant/overview.html index f61afe04f..310cbf04c 100644 --- a/openslides/participant/templates/participant/overview.html +++ b/openslides/participant/templates/participant/overview.html @@ -93,10 +93,12 @@ - {% if user != request_user and not user.is_superuser %} + {% if user != request_user %} + {% endif %} + {% if user != request_user and not user.is_superuser %} diff --git a/openslides/participant/templates/participant/personal_info_widget.html b/openslides/participant/templates/participant/personal_info_widget.html index 260469b59..c9e405552 100644 --- a/openslides/participant/templates/participant/personal_info_widget.html +++ b/openslides/participant/templates/participant/personal_info_widget.html @@ -14,7 +14,7 @@ {% endif %} {% empty %} -
  • {% trans "None" %}
  • +
  • {% trans "None" %}
  • {% endfor %} @@ -33,7 +33,7 @@ {% endif %} {% empty %} -
  • {% trans "None" %}
  • +
  • {% trans "None" %}
  • {% endfor %} {% endif %} @@ -44,6 +44,6 @@ {% for assignment in assignments %}
  • {{ assignment }}
  • {% empty %} -
  • {% trans "None" %}
  • +
  • {% trans "None" %}
  • {% endfor %} diff --git a/openslides/participant/templates/projector/GroupSlide.html b/openslides/participant/templates/projector/GroupSlide.html index 26d420bef..90f738743 100644 --- a/openslides/participant/templates/projector/GroupSlide.html +++ b/openslides/participant/templates/projector/GroupSlide.html @@ -6,20 +6,19 @@ {% block title %}{{ block.super }} - {{ title }}{% endblock %} {% block content %} - -

    {{ group }}

    -

    {{ group.description }}

    - -

    {% trans "Members" %}

    +
    {{ group }} + +

    {{ group.user_set.all.count }} {% trans "participants" %}:

    +

    + {% if group.user_set.all %} + {{ group.user_set.all|join:", " }} + {% endif %} +

    +
    +
    {% endblock %} {% block scrollcontent %} - {% for member in group.user_set.all %} -

    {{ member }}

    - {% empty %} -

    {% trans "No members available." %}

    - {% endfor %} - {% endblock %} diff --git a/openslides/participant/views.py b/openslides/participant/views.py index a055beefb..5b1097295 100644 --- a/openslides/participant/views.py +++ b/openslides/participant/views.py @@ -208,8 +208,6 @@ class UserDeleteView(DeleteView): def pre_redirect(self, request, *args, **kwargs): if self.get_object() == self.request.user: messages.error(request, _("You can not delete yourself.")) - elif self.get_object().is_superuser: - messages.error(request, _("You can not delete the administrator.")) else: super(DeleteView, self).pre_redirect(request, *args, **kwargs) diff --git a/openslides/projector/templates/projector/static_info_widget.html b/openslides/projector/templates/projector/static_info_widget.html deleted file mode 100644 index b99a5cbd9..000000000 --- a/openslides/projector/templates/projector/static_info_widget.html +++ /dev/null @@ -1 +0,0 @@ -{{ welcometext|safe|linebreaks }} diff --git a/openslides/static/styles/base.css b/openslides/static/styles/base.css index 088171aae..1c55ebc61 100644 --- a/openslides/static/styles/base.css +++ b/openslides/static/styles/base.css @@ -316,7 +316,7 @@ input[type="submit"], input[type="button"] { padding:4px 10px !important; margin: 2px 0 2px 0; } -#id_permissions { +#id_permissions, #id_users { height: 310px; } .button {