Skip to content

Commit

Permalink
Code cleanup in polls
Browse files Browse the repository at this point in the history
  • Loading branch information
mikemintz committed Sep 6, 2011
1 parent c1d6d60 commit 6ce709b
Show file tree
Hide file tree
Showing 3 changed files with 58 additions and 63 deletions.
2 changes: 1 addition & 1 deletion deme_django/modules/poll/models.py
Expand Up @@ -17,7 +17,7 @@ class Poll(Collection):
introduced_abilities = frozenset(['edit Poll.visibility', 'view Poll.visibility', 'edit Poll.question', 'view Poll.question',
'edit Poll.begins', 'view Poll.begins', 'edit Poll.deadline', 'view Poll.deadline',
'edit Poll.eligibles', 'view Poll.eligibles', 'edit Poll.display_write_ins',
'view Poll.display_write_ins'])
'view Poll.display_write_ins', 'access_proposition_responses'])
introduced_global_abilities = frozenset(['create Poll'])
dyadic_relations = {}

Expand Down
85 changes: 42 additions & 43 deletions deme_django/modules/poll/templates/poll/approvenpoll.html
@@ -1,7 +1,6 @@
{% extends layout %}
{% load item_tags %}
{% block content %}
<head>
<style>
div {
margin-right: 5px;
Expand All @@ -20,23 +19,19 @@
}

div.Question {

margin-right: 6em;
}

div.Beginning p{

font-size: 10px;
}

div.Deadline p{

font-size: 20px;
color: red;
}

div.Instructions p{

font-size: 12px;
}

Expand Down Expand Up @@ -90,10 +85,8 @@
display: none;
}



</style>
</head>

