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:
commit
ed33b47666
11
INSTALL.txt
11
INSTALL.txt
@ -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:
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
|
||||||
|
@ -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")
|
||||||
|
@ -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",
|
||||||
|
Binary file not shown.
@ -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"
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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 %}
|
||||||
|
@ -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)
|
||||||
|
|
||||||
|
@ -1 +0,0 @@
|
|||||||
{{ welcometext|safe|linebreaks }}
|
|
@ -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 {
|
||||||
|
Loading…
Reference in New Issue
Block a user