Automated merge with ssh://openslides.org/openslides

This commit is contained in:
Emanuel Schuetze 2011-09-03 18:11:54 +02:00
commit ad263ea6a0
23 changed files with 540 additions and 527 deletions

View File

@ -59,7 +59,7 @@ def children_list(items):
return l
def gen_confirm_form_for_items(request, message, url):
messages.warning(request, '%s<form action="%s" method="post"><input type="hidden" value="%s" name="csrfmiddlewaretoken"><input type="submit" value="%s" /> <input type="submit" name="all" value="%s" /><input type="button" value="%s"></form>' % (message, url, csrf(request)['csrf_token'], _("Yes"), _("with children"), _("No")))
messages.warning(request, '%s<form action="%s" method="post"><input type="hidden" value="%s" name="csrfmiddlewaretoken"><input type="submit" value="%s" /> <input type="submit" name="all" value="%s" /> <input type="button" value="%s"></form>' % (message, url, csrf(request)['csrf_token'], _("Yes"), _("Yes, with all child items."), _("No")))
def del_confirm_form_for_items(request, object, name=None):
if name is None:

View File

@ -13,7 +13,7 @@
from django.forms import Form, ModelForm, IntegerField, ChoiceField, \
ModelChoiceField, HiddenInput, Select
from django.utils.translation import ugettext as _
from openslides.agenda.models import Item, ItemText, ItemApplication, ItemPoll, \
from openslides.agenda.models import Item, ItemText, ItemApplication, \
ItemAssignment
class ItemFormText(ModelForm):
@ -23,7 +23,7 @@ class ItemFormText(ModelForm):
parent = ModelChoiceField(queryset=items, label=_("Parent item"), required=False)
class Meta:
model = ItemText
exclude = ('closed')
exclude = ('closed', 'weight')
class ItemFormApplication(ModelForm):
@ -34,18 +34,7 @@ class ItemFormApplication(ModelForm):
class Meta:
model = ItemApplication
exclude = ('closed')
class ItemFormPoll(ModelForm):
error_css_class = 'error'
required_css_class = 'required'
items = Item.objects.all().filter(parent=None).order_by('weight')
parent = ModelChoiceField(queryset=items, label=_("Parent item"), required=False)
class Meta:
model = ItemPoll
exclude = ('closed')
exclude = ('closed', 'weight')
class ItemFormAssignment(ModelForm):
@ -56,7 +45,7 @@ class ItemFormAssignment(ModelForm):
class Meta:
model = ItemAssignment
exclude = ('closed')
exclude = ('closed', 'weight')
def genweightchoices():
@ -77,6 +66,5 @@ class ElementOrderForm(Form):
MODELFORM = {
'ItemText': ItemFormText,
'ItemApplication': ItemFormApplication,
'ItemPoll': ItemFormPoll,
'ItemAssignment': ItemFormAssignment,
}

View File

@ -27,7 +27,7 @@
<span class="icon ok">{%trans 'Save' %}</span>
</button>
<button type="submit" name="apply">
<span class="icon ok">{%trans 'Apply' %}</span>
<span class="icon apply">{%trans 'Apply' %}</span>
</button>
<a href='{% url item_overview %}'>
<button type="button">

View File

