Merge branch 'master' of ssh://ssh.github.com/OpenSlides/OpenSlides

Conflicts:
	openslides/locale/de/LC_MESSAGES/django.po

Signed-off-by: René Köcher <shirk@bitspin.org>
This commit is contained in:
René Köcher 2012-11-22 12:52:11 +01:00
commit ed33b47666
12 changed files with 36 additions and 42 deletions

View File

@ -98,13 +98,12 @@ II. Installation on GNU/Linux and MacOSX
OR OR
b) Clone development version from mercurial repository b) Clone development version from OpenSlides' github repository
http://hg.openslides.org. This requires Mercurial source control https://github.com/OpenSlides/OpenSlides.
management (hg): This requires Git, see http://git-scm.com/.
Open command line (cmd) and run:
E.g. for Ubuntu run: git clone git://github.com/OpenSlides/OpenSlides.git
$ sudo apt-get install mercurial
$ hg clone http://hg.openslides.org OpenSlides
3. Setup your virtual environment with virtualenv: 3. Setup your virtual environment with virtualenv:

View File

@ -6,17 +6,11 @@ How to create a new portable Windows distribution of OpenSlides:
easy_install -Z django django-mptt reportlab pil easy_install -Z django django-mptt reportlab pil
2.) Install OpenSlides by running in the top directory: 2.) Run in the main directory of the OpenSlides checkout:
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:
python extras\win32-portable\prepare_portable.py 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 in the 'dist' directory

View File

