Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
AE UTBM
Sith
Commits
d14af8e4
Commit
d14af8e4
authored
Dec 13, 2016
by
Sli
Browse files
New bdd arch
parent
fd3309fc
Changes
1
Hide whitespace changes
Inline
Side-by-side
election/models.py
View file @
d14af8e4
...
...
@@ -15,8 +15,8 @@ class Election(models.Model):
"""
title
=
models
.
CharField
(
_
(
'title'
),
max_length
=
255
)
description
=
models
.
TextField
(
_
(
'description'
),
null
=
True
,
blank
=
True
)
start_
proposal
=
models
.
DateTimeField
(
_
(
'start
proposal
'
),
blank
=
False
)
end_
proposal
=
models
.
DateTimeField
(
_
(
'end
proposal
'
),
blank
=
False
)
start_
candidature
=
models
.
DateTimeField
(
_
(
'start
candidature
'
),
blank
=
False
)
end_
candidature
=
models
.
DateTimeField
(
_
(
'end
candidature
'
),
blank
=
False
)
start_date
=
models
.
DateTimeField
(
_
(
'start date'
),
blank
=
False
)
end_date
=
models
.
DateTimeField
(
_
(
'end date'
),
blank
=
False
)
...
...
@@ -29,22 +29,22 @@ class Election(models.Model):
return
bool
(
now
<=
self
.
end_date
and
now
>=
self
.
start_date
)
@
property
def
is_
proposal
_active
(
self
):
def
is_
candidature
_active
(
self
):
now
=
timezone
.
now
()
return
bool
(
now
<=
self
.
end_
proposal
and
now
>=
self
.
start_
proposal
)
return
bool
(
now
<=
self
.
end_
candidature
and
now
>=
self
.
start_
candidature
)
def
has_voted
(
self
,
user
):
return
self
.
vote
.
filter
(
user__
id
=
user
.
id
).
exists
()
return
self
.
has_
vote
d
.
filter
(
id
=
user
.
id
).
exists
()
def
get_results
(
self
):
pass
class
R
esponsability
(
models
.
Model
):
class
R
ole
(
models
.
Model
):
"""
This class allows to create a new r
esponsability
This class allows to create a new r
ole avaliable for a candidature
"""
election
=
models
.
ForeignKey
(
Election
,
related_name
=
'r
esponsability
'
,
verbose_name
=
_
(
"election"
))
election
=
models
.
ForeignKey
(
Election
,
related_name
=
'r
ole
'
,
verbose_name
=
_
(
"election"
))
title
=
models
.
CharField
(
_
(
'title'
),
max_length
=
255
)
description
=
models
.
TextField
(
_
(
'description'
),
null
=
True
,
blank
=
True
)
...
...
@@ -52,25 +52,29 @@ class Responsability(models.Model):
return
(
"%s : %s"
)
%
(
self
.
election
.
title
,
self
.
title
)
class
Candidate
(
models
.
Model
):
class
Candidat
ur
e
(
models
.
Model
):
"""
This class is a component of responsability
"""
r
esponsability
=
models
.
ForeignKey
(
R
esponsability
,
related_name
=
'candidate'
,
verbose_name
=
_
(
"r
esponsability
"
))
r
ole
=
models
.
ForeignKey
(
R
ole
,
related_name
=
'candidat
ur
e'
,
verbose_name
=
_
(
"r
ole
"
))
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'
)
def
__str__
(
self
):
return
(
"%s : %s -> %s"
)
%
(
self
.
election
.
title
,
self
.
title
,
self
.
user
.
get_full_name
())
class
List
(
models
.
Model
):
"""
To allow per list vote
"""
title
=
models
.
CharField
(
_
(
'title'
))
class
Vote
(
models
.
Model
):
"""
This class allows to vote for candidates
"""
election
=
models
.
ForeignKey
(
Election
,
related_name
=
'vote'
,
verbose_name
=
_
(
"election"
))
candidate
=
models
.
ManyToManyField
(
Candidate
,
related_name
=
'vote'
,
verbose_name
=
_
(
"candidate"
))
user
=
models
.
ForeignKey
(
User
,
related_name
=
'vote'
,
verbose_name
=
_
(
"user"
))
role
=
models
.
ForeignKey
(
Role
,
related_name
=
'vote'
,
verbose_name
=
_
(
"role"
))
candidature
=
models
.
ManyToManyField
(
Candidature
,
related_name
=
'vote'
,
verbose_name
=
_
(
"candidature"
))
def
__str__
(
self
):
return
"Vote"
\ No newline at end of file
Write
Preview
Supports
Markdown
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