Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Sith
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
59
Issues
59
List
Boards
Labels
Service Desk
Milestones
Merge Requests
9
Merge Requests
9
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
AE
Sith
Commits
c4389bb9
Commit
c4389bb9
authored
Jun 07, 2017
by
Sli
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add a way for admin to delete elections and add archive system
parent
0076c9cd
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
119 additions
and
53 deletions
+119
-53
core/templates/core/user_tools.jinja
core/templates/core/user_tools.jinja
+1
-0
election/migrations/0002_election_archived.py
election/migrations/0002_election_archived.py
+19
-0
election/models.py
election/models.py
+1
-0
election/templates/election/election_detail.jinja
election/templates/election/election_detail.jinja
+3
-0
election/urls.py
election/urls.py
+4
-0
election/views.py
election/views.py
+35
-2
locale/fr/LC_MESSAGES/django.po
locale/fr/LC_MESSAGES/django.po
+56
-51
No files found.
core/templates/core/user_tools.jinja
View file @
c4389bb9
...
...
@@ -103,6 +103,7 @@
<h4>
{%
trans
%}
Elections
{%
endtrans
%}
</h4>
<ul>
<li><a
href=
"
{{
url
(
'election:list'
)
}}
"
>
{%
trans
%}
See available elections
{%
endtrans
%}
</a></li>
<li><a
href=
"
{{
url
(
'election:list_archived'
)
}}
"
>
{%
trans
%}
See archived elections
{%
endtrans
%}
</a></li>
{%
-
if
user.is_subscribed
-
%}
<li><a
href=
"
{{
url
(
'election:create'
)
}}
"
>
{%
trans
%}
Create a new election
{%
endtrans
%}
</a></li>
{%
-
endif
-
%}
...
...
election/migrations/0002_election_archived.py
0 → 100644
View file @
c4389bb9
# -*- coding: utf-8 -*-
from
__future__
import
unicode_literals
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
'election'
,
'0001_initial'
),
]
operations
=
[
migrations
.
AddField
(
model_name
=
'election'
,
name
=
'archived'
,
field
=
models
.
BooleanField
(
verbose_name
=
'archived'
,
default
=
False
),
),
]
election/models.py
View file @
c4389bb9
...
...
@@ -31,6 +31,7 @@ class Election(models.Model):
verbose_name
=
_
(
"candidature groups"
),
blank
=
True
)
voters
=
models
.
ManyToManyField
(
User
,
verbose_name
=
(
'voters'
),
related_name
=
'voted_elections'
)
archived
=
models
.
BooleanField
(
_
(
"archived"
),
default
=
False
)
def
__str__
(
self
):
return
self
.
title
...
...
election/templates/election/election_detail.jinja
View file @
c4389bb9
...
...
@@ -373,6 +373,9 @@ th {
{%
endif
%}
<a
href=
"
{{
url
(
'election:update'
,
election_id
=
object.id
)
}}
"
>
{%
trans
%}
Edit
{%
endtrans
%}
</a>
{%
-
endif
%}
{%
-
if
user.is_root
%}
<a
href=
"
{{
url
(
'election:delete'
,
election_id
=
object.id
)
}}
"
>
{%
trans
%}
Delete
{%
endtrans
%}
</a>
{%
-
endif
%}
</section>
{%
endblock
%}
...
...
election/urls.py
View file @
c4389bb9
...
...
@@ -4,9 +4,13 @@ from election.views import *
urlpatterns
=
[
url
(
r
'^$'
,
ElectionsListView
.
as_view
(),
name
=
'list'
),
url
(
r
'^archived$'
,
ElectionListArchivedView
.
as_view
(),
name
=
'list_archived'
),
url
(
r
'^add$'
,
ElectionCreateView
.
as_view
(),
name
=
'create'
),
url
(
r
'^(?P<election_id>[0-9]+)/edit$'
,
ElectionUpdateView
.
as_view
(),
name
=
'update'
),
url
(
r
'^(?P<election_id>[0-9]+)/delete$'
,
ElectionDeleteView
.
as_view
(),
name
=
'delete'
),
url
(
r
'^(?P<election_id>[0-9]+)/list/add$'
,
ElectionListCreateView
.
as_view
(),
name
=
'create_list'
),
url
(
r
'^(?P<election_id>[0-9]+)/role/create$'
,
...
...
election/views.py
View file @
c4389bb9
...
...
@@ -129,7 +129,7 @@ class ElectionListForm(forms.ModelForm):
class
ElectionForm
(
forms
.
ModelForm
):
class
Meta
:
model
=
Election
fields
=
[
'title'
,
'description'
,
fields
=
[
'title'
,
'description'
,
'archived'
,
'start_candidature'
,
'end_candidature'
,
'start_date'
,
'end_date'
,
'edit_groups'
,
'view_groups'
,
...
...
@@ -161,13 +161,31 @@ class ElectionForm(forms.ModelForm):
class
ElectionsListView
(
CanViewMixin
,
ListView
):
"""
A list
with all responsabilities and their candidates
A list
of all non archived elections visible
"""
model
=
Election
ordering
=
[
"-id"
]
paginate_by
=
10
template_name
=
'election/election_list.jinja'
def
get_queryset
(
self
):
return
super
(
ElectionsListView
,
self
).
get_queryset
().
filter
(
archived
=
False
).
all
()
class
ElectionListArchivedView
(
CanViewMixin
,
ListView
):
"""
A list of all archived elections visible
"""
model
=
Election
ordering
=
[
"-id"
]
paginate_by
=
10
template_name
=
'election/election_list.jinja'
def
get_queryset
(
self
):
return
super
(
ElectionListArchivedView
,
self
).
get_queryset
().
filter
(
archived
=
True
).
all
()
class
ElectionDetailView
(
CanViewMixin
,
DetailView
):
"""
...
...
@@ -515,6 +533,21 @@ class RoleUpdateView(CanEditMixin, UpdateView):
# Delete Views
class
ElectionDeleteView
(
DeleteView
):
model
=
Election
template_name
=
'core/delete_confirm.jinja'
pk_url_kwarg
=
'election_id'
def
dispatch
(
self
,
request
,
*
args
,
**
kwargs
):
if
request
.
user
.
is_root
:
return
super
(
ElectionDeleteView
,
self
).
dispatch
(
request
,
*
args
,
**
kwargs
)
raise
PermissionDenied
def
get_success_url
(
self
,
**
kwargs
):
return
reverse_lazy
(
'election:list'
)
class
CandidatureDeleteView
(
CanEditMixin
,
DeleteView
):
model
=
Candidature
template_name
=
'core/delete_confirm.jinja'
...
...
locale/fr/LC_MESSAGES/django.po
View file @
c4389bb9
...
...
@@ -6,7 +6,7 @@
msgid
""
msgstr
""
"Report-Msgid-Bugs-To:
\n
"
"POT-Creation-Date: 2017-06-0
6 23:25
+0200
\n
"
"POT-Creation-Date: 2017-06-0
7 17:32
+0200
\n
"
"PO-Revision-Date: 2016-07-18
\n
"
"Last-Translator: Skia <skia@libskia.so>
\n
"
"Language-Team: AE info <ae.info@utbm.fr>
\n
"
...
...
@@ -88,12 +88,12 @@ msgid "%(club_account)s on %(bank_account)s"
msgstr
"%(club_account)s sur %(bank_account)s"
#: accounting/models.py:192 club/models.py:184 counter/models.py:433
#: election/models.py:1
8
launderette/models.py:144
#: election/models.py:1
7
launderette/models.py:144
msgid
"start date"
msgstr
"date de début"
#: accounting/models.py:193 club/models.py:185 counter/models.py:434
#: election/models.py:1
9
#: election/models.py:1
8
msgid
"end date"
msgstr
"date de fin"
...
...
@@ -335,6 +335,7 @@ msgstr "Compte en banque : "
#: counter/templates/counter/last_ops.jinja:59
#: election/templates/election/election_detail.jinja:280
#: election/templates/election/election_detail.jinja:329
#: election/templates/election/election_detail.jinja:377
#: forum/templates/forum/macros.jinja:21 forum/templates/forum/macros.jinja:123
#: launderette/templates/launderette/launderette_admin.jinja:16
#: launderette/views.py:178 sas/templates/sas/album.jinja:26
...
...
@@ -830,19 +831,19 @@ msgid "A club with that unix_name already exists"
msgstr
"Un club avec ce nom UNIX existe déjà."
#: club/models.py:182 counter/models.py:431 counter/models.py:448
#: eboutic/models.py:38 eboutic/models.py:71 election/models.py:1
30
#: eboutic/models.py:38 eboutic/models.py:71 election/models.py:1
47
#: launderette/models.py:111 launderette/models.py:148 sas/models.py:156
msgid
"user"
msgstr
"nom d'utilisateur"
#: club/models.py:186 core/models.py:169 election/models.py:1
29
#: election/models.py:1
4
5
#: club/models.py:186 core/models.py:169 election/models.py:1
45
#: election/models.py:1
6
5
msgid
"role"
msgstr
"rôle"
#: club/models.py:188 core/models.py:61 counter/models.py:101
#: counter/models.py:126 election/models.py:1
5 election/models.py:82
#: election/models.py:1
31
forum/models.py:51 forum/models.py:184
#: counter/models.py:126 election/models.py:1
3 election/models.py:93
#: election/models.py:1
48
forum/models.py:51 forum/models.py:184
msgid
"description"
msgstr
"description"
...
...
@@ -1069,6 +1070,7 @@ msgstr "Date de début"
#: club/views.py:196 com/views.py:123 counter/views.py:1020
#: election/views.py:131 subscription/views.py:50
#: election/views.py:149
msgid
"End date"
msgstr
"Date de fin"
...
...
@@ -1109,8 +1111,8 @@ msgstr "Hebdomadaire"
msgid
"Call"
msgstr
"Appel"
#: com/models.py:60 com/models.py:102 com/models.py:149 election/models.py:1
4
#: election/models.py:
81 election/models.py:118
forum/models.py:187
#: com/models.py:60 com/models.py:102 com/models.py:149 election/models.py:1
2
#: election/models.py:
92 election/models.py:132
forum/models.py:187
#: forum/models.py:234
msgid
"title"
msgstr
"titre"
...
...
@@ -1416,6 +1418,7 @@ msgid "Alert message"
msgstr
"Message d'alerte"
#: com/views.py:122 election/views.py:130 subscription/views.py:47
#: com/views.py:122 election/views.py:146
msgid
"Start date"
msgstr
"Date de début"
...
...
@@ -2145,6 +2148,18 @@ msgstr "Créneau"
msgid
"Tokens"
msgstr
"Jetons"
#: core/templates/core/macros.jinja:78 core/templates/core/macros.jinja:80
msgid
"Previous"
msgstr
"Précédent"
#: core/templates/core/macros.jinja:84
msgid
"current"
msgstr
"actuel"
#: core/templates/core/macros.jinja:90 core/templates/core/macros.jinja:92
msgid
"Next"
msgstr
"Suivant"
#: core/templates/core/new_user_email.jinja:2
msgid
""
"You're receiving this email because you subscribed to the UTBM student "
...
...
@@ -2698,6 +2713,10 @@ msgstr "Élections"
msgid
"See available elections"
msgstr
"Voir les élections disponibles"
#: core/templates/core/user_tools.jinja:105
msgid
"See archived elections"
msgstr
"Voir les élections archivées"
#: core/templates/core/user_tools.jinja:107
msgid
"Create a new election"
msgstr
"Créer une nouvelle élection"
...
...
@@ -2834,7 +2853,7 @@ msgstr "produit parent"
msgid
"buying groups"
msgstr
"groupe d'achat"
#: counter/models.py:140
#: counter/models.py:140
election/models.py:34
msgid
"archived"
msgstr
"archivé"
...
...
@@ -3035,21 +3054,7 @@ msgstr "Coffre vidé"
msgid
"yes"
msgstr
"oui"
#: counter/templates/counter/cash_summary_list.jinja:61
#: counter/templates/counter/cash_summary_list.jinja:63
msgid
"Previous"
msgstr
"Précédent"
#: counter/templates/counter/cash_summary_list.jinja:67
msgid
"current"
msgstr
"actuel"
#: counter/templates/counter/cash_summary_list.jinja:73
#: counter/templates/counter/cash_summary_list.jinja:75
msgid
"Next"
msgstr
"Suivant"
#: counter/templates/counter/cash_summary_list.jinja:79
msgid
"There is no cash register summary in this website."
msgstr
"Il n'y a pas de relevé de caisse dans ce site web."
...
...
@@ -3434,43 +3439,43 @@ msgstr "Retourner à l'eboutic"
msgid
"You do not have enough money to buy the basket"
msgstr
"Vous n'avez pas assez d'argent pour acheter le panier"
#: election/models.py:1
6
#: election/models.py:1
5
msgid
"start candidature"
msgstr
"début des candidatures"
#: election/models.py:1
7
#: election/models.py:1
6
msgid
"end candidature"
msgstr
"fin des candidatures"
#: election/models.py:2
1
#: election/models.py:2
2
msgid
"edit groups"
msgstr
"groupe d'édition"
#: election/models.py:2
2
#: election/models.py:2
5
msgid
"view groups"
msgstr
"groupe de vue"
#: election/models.py:2
3
#: election/models.py:2
8
msgid
"vote groups"
msgstr
"groupe de vote"
#: election/models.py:
24
#: election/models.py:
31
msgid
"candidature groups"
msgstr
"groupe de candidature"
#: election/models.py:
80 election/models.py:119
#: election/models.py:
91 election/models.py:134
msgid
"election"
msgstr
"élection"
#: election/models.py:
83
#: election/models.py:
94
msgid
"max choice"
msgstr
"nombre de choix maxi"
#: election/models.py:1
32
#: election/models.py:1
51
msgid
"election list"
msgstr
"liste électorale"
#: election/models.py:1
46
#: election/models.py:1
67
msgid
"candidature"
msgstr
"candidature"
...
...
@@ -3498,10 +3503,10 @@ msgstr "Les votes ouvriront "
#: election/templates/election/election_detail.jinja:243
#: election/templates/election/election_detail.jinja:247
#: election/templates/election/election_list.jinja:3
1
#: election/templates/election/election_list.jinja:3
4
#: election/templates/election/election_list.jinja:
39
#: election/templates/election/election_list.jinja:4
2
#: election/templates/election/election_list.jinja:3
2
#: election/templates/election/election_list.jinja:3
5
#: election/templates/election/election_list.jinja:
40
#: election/templates/election/election_list.jinja:4
3
#: forum/templates/forum/macros.jinja:137
msgid
" at "
msgstr
" à "
...
...
@@ -3518,7 +3523,7 @@ msgstr "Vous avez déjà soumis votre vote."
msgid
"You have voted in this election."
msgstr
"Vous avez déjà voté pour cette élection."
#: election/templates/election/election_detail.jinja:266 election/views.py:
82
#: election/templates/election/election_detail.jinja:266 election/views.py:
90
msgid
"Blank vote"
msgstr
"Vote blanc"
...
...
@@ -3556,44 +3561,44 @@ msgstr "Ajouter une nouvelle liste"
msgid
"Add a new role"
msgstr
"Ajouter un nouveau rôle"
#: election/templates/election/election_list.jinja:
4
#: election/templates/election/election_list.jinja:
5
msgid
"Election list"
msgstr
"Liste des élections"
#: election/templates/election/election_list.jinja:2
1
#: election/templates/election/election_list.jinja:2
2
msgid
"Current elections"
msgstr
"Élections actuelles"
#: election/templates/election/election_list.jinja:
29
#: election/templates/election/election_list.jinja:
30
msgid
"Applications open from"
msgstr
"Candidatures ouvertes à partir du"
#: election/templates/election/election_list.jinja:3
2
#: election/templates/election/election_list.jinja:4
0
#: election/templates/election/election_list.jinja:3
3
#: election/templates/election/election_list.jinja:4
1
msgid
"to"
msgstr
"au"
#: election/templates/election/election_list.jinja:3
7
#: election/templates/election/election_list.jinja:3
8
msgid
"Polls open from"
msgstr
"Votes ouverts du"
#: election/views.py:4
4
#: election/views.py:4
6
msgid
"You have selected too much candidates."
msgstr
"Vous avez sélectionné trop de candidats."
#: election/views.py:
59
#: election/views.py:
62
msgid
"User to candidate"
msgstr
"Utilisateur se présentant"
#: election/views.py:1
0
2
#: election/views.py:1
1
2
msgid
"This role already exists for this election"
msgstr
"Ce rôle existe déjà pour cette élection"
#: election/views.py:1
3
2
#: election/views.py:1
5
2
msgid
"Start candidature"
msgstr
"Début des candidatures"
#: election/views.py:1
33
#: election/views.py:1
55
msgid
"End candidature"
msgstr
"Fin des candidatures"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment