diff --git a/core/management/commands/populate.py b/core/management/commands/populate.py index 61aee24e..2bdd2e46 100644 --- a/core/management/commands/populate.py +++ b/core/management/commands/populate.py @@ -318,6 +318,12 @@ Cette page vise à documenter la syntaxe *Markdown* utilisée sur le site. sli.save() skia.view_groups=[Group.objects.filter(name=settings.SITH_MAIN_MEMBERS_GROUP).first().id] sli.save() + # Adding user Krophil + krophil = User(username='krophil', last_name="Phil'", first_name="Kro", + email="krophil@git.an", + date_of_birth="1942-06-12") + krophil.set_password("plop") + krophil.save() ## Adding subscription for sli s = Subscription(member=User.objects.filter(pk=sli.pk).first(), subscription_type=list(settings.SITH_SUBSCRIPTIONS.keys())[0], payment_method=settings.SITH_SUBSCRIPTION_PAYMENT_METHOD[0]) @@ -326,6 +332,14 @@ Cette page vise à documenter la syntaxe *Markdown* utilisée sur le site. duration=settings.SITH_SUBSCRIPTIONS[s.subscription_type]['duration'], start=s.subscription_start) s.save() + ## Adding subscription for Krophil + s = Subscription(member=User.objects.filter(pk=krophil.pk).first(), subscription_type=list(settings.SITH_SUBSCRIPTIONS.keys())[0], + payment_method=settings.SITH_SUBSCRIPTION_PAYMENT_METHOD[0]) + s.subscription_start = s.compute_start() + s.subscription_end = s.compute_end( + duration=settings.SITH_SUBSCRIPTIONS[s.subscription_type]['duration'], + start=s.subscription_start) + s.save() operation_list = [ (27, "J'avais trop de bière", 'CASH', None, buying, 'USER', skia.id, "", None), @@ -352,8 +366,18 @@ Cette page vise à documenter la syntaxe *Markdown* utilisée sur le site. el.save() liste = List(title="Candidature Libre", election=el) liste.save() + listeT = List(title="Troll", election=el) + listeT.save() + pres = Role(election=el, title="Président AE", description="Roi de l'AE") + pres.save() resp = Role(election=el, title="Co Respo Info", description="Ghetto++") resp.save() cand = Candidature(role=resp, user=skia, liste=liste, program="Refesons le site AE") cand.save() + cand = Candidature(role=resp, user=sli, liste=liste, program="Vasy je deviens mon propre adjoint") + cand.save() + cand = Candidature(role=resp, user=krophil, liste=listeT, program="Le Pôle Troll !") + cand.save() + cand = Candidature(role=pres, user=sli, liste=listeT, program="En fait j'aime pas l'info, je voulais faire GMC") + cand.save() diff --git a/core/templates/core/user_tools.jinja b/core/templates/core/user_tools.jinja index 1bbc3107..43f986bc 100644 --- a/core/templates/core/user_tools.jinja +++ b/core/templates/core/user_tools.jinja @@ -85,6 +85,12 @@
  • {{ m.club }}
  • {% endfor %} +
    +

    {% trans %}Elections{% endtrans %}

    + {% endblock %} diff --git a/election/migrations/0002_auto_20161219_0002.py b/election/migrations/0002_auto_20161219_0002.py new file mode 100644 index 00000000..5db7619c --- /dev/null +++ b/election/migrations/0002_auto_20161219_0002.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import migrations, models +from django.conf import settings + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('election', '0001_initial'), + ] + + operations = [ + migrations.RemoveField( + model_name='candidature', + name='has_voted', + ), + migrations.AddField( + model_name='role', + name='has_voted', + field=models.ManyToManyField(to=settings.AUTH_USER_MODEL, related_name='has_voted', verbose_name='has voted'), + ), + ] diff --git a/election/models.py b/election/models.py index 7a5902e1..5a3e5da7 100644 --- a/election/models.py +++ b/election/models.py @@ -46,6 +46,7 @@ class Role(models.Model): election = models.ForeignKey(Election, related_name='role', verbose_name=_("election")) title = models.CharField(_('title'), max_length=255) description = models.TextField(_('description'), null=True, blank=True) + has_voted = models.ManyToManyField(User, verbose_name=('has voted'), related_name='has_voted') def __str__(self): return ("%s : %s") % (self.election.title, self.title) @@ -66,7 +67,6 @@ class Candidature(models.Model): role = models.ForeignKey(Role, related_name='candidature', verbose_name=_("role")) user = models.ForeignKey(User, verbose_name=_('user'), related_name='candidate', blank=True) program = models.TextField(_('description'), null=True, blank=True) - has_voted = models.ManyToManyField(User, verbose_name=_('has_voted'), related_name='has_voted') liste = models.ForeignKey(List, related_name='candidature', verbose_name=_('list')) diff --git a/election/templates/election/election_detail.jinja b/election/templates/election/election_detail.jinja index b97a5082..55e6603d 100644 --- a/election/templates/election/election_detail.jinja +++ b/election/templates/election/election_detail.jinja @@ -11,17 +11,34 @@

    {{object.title}}

    {{object.description}}

    {% trans %}End :{% endtrans %} {{object.end_date}}

    - {% for role in object.role.all() %} -

    {{role.title}}

    - {% for candidature in role.candidature.all() %} -

    {{candidature.user.first_name}} {{candidature.user.last_name}} ({{candidature.user.nick_name}})

    - {% if candidature.user.profile_pict %} -

    {% trans %}Profile{% endtrans %}

    - {% endif %} - {% if candidature.program %} -

    Programme

    -

    {{candidature.program}}

    - {% endif %} + + + {% set nb_list = object.list.all().count() + 1 -%} + {% for liste in object.list.all() %} + + {% set nb_list = nb_list + 1 -%} {% endfor %} + + + {% for role in object.role.all() %} + + + {% for liste in object.list.all() %} + + {% endfor %} + + {% endfor %} +
    {{liste.title}}{% trans %}Blank vote{% endtrans %}
    {{role.title}}
    +
      + {% for candidature in role.candidature.filter(liste=liste) %} +
    • + {{candidature.user.first_name}} {{candidature.user.last_name}} {{candidature.user.nick_name or ''}} + {% if candidature.user.profile_pict %} + {% trans %}Profile{% endtrans %} + {% endif %} +
    • + {% endfor %} +
    +
    {% endblock %} \ No newline at end of file diff --git a/election/templates/election/election_list.jinja b/election/templates/election/election_list.jinja index 77e4e1f9..2caa2d15 100644 --- a/election/templates/election/election_list.jinja +++ b/election/templates/election/election_list.jinja @@ -6,8 +6,6 @@ {% block content %} {% for el in object_list %} - {% if el.is_active %} -

    {{el}}

    - {% endif %} +

    {{el}}

    {% endfor %} {% endblock %} \ No newline at end of file diff --git a/election/views.py b/election/views.py index d8e91434..3ab2d51d 100644 --- a/election/views.py +++ b/election/views.py @@ -3,6 +3,7 @@ from django.views.generic import ListView, DetailView, RedirectView from django.views.generic.edit import UpdateView, CreateView, DeleteView, FormView from django.core.urlresolvers import reverse_lazy, reverse from django.utils.translation import ugettext_lazy as _ +from django.utils import timezone from django.conf import settings from core.views import CanViewMixin, CanEditMixin, CanEditPropMixin, CanCreateMixin @@ -18,6 +19,12 @@ class ElectionsListView(CanViewMixin, ListView): model = Election template_name = 'election/election_list.jinja' + def get_queryset(self): + qs = super(ElectionsListView, self).get_queryset() + today = timezone.now() + qs = qs.filter(end_date__gte=today, start_date__lte=today) + return qs + class ElectionDetailView(CanViewMixin, DetailView): """