@ -18,8 +18,6 @@ import zipfile
import distutils.ccompiler import distutils.ccompiler
import distutils.sysconfig import distutils.sysconfig
from contextlib import nested
import pkg_resources import pkg_resources
sys.path.insert(0, os.getcwd()) sys.path.insert(0, os.getcwd())
@ -80,10 +78,7 @@ SITE_PACKAGES = {
"pil": { "pil": {
# NOTE: PIL is a special case, see copy_pil # NOTE: PIL is a special case, see copy_pil
"copy": [], "copy": [],
}, }
"openslides": {
"copy" : ["openslides"],
},
} }
PY_DLLS = [ PY_DLLS = [
@ -297,9 +292,13 @@ def main():
raise raise
os.makedirs(odir) os.makedirs(odir)
out_site_packages = os.path.join(odir, "site-packages")
collect_lib(libdir, odir) 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(): if not compile_openslides_launcher():
sys.stdout.write("Using prebuild openslides.exe\n") sys.stdout.write("Using prebuild openslides.exe\n")

View File

@ -3,7 +3,7 @@
"pk": 1, "pk": 1,
"model": "auth.group", "model": "auth.group",
"fields": { "fields": {
"name": "Beobachter", "name": "Beobachter/in",
"permissions": [ "permissions": [
[ [
"can_see_agenda", "can_see_agenda",
@ -57,7 +57,7 @@
"pk": 2, "pk": 2,
"model": "auth.group", "model": "auth.group",
"fields": { "fields": {
"name": "Delegierter", "name": "Delegierte/r",
"permissions": [ "permissions": [
[ [
"can_see_agenda", "can_see_agenda",

View File

@ -2189,6 +2189,10 @@ msgstr "Teilnehmer/in ist kein Mitglied einer Gruppe."
msgid "The participant has not logged in yet." msgid "The participant has not logged in yet."
msgstr "Teilnehmer/in hat sich noch nicht angemeldet." msgstr "Teilnehmer/in hat sich noch nicht angemeldet."
#: participant/templates/projector/GroupSlide.html:11
msgid "participants"
msgstr "Teilnehmer/innen"
#: poll/models.py:95 #: poll/models.py:95
msgid "Votes invalid" msgid "Votes invalid"
msgstr "Ungültige Stimmen" msgstr "Ungültige Stimmen"

View File

@ -93,10 +93,12 @@
<a href="{% url user_edit user.id %}"> <a href="{% url user_edit user.id %}">
<img src="{% static 'images/icons/edit.png' %}" title="{% trans 'Edit participant' %}"> <img src="{% static 'images/icons/edit.png' %}" title="{% trans 'Edit participant' %}">
</a> </a>
{% if user != request_user and not user.is_superuser %} {% if user != request_user %}
<a href="{% url user_delete user.id %}"> <a href="{% url user_delete user.id %}">
<img src="{% static 'images/icons/delete.png' %}" title="{% trans 'Delete participant' %}"> <img src="{% static 'images/icons/delete.png' %}" title="{% trans 'Delete participant' %}">
</a> </a>
{% endif %}
{% if user != request_user and not user.is_superuser %}
<a class="status_link deactivate" href="{% url user_status_deactivate user.id %}" title="{% trans 'Change status to inactive' %}"{% if not user.is_active %} style="display:none"{% endif %}> <a class="status_link deactivate" href="{% url user_status_deactivate user.id %}" title="{% trans 'Change status to inactive' %}"{% if not user.is_active %} style="display:none"{% endif %}>
<span></span> <span></span>
</a> </a>

View File

@ -14,7 +14,7 @@
{% endif %} {% endif %}
</li> </li>
{% empty %} {% empty %}
<li>{% trans "None" %}</li> <li><i>{% trans "None" %}</i></li>
{% endfor %} {% endfor %}
</ul> </ul>
@ -33,7 +33,7 @@
{% endif %} {% endif %}
</li> </li>
{% empty %} {% empty %}
<li>{% trans "None" %}</li> <li><i>{% trans "None" %}</i></li>
{% endfor %} {% endfor %}
</ul> </ul>
{% endif %} {% endif %}
@ -44,6 +44,6 @@
{% for assignment in assignments %} {% for assignment in assignments %}
<li><a href="{% model_url assignment 'view' %}">{{ assignment }}</a></li> <li><a href="{% model_url assignment 'view' %}">{{ assignment }}</a></li>
{% empty %} {% empty %}
<li>{% trans "None" %}</li> <li><i>{% trans "None" %}</i></li>
{% endfor %} {% endfor %}
</ul> </ul>

View File

@ -6,20 +6,19 @@
{% block title %}{{ block.super }} - {{ title }}{% endblock %} {% block title %}{{ block.super }} - {{ title }}{% endblock %}
{% block content %} {% block content %}
<div class="item_fullscreen">{{ group }}
<h1>{{ group }}</h1> <span>
<p>{{ group.description }}</p> <p><i>{{ group.user_set.all.count }} {% trans "participants" %}:</i></p>
<p>
<h2>{% trans "Members" %}</h2> {% if group.user_set.all %}
{{ group.user_set.all|join:", " }}
{% endif %}
</p>
</span>
</div>
{% endblock %} {% endblock %}
{% block scrollcontent %} {% block scrollcontent %}
{% for member in group.user_set.all %}
<p>{{ member }}</p>
{% empty %}
<p>{% trans "No members available." %}</p>
{% endfor %}
{% endblock %} {% endblock %}

View File

@ -208,8 +208,6 @@ class UserDeleteView(DeleteView):
def pre_redirect(self, request, *args, **kwargs): def pre_redirect(self, request, *args, **kwargs):
if self.get_object() == self.request.user: if self.get_object() == self.request.user:
messages.error(request, _("You can not delete yourself.")) messages.error(request, _("You can not delete yourself."))
elif self.get_object().is_superuser:
messages.error(request, _("You can not delete the administrator."))
else: else:
super(DeleteView, self).pre_redirect(request, *args, **kwargs) super(DeleteView, self).pre_redirect(request, *args, **kwargs)

View File

@ -1 +0,0 @@
{{ welcometext|safe|linebreaks }}

View File

@ -316,7 +316,7 @@ input[type="submit"], input[type="button"] {
padding:4px 10px !important; padding:4px 10px !important;
margin: 2px 0 2px 0; margin: 2px 0 2px 0;
} }
#id_permissions { #id_permissions, #id_users {
height: 310px; height: 310px;
} }
.button { .button {