@ -51,7 +51,7 @@
<th style="width: 1px;">{% trans "Beamer" %}</th>
<th>{% trans "Item" %}</th>
{% if perms.agenda.can_manage_agenda %}
<th>{% trans "Item Type" %}</th>
<th>{% trans "Type" %}</th>
{% endif %}
<th style="width: 1px;">{% if perms.agenda.can_manage_agenda %}{% trans "Actions" %}{% endif %}</th>
{% if perms.agenda.can_manage_agenda %}
@ -59,9 +59,7 @@
{% endif %}
</tr>
<tr id="item_row_0"{% if overview %} class="activeline"{% else %}{% if perms.agenda.can_manage_agenda %} class="inactiveline"{% endif %}{% endif %}>
<td {% if perms.agenda.can_manage_agenda %}
class="select"
{% endif %}>
<td class="select">
<a href="{% url item_activate 0 %}" class="activate_link">
<div></div>
</a>
@ -70,7 +68,10 @@
{% if perms.agenda.can_manage_agenda %}
<td></td>
{% endif %}
<td id="action_field" style="width: 1px;white-space: nowrap"><a href="{% url print_agenda %}" title="{%trans 'Print agenda' %}"><img src="/static/images/icons/application-pdf.png"></a></td>
<td id="action_field" style="width: 1px;white-space: nowrap;">
<div></div>
<a href="{% url print_agenda %}" title="{%trans 'Print agenda' %}"><img src="/static/images/icons/application-pdf.png"></a>
</td>
</tr>
{% for item in items %}
{% if not item.hidden or perms.agenda.can_manage_agenda %}
@ -81,9 +82,7 @@
{% if perms.agenda.can_manage_aenda %} inactiveline{% endif %}
{% endif %}">
<script type="text/javascript">$(function(){ViewModel.slides.push(new Slide({{ item.json|safe }}))});</script>
<td {% if perms.agenda.can_manage_agenda %} {# TODO: welchen Sinn hat das? #}
class="select"
{% endif %}>
<td class="select">
<a id="activate_link_{{ item.id }}" class="activate_link" href="{% url item_activate item.id %}">
<div></div>
</a>
@ -124,7 +123,7 @@
{% endifequal %}
</td>
{% endif %}
<td style="width: 1px;white-space: nowrap">
<td style="width: 1px;white-space: nowrap;">
<a href="{{ item.get_absolute_url }}"><img src="/static/images/icons/document-preview.png" title="{% trans 'Show beamer preview' %}"></a>
{% if perms.agenda.can_manage_agenda %}

View File

@ -234,12 +234,6 @@ def edit(request, item_id=None, form='ItemText', default=None):
'application': application,
'title': application.title,
}
elif form == "ItemPoll":
poll = Poll.objects.get(pk=default)
initial = {
'poll': poll,
'title': poll.title,
}
if item_id is None:
form = MODELFORM[form](initial=initial)

View File

@ -363,7 +363,7 @@ class Application(models.Model):
raise AttributeError(name)
raise AttributeError(name)
def gen_poll(self, user=None, pollcount=None):
def gen_poll(self, user=None):
"""
Generates a poll object for the application
"""

View File

@ -16,6 +16,9 @@
<button type="submit">
<span class="icon ok">{%trans 'Save' %}</span>
</button>
<button type="submit" name="apply">
<span class="icon apply">{%trans 'Apply' %}</span>
</button>
<a href='{% url application_overview %}'>
<button type="button">
<span class="icon cancel">{%trans 'Cancel' %}</span>

View File

@ -14,40 +14,49 @@
{% block content %}
<h1>{%trans "Application" %} #{{ poll.application.number }} - {%trans "Vote" %}</h1>
<h4>{{ poll.application.title }}</h4>
<h3>{{ poll.application.title }}</h3>
<p>{%trans "Results of" %} {{ ballot }}. {%trans "Vote" %}</p>
{% if perms.poll.can_manage_poll %}
<form action="" method="post">{% csrf_token %}
<fieldset>
<legend>{%trans "Results" %}: {{ ballot }}. {%trans "Vote" %}</legend>
<p><nobr><label>{%trans "Votes in favour" %}:</label></nobr>
{{ options.0.form.yes.errors }}{{ options.0.form.yes }}
</p>
<p><nobr><label>{%trans "Votes against" %}:</label></nobr>
{{ options.0.form.no.errors }}{{ options.0.form.no }}
</p>
<p><nobr><label>{%trans "Abstentions" %}:</label></nobr>
{{ options.0.form.undesided.errors }}{{ options.0.form.undesided }}
</p>
<p><label>{%trans "Invalid votes" %}:</label>
{{ form.invalid.errors }}{{ form.invalid }}
</p>
<p><label>{%trans "Votes cast" %}:</label>
{{ form.votescast.errors }}{{ form.votescast }}
</p>
<table class="table" style="width: auto;">
<tr>
<th>{%trans "Option" %}</th>
<th>{%trans "Votes" %}</th>
</tr>
<tr>
<td>{%trans "Yes" %}</td>
<td>{{ options.0.form.yes.errors }}{{ options.0.form.yes }}</td>
</tr>
<tr class="odd">
<td>{%trans "No" %}</label></td>
<td>{{ options.0.form.no.errors }}{{ options.0.form.no }}</td>
</tr>
<tr>
<td>{%trans "Abstentions" %}</td>
<td>{{ options.0.form.undesided.errors }}{{ options.0.form.undesided }}</td>
</tr>
<tr class="odd">
<td>{%trans "Invalid votes" %}</td>
<td>{{ form.invalid.errors }}{{ form.invalid }}</td>
</tr>
<tr class="total">
<td style="white-space: nowrap;"><b>{%trans "Votes cast" %}</b></td>
<td>{{ form.votescast.errors }}{{ form.votescast }}</td>
</tr>
</table>
<p>
<button type="submit">
<span class="icon ok">{%trans 'Apply' %}</span>
<span class="icon ok">{%trans 'Save' %}</span>
</button>
<button type="submit" name="apply">
<span class="icon apply">{%trans 'Apply' %}</span>
</button>
</fieldset>
<p></p>
<a href='{% url application_view poll.application.id %}'>
<button type="button">
<span class="icon previous">{%trans 'Back to application' %}</span>
<span class="icon cancel">{%trans 'Cancel' %}</span>
</button>
</a>
</form>
{% endif %}
{% endblock %}