<script type="text/javascript">
function toggleImplementation(pk){
var button = "#hide" + pk;
Expand All @@ -109,7 +102,7 @@
</script>
<script type="text/javascript">
function toggleResponses(pk){
var response = "#Responses" + pk;
var response = "#responses" + pk;
var button = "#hide" + pk;
if ($(response).is(":hidden")) {
$(response).slideDown("slow");
Expand Down Expand Up @@ -173,37 +166,36 @@
dialogBox.dialog('open');
}
</script>
{% subclassfields %}



{% if memberships %}
{% if propositions %}
<form method="post" enctype="multipart/form-data"
action="{% url item_url viewer=viewer_name,action="respondtopropositions",noun=item.pk %}?redirect={{ full_path|urlencode }}">
<div class="container propositions" id="Propcontainer">


{% for membership in propositions %}
{% for proposition in propositions %}
<div class="{% cycle 'even' 'odd' %} row " >
<span class="row"> <a style="width=100px; overflow:hidden;"href="{{ membership.get_absolute_url }}">{% viewable_name membership %}</a>
Summary: {{membership.summary_text}}
<span><select name="{{ membership.pk }}">
<span class="row"> <a style="width=100px; overflow:hidden;" href="{{ proposition.get_absolute_url }}">{% viewable_name proposition %}</a>
Summary: {{proposition.summary_text}}
<span><select name="{{ proposition.pk }}">
<option value="no vote">Not Voted</option>
<option value="approve">Approve</option>
<option value="disapprove">Disapprove</option>
</select>
<input type="button" value="Show Details" id="hide{{ membership.pk }}" onclick="toggleImplementation('{{ membership.pk }}')" />
<input type="button" value="Show Details" id="hide{{ proposition.pk }}" onclick="toggleImplementation('{{ proposition.pk }}')" />
<input type="button" value="Comment"></span></span></div>
<div class="implementation"id="{{ membership.pk }}">
<a href="{{ membership.get_absolute_url }}">View as an item</a>{{membership.body|safe}}
<div class="implementation"id="{{ proposition.pk }}">
<a href="{{ proposition.get_absolute_url }}">View as an item</a>{{proposition.body|safe}}
</div>
{% endfor %}
<div style="margin-left:40%; margin-bottom:1em;">
<input type="submit" value="Submit" /><br><br>
</div></div>
</form>
{% else %}
No Items In This Collection
No propositions in this poll
{% endif %}

{# We need to figure out where all the buttons go. So "Make new write in" cannot happen if you are admin and the poll hasn't started #}
Expand Down Expand Up @@ -247,30 +239,37 @@
<br />
<p>Responses:</p>
<div class="container responses" id="Propcontainer">
{% for key,value in Responses.items %}
<div class="{% cycle 'even' 'odd' %} row " >
<span class="row"><a href="{{ key.get_absolute_url }}">{% viewable_name key %}</a>
{% ifnotequal item.visibility 'closed' %}
{% if value %} has responded
{% ifequal item.visibility 'responses visible' %} </span>
<input type="button" style="float:right;"
value="Show Responses" id="hide{{ key.pk }}" onclick="toggleResponses('{{ key.pk }}')" /></div>
<div id="Responses{{ key.pk }}" style="display: none">
{% for response in value %}
<p><a href="{{ response.proposition.get_absolute_url }}" style="margin-left:1em;">
{% viewable_name response.proposition %}</a>: {{ response.value }}</p>
{% endfor %}
</div>
{% else %}
</span></div>
{% endifequal %}
{% else %}
has not responded </span></div>
{% endif %}
{% else %}
</span></div>
{% endifnotequal %}
{% endfor %}
{% if can_view_response_names_and_values %}
{% for key,value in responses.items %}
<div class="{% cycle 'even' 'odd' %} row " >
<span class="row"><a href="{{ key.get_absolute_url }}">{% viewable_name key %}</a>
{% if value %} has responded {% else %} has not responded {% endif %}
</span></div>
{% endfor %}
{% else %}{% if can_view_response_names %}
{% for key,value in responses.items %}
<div class="{% cycle 'even' 'odd' %} row " >
<span class="row"><a href="{{ key.get_absolute_url }}">{% viewable_name key %}</a>
{% if value %}
has responded
{% ifequal item.visibility 'responses visible' %} </span>
<input type="button" style="float:right;"
value="Show Responses" id="hide{{ key.pk }}" onclick="toggleResponses('{{ key.pk }}')" /></div>
<div id="responses{{ key.pk }}" style="display: none">
{% for response in value %}
<p><a href="{{ response.proposition.get_absolute_url }}" style="margin-left:1em;">
{% viewable_name response.proposition %}</a>: {{ response.value }}</p>
{% endfor %}
</div>
{% endifequal %}
{% else %}
has not responded
{% endif %}
</span></div>
{% endfor %}
{% else %}
Responses are not visible
{% endif %}{% endif %}
</div>


Expand Down
34 changes: 15 additions & 19 deletions deme_django/modules/poll/views.py
Expand Up @@ -71,30 +71,26 @@ def item_show_html(self):
self.context['action_title'] = ''
self.require_ability('view ', self.item, wildcard_suffix=True)
memberships = self.item.child_memberships
memberships = memberships.filter(active=True)
memberships = memberships.filter(item__active=True)
memberships = memberships.filter(active=True, item__active=True)
memberships = self.permission_cache.filter_items('view Membership.item', memberships)
memberships = memberships.select_related('item')
if memberships:
self.permission_cache.filter_items('view Item.name', Item.objects.filter(pk__in=[x.item_id for x in memberships]))
self.context['memberships'] = sorted(memberships, key=lambda x: (not self.permission_cache.agent_can('view Item.name', x.item), x.item.name))
self.context['cur_agent_in_collection'] = bool(self.item.child_memberships.filter(active=True, item=self.cur_agent))
self.context['responses'] = PropositionResponseApprove.objects.all().filter(poll=self.item)
eligible_agents = self.item.eligibles.child_memberships
eligible_agents = eligible_agents.filter(active=True)
eligible_agents = eligible_agents.filter(item__active=True)
eligible_agents = self.permission_cache.filter_items('view Membership.item', eligible_agents)
eligible_agents = eligible_agents.select_related('item')
if eligible_agents:
self.permission_cache.filter_items('view Item.name', Item.objects.filter(pk__in=[x.item_id for x in eligible_agents]))
self.context['eligible_agents'] = sorted(eligible_agents, key=lambda x: (not self.permission_cache.agent_can('view Item.name', x.item), x.item.name))
self.context['participants'] = Agent.objects.filter(poll_participant__poll=self.item)
Responses = dict()
for agent in eligible_agents:
Responses[agent.item] = PropositionResponseApprove.objects.all().filter(poll=self.item).filter(participant=agent.item)
self.context['Responses'] = Responses
self.context['decisions'] = Decision.objects.all().filter(poll=self.item)
self.context['responses'] = PropositionResponseApprove.objects.filter(poll=self.item)
eligible_agent_memberships = self.item.eligibles.child_memberships
eligible_agent_memberships = eligible_agent_memberships.filter(active=True, item__active=True)
eligible_agent_memberships = self.permission_cache.filter_items('view Membership.item', eligible_agent_memberships)
eligible_agent_memberships = eligible_agent_memberships.select_related('item')
if eligible_agent_memberships:
self.permission_cache.filter_items('view Item.name', Item.objects.filter(pk__in=[x.item_id for x in eligible_agent_memberships]))
responses = {}
for agent_membership in eligible_agent_memberships:
responses[agent_membership.item] = PropositionResponseApprove.objects.filter(poll=self.item).filter(participant=agent_membership.item)
self.context['responses'] = responses
self.context['decisions'] = Decision.objects.filter(poll=self.item)
self.context['propositions'] = Proposition.objects.filter(memberships__in=memberships)
self.context['can_view_response_names'] = self.item.visibility != 'closed' or self.permission_cache.agent_can('access_proposition_responses', self.item)
self.context['can_view_response_names_and_values'] = self.item.visibility == 'responses visible' or self.permission_cache.agent_can('access_proposition_responses', self.item)
template = loader.get_template('poll/approvenpoll.html')
return HttpResponse(template.render(self.context))

Expand Down

0 comments on commit 6ce709b

Please sign in to comment.