View File

@ -287,12 +287,11 @@ def gen_poll(request, application_id):
gen a poll for this application.
"""
try:
count = Poll.objects.filter(application=application_id).count()
Application.objects.get(pk=application_id).gen_poll(user=request.user, pollcount=count+1)
messages.success(request, _("New poll was successfully created.") )
poll = Application.objects.get(pk=application_id).gen_poll(user=request.user)
messages.success(request, _("New vote was successfully created.") )
except Application.DoesNotExist:
pass
return redirect(reverse('application_view', args=[application_id]))
return redirect(reverse('application_poll_view', args=[poll.id]))
@permission_required('application.can_manage_application')
@ -311,7 +310,7 @@ def delete_poll(request, poll_id):
return redirect(reverse('application_view', args=[application.id]))
@permission_required('application.can_view_poll')
@permission_required('application.can_manage_application')
@template('application/poll_view.html')
def view_poll(request, poll_id):
"""
@ -320,7 +319,7 @@ def view_poll(request, poll_id):
poll = Poll.objects.get(pk=poll_id)
ballot = poll.ballot
options = poll.options
if request.user.has_perm('application.can_manage_applications'):
if request.user.has_perm('application.can_manage_application'):
if request.method == 'POST':
form = PollForm(request.POST, prefix="poll")
if form.is_valid():
@ -337,6 +336,9 @@ def view_poll(request, poll_id):
option.voteundesided = option.form. \
cleaned_data['undesided'] or 0
option.save()
messages.success(request, _("Votes are successfully saved.") )
if not 'apply' in request.POST:
return redirect(reverse('application_view', args=[poll.application.id]))
else:
form = PollForm(initial={'invalid': poll.votesinvalid, 'votescast': poll.votescast}, prefix="poll")
for option in options:

View File

@ -14,6 +14,9 @@
<button type="submit">
<span class="icon ok">{%trans 'Save' %}</span>
</button>
<button type="submit" name="apply">
<span class="icon apply">{%trans 'Apply' %}</span>
</button>
<a href='{% url assignment_overview %}'>
<button type="button">
<span class="icon cancel">{%trans 'Cancel' %}</span>

View File

@ -8,7 +8,7 @@
</p>
<p><b>{% trans "Short description" %}:</b> {{ poll.description }}</p>
<form action="" method="post">{% csrf_token %}
<table class="table">
<table class="table" style="width:auto;">
<tr>
<th>{%trans "Option" %}</th>
{% if poll.optiondecision %}
@ -20,7 +20,7 @@
{% endif %}
</tr>
{% for option in options %}
<tr>
<tr class="{% cycle 'odd' '' %}">
<td>{{ option }}</td>
{% if poll.optiondecision %}
<td>{{ option.form.yes.errors }}{{ option.form.yes }}</td>
@ -31,31 +31,38 @@
{% endif %}
</tr>
{% endfor %}
<tr class="total">
<td>{% trans "Invalid votes" %}</td>
<td {% if poll.optiondecision %}colspan="3"{% endif %}>{{ form.invalid.errors }}{{ form.invalid }}</td>
</tr>
<tr class="total">
<td style="white-space: nowrap;"><b>{% trans "Votes cast" %}</b></td>
<td {% if poll.optiondecision %}colspan="3"{% endif %}>{{ form.votescast.errors }}{{ form.votescast }}</td>
</tr>
</table>
<label for="id_votesinvalid">{% trans "Invalid votes" %}:</label>
{{ form.invalid.errors }}{{ form.invalid }}
<label for="id_votescast">{% trans "Votes cast" %}:</label>
{{ form.votescast.errors }}{{ form.votescast }}
{% if perms.poll.can_manage_poll %}
<p>
<button type="submit">
<span class="icon ok">{%trans 'Apply' %}</span>
</button>
<a href='{% url assignment_view poll.assignment.id %}'>
<button type="button">
<span class="icon previous">{%trans 'Back to election' %}</span>
</button>
</a>
<a href='{% url print_assignment_poll poll.id %}'>
<button type="button">
<span class="icon pdf">{%trans 'Print ballot' %}</span>
</button>
</a>
</p>
{% endif %}
<p>
<button type="submit">
<span class="icon ok">{%trans 'Save' %}</span>
</button>
<button type="submit" name="apply">
<span class="icon apply">{%trans 'Apply' %}</span>
</button>
<a href='{% url assignment_view poll.assignment.id %}'>
<button type="button">
<span class="icon cancel">{%trans 'Cancel' %}</span>
</button>
</a>
</p>
</form>
{% endblock %}

View File

@ -173,7 +173,7 @@
<tr>
<td>{%trans 'Invalid votes' %}</td>
{% for p in polls %}
<td><img src="/static/images/icons/voting-invalid.png" title="{% trans 'Invalid' %}"> {{ p.votesinvalid }}</td>
<td style="white-space:nowrap;"><img src="/static/images/icons/voting-invalid.png" title="{% trans 'Invalid' %}"> {{ p.votesinvalid }}</td>
{% endfor %}
{% if assignment.profile.count > 0 and perms.assignment.can_manage_assignment and assignment.status == "vot" %}
<td></td>
@ -182,7 +182,7 @@
<tr class="total">
<td><b>{%trans 'Votes cast' %}</b></td>
{% for p in polls %}
<td><img src="/static/images/icons/voting-total.png" title="{% trans 'Votes cast' %}"> <b>{{ p.votescast }}</b></td>
<td style="white-space:nowrap;"><img src="/static/images/icons/voting-total.png" title="{% trans 'Votes cast' %}"> <b>{{ p.votescast }}</b></td>
{% endfor %}
{% if assignment.profile.count > 0 and perms.assignment.can_manage_assignment and assignment.status == "vot" %}
<td></td>

View File

@ -108,6 +108,7 @@ def edit(request, assignment_id=None):
messages.success(request, _('New election was successfully created.'))
else:
messages.success(request, _('Election was successfully modified.'))
if not 'apply' in request.POST:
return redirect(reverse("assignment_overview"))
else:
form = AssignmentForm(instance=assignment)
@ -188,7 +189,7 @@ def gen_poll(request, assignment_id):
return redirect(reverse('assignment_poll_view', args=[poll.id]))
@permission_required('assignment.can_view_assignment')
@permission_required('assignment.can_manage_assignment')
@template('assignment/poll_view.html')
def poll_view(request, poll_id):
poll = Poll.objects.get(pk=poll_id)
@ -214,6 +215,8 @@ def poll_view(request, poll_id):
success = success + 1
if success == options.count():
messages.success(request, _("Votes are successfully saved.") )
if not 'apply' in request.POST:
return redirect(reverse('assignment_view', args=[assignment.id]))
else:
form = PollForm(initial={'invalid': poll.votesinvalid, 'votescast': poll.votescast}, prefix="poll")
for option in options:

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 783 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 838 B

View File

@ -36,7 +36,8 @@ function hideLine(object) {
function hideClosedSlides(hide) {
if (hide) {
$('#hidelink').text('show');
$('#hidelink').attr('title','show');
$('#hidelink').removeClass('hide').addClass('show');
$('.close_link.closed').parent().parent().each(function() {
hideLine($(this));
});
@ -44,7 +45,8 @@ function hideClosedSlides(hide) {
$('#hiddencount').text(' ' + hidden + ' davon verborgen.');
} else {
$('#menu-overview tr').show();
$('#hidelink').text('hide');
$('#hidelink').attr('title','hide');
$('#hidelink').removeClass('show').addClass('hide');
$('#hiddencount').text('');
}
return false;
@ -87,7 +89,7 @@ $(function() {
});
});
// hide closed items
$('#action_field a').after($('<a id="hidelink" href="#">hide</a>').click(function () {
$('#action_field div').after($('<a id="hidelink" class="hidelink hide" title="hide" href="#"><div></div></a>').click(function () {
if ($.cookie('Slide.HideClosed') == 1) {
$.cookie('Slide.HideClosed', 0);
hideClosedSlides(false);

View File

@ -2,35 +2,48 @@ tr.activeline a.activate_link div {
background-image: url(/static/images/icons/task-accepted.png);
background-repeat: no-repeat;
background-position: center;
width: 20px;
height: 20px;
width: 16px;
height: 16px;
}
tr.inactiveline a.activate_link div {
background-image: url(/static/images/icons/task-accepted-grey.png);
background-repeat: no-repeat;
background-position: center;
width: 20px;
height: 20px;
width: 16px;
height: 16px;
}
a.close_link.closed div {
background-image: url(/static/images/icons/user-offline.png);
background-repeat: no-repeat;
background-position: center;
width: 20px;
height: 20px;
width: 16px;
height: 16px;
display: inline-block;
}
a.close_link.open div {
background-image: url(/static/images/icons/user-online.png);
background-repeat: no-repeat;
background-position: center;
width: 20px;
height: 20px;
width: 16px;
height: 16px;
display: inline-block;
}
a.hidelink.hide div {
background-image: url(/static/images/icons/layer-visible-off.png);
background-repeat: no-repeat;
background-position: center;
width: 16px;
height: 16px;
display: inline-block;
}
a.hidelink.show div {
background-image: url(/static/images/icons/layer-visible-on.png);
background-repeat: no-repeat;
background-position: center;
width: 16px;
height: 16px;
display: inline-block;
}

View File

@ -230,10 +230,6 @@ table a.table_edit {
.agendatable tr.activeline td {
background-color: #bed4de;
}
.agendatable td.select:hover {
cursor:pointer;
background-color: #bed4de;
}
.agendatable td img.center {
margin-left: 10px;
}
@ -252,6 +248,7 @@ table a.table_edit {
}
tr.total td {
border-top: 1px solid #333333;
background-color: #e3e3e3;
}
@ -344,7 +341,7 @@ button .cancel{
button .ok{
background:url(../images/icons/dialog-ok-apply.png) no-repeat 0px 0px;
}
button .ok-blue{
button .ok-blue, button .apply{
background:url(../images/icons/dialog-ok.png) no-repeat 0px 0px;
}
button .edit{
@ -411,7 +408,7 @@ button .stop{
.errorlist {
color:#DA3939;
font-size:10px;
font-size:9px;
font-style:italic;
height:16px;
padding:0;

View File

@ -15,10 +15,6 @@
<li>
<a href="{% url assignment_overview %}" title="">{%trans "Elections" %}</a></li>
{% endif %}
{% if perms.poll.can_view_poll or perms.poll.can_manage_poll %}
<li>
<a href="{% url poll_overview %}" title="">{%trans "Polls" %}</a></li>
{% endif %}
{% if perms.participant.can_view_participants or perms.participant.can_manage_participants %}
<li>
<a href="{% url user_overview %}" title="">{%trans "Participants" %}</a></li>

View File

@ -15,10 +15,6 @@
<li>
<a href="{% url assignment_overview %}" title="">{%trans "Elections" %}</a></li>
{% endif %}
{% if perms.poll.can_view_poll or perms.poll.can_manage_poll %}
<li>
<a href="{% url poll_overview %}" title="">{%trans "Polls" %}</a></li>
{% endif %}
{% if perms.participant.can_view_participants or perms.participant.can_manage_participants %}
<li>
<a href="{% url user_overview %}" title="">{%trans "Participants" %}</a></li>

View File

@ -15,10 +15,6 @@
<li>
<a href="{% url assignment_overview %}" title="">{%trans "Elections" %}</a></li>
{% endif %}
{% if perms.poll.can_view_poll or perms.poll.can_manage_poll %}
<li>
<a href="{% url poll_overview %}" title="">{%trans "Polls" %}</a></li>
{% endif %}
{% if perms.participant.can_view_participants or perms.participant.can_manage_participants %}
<li>
<a href="{% url user_overview %}" title="">{%trans "Participants" %}</a></li>