Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
nk20
Manage
Activity
Members
Labels
Plan
Issues
31
Issue boards
Milestones
Wiki
Code
Merge requests
6
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
BDE
nk20
Commits
a186ccbb
Commit
a186ccbb
authored
4 years ago
by
ynerant
Browse files
Options
Downloads
Patches
Plain Diff
Update WEI models
parent
154ea64b
No related branches found
No related tags found
1 merge request
!78
WEI
Pipeline
#8148
passed with stages
in 4 minutes and 2 seconds
Changes
2
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
apps/member/models.py
+1
-0
1 addition, 0 deletions
apps/member/models.py
apps/wei/models.py
+79
-94
79 additions, 94 deletions
apps/wei/models.py
with
80 additions
and
94 deletions
apps/member/models.py
+
1
−
0
View file @
a186ccbb
...
@@ -171,6 +171,7 @@ class Club(models.Model):
...
@@ -171,6 +171,7 @@ class Club(models.Model):
self
.
membership_start
.
month
,
self
.
membership_start
.
day
)
self
.
membership_start
.
month
,
self
.
membership_start
.
day
)
self
.
membership_end
=
datetime
.
date
(
self
.
membership_end
.
year
+
1
,
self
.
membership_end
=
datetime
.
date
(
self
.
membership_end
.
year
+
1
,
self
.
membership_end
.
month
,
self
.
membership_end
.
day
)
self
.
membership_end
.
month
,
self
.
membership_end
.
day
)
self
.
_force_save
=
True
self
.
save
(
force_update
=
True
)
self
.
save
(
force_update
=
True
)
def
save
(
self
,
force_insert
=
False
,
force_update
=
False
,
using
=
None
,
def
save
(
self
,
force_insert
=
False
,
force_update
=
False
,
using
=
None
,
...
...
This diff is collapsed.
Click to expand it.
apps/wei/models.py
+
79
−
94
View file @
a186ccbb
# Copyright (C) 2018-2020 by BDE ENS Paris-Saclay
# Copyright (C) 2018-2020 by BDE ENS Paris-Saclay
# SPDX-License-Identifier: GPL-3.0-or-later
# SPDX-License-Identifier: GPL-3.0-or-later
import
json
from
django.contrib.auth.models
import
User
from
django.contrib.auth.models
import
User
from
django.db
import
models
from
django.db
import
models
from
django.utils.translation
import
gettext_lazy
as
_
from
django.utils.translation
import
gettext_lazy
as
_
from
member.models
import
Role
,
Club
,
Membership
from
note.models
import
NoteSpecial
from
note.models
import
NoteSpecial
class
WEI
(
models
.
Model
):
class
WEI
Club
(
Club
):
"""
"""
Store WEI information
"""
"""
name
=
models
.
CharField
(
max_length
=
255
,
unique
=
True
,
verbose_name
=
_
(
"
name
"
),
)
year
=
models
.
PositiveIntegerField
(
year
=
models
.
PositiveIntegerField
(
unique
=
True
,
unique
=
True
,
verbose_name
=
_
(
"
year
"
),
verbose_name
=
_
(
"
year
"
),
)
)
start
=
models
.
DateField
(
def
update_membership_dates
(
self
):
verbose_name
=
_
(
"
start date
"
),
"""
)
We can
'
t join the WEI next years.
"""
end
=
models
.
DateField
(
return
verbose_name
=
_
(
"
end date
"
),
)
price_paid
=
models
.
PositiveIntegerField
(
verbose_name
=
_
(
"
Price for paid students
"
),
)
price_unpaid
=
models
.
PositiveIntegerField
(
verbose_name
=
_
(
"
Price for unpaid students
"
),
)
email
=
models
.
EmailField
(
verbose_name
=
_
(
"
contact email
"
),
)
registrations_open
=
models
.
BooleanField
(
verbose_name
=
_
(
"
registrations open
"
),
)
def
__str__
(
self
):
return
self
.
name
class
Meta
:
verbose_name
=
_
(
"
WEI
"
)
verbose_name_plural
=
_
(
"
WEI
"
)
class
Bus
(
models
.
Model
):
class
Bus
(
models
.
Model
):
...
@@ -60,7 +30,7 @@ class Bus(models.Model):
...
@@ -60,7 +30,7 @@ class Bus(models.Model):
The best bus for the best WEI
The best bus for the best WEI
"""
"""
wei
=
models
.
ForeignKey
(
wei
=
models
.
ForeignKey
(
WEI
,
WEI
Club
,
on_delete
=
models
.
PROTECT
,
on_delete
=
models
.
PROTECT
,
related_name
=
"
buses
"
,
related_name
=
"
buses
"
,
verbose_name
=
_
(
"
WEI
"
),
verbose_name
=
_
(
"
WEI
"
),
...
@@ -107,17 +77,19 @@ class BusTeam(models.Model):
...
@@ -107,17 +77,19 @@ class BusTeam(models.Model):
verbose_name_plural
=
_
(
"
Bus teams
"
)
verbose_name_plural
=
_
(
"
Bus teams
"
)
class
WEIRole
(
models
.
Model
):
class
WEIRole
(
Role
):
"""
"""
A Role for the WEI can be bus chief, team chief, free electron, ...
A Role for the WEI can be bus chief, team chief, free electron, ...
"""
"""
name
=
models
.
CharField
(
bus
=
models
.
ForeignKey
(
max_length
=
255
,
Bus
,
unique
=
True
,
on_delete
=
models
.
CASCADE
,
related_name
=
"
roles
"
,
verbose_name
=
_
(
"
bus
"
),
)
)
class
WEI
User
(
models
.
Model
):
class
WEI
Registration
(
models
.
Model
):
"""
"""
Store personal data that can be useful for the WEI.
Store personal data that can be useful for the WEI.
"""
"""
...
@@ -130,16 +102,22 @@ class WEIUser(models.Model):
...
@@ -130,16 +102,22 @@ class WEIUser(models.Model):
)
)
wei
=
models
.
ForeignKey
(
wei
=
models
.
ForeignKey
(
WEI
,
WEI
Club
,
on_delete
=
models
.
PROTECT
,
on_delete
=
models
.
PROTECT
,
related_name
=
"
users
"
,
related_name
=
"
users
"
,
verbose_name
=
_
(
"
WEI
"
),
verbose_name
=
_
(
"
WEI
"
),
)
)
role
=
models
.
ForeignKey
(
payment_method
=
models
.
ForeignKey
(
WEIRole
,
NoteSpecial
,
on_delete
=
models
.
PROTECT
,
on_delete
=
models
.
PROTECT
,
verbose_name
=
_
(
"
role
"
),
null
=
True
,
# null = no credit, paid with note
related_name
=
"
+
"
,
verbose_name
=
_
(
"
payment method
"
),
)
soge_credit
=
models
.
BooleanField
(
verbose_name
=
_
(
"
Credit from Société générale
"
),
)
)
birth_date
=
models
.
DateField
(
birth_date
=
models
.
DateField
(
...
@@ -170,74 +148,81 @@ class WEIUser(models.Model):
...
@@ -170,74 +148,81 @@ class WEIUser(models.Model):
verbose_name
=
_
(
"
emergency contact phone
"
),
verbose_name
=
_
(
"
emergency contact phone
"
),
)
)
payment_method
=
models
.
ForeignKey
(
ml_events_registration
=
models
.
BooleanField
(
NoteSpecial
,
on_delete
=
models
.
PROTECT
,
null
=
True
,
# null = no credit, paid with note
related_name
=
"
+
"
,
verbose_name
=
_
(
"
payment method
"
),
)
soge_credit
=
models
.
BooleanField
(
verbose_name
=
_
(
"
Credit from Société générale
"
),
)
ml_events_registation
=
models
.
BooleanField
(
verbose_name
=
_
(
"
Register on the mailing list to stay informed of the events of the campus (1 mail/week)
"
),
verbose_name
=
_
(
"
Register on the mailing list to stay informed of the events of the campus (1 mail/week)
"
),
)
)
ml_sport_registation
=
models
.
BooleanField
(
ml_sport_regist
r
ation
=
models
.
BooleanField
(
verbose_name
=
_
(
"
Register on the mailing list to stay informed of the sport events of the campus (1 mail/week)
"
),
verbose_name
=
_
(
"
Register on the mailing list to stay informed of the sport events of the campus (1 mail/week)
"
),
)
)
ml_art_registation
=
models
.
BooleanField
(
ml_art_regist
r
ation
=
models
.
BooleanField
(
verbose_name
=
_
(
"
Register on the mailing list to stay informed of the art events of the campus (1 mail/week)
"
),
verbose_name
=
_
(
"
Register on the mailing list to stay informed of the art events of the campus (1 mail/week)
"
),
)
)
team
=
models
.
ForeignKey
(
information_json
=
models
.
TextField
(
BusTeam
,
verbose_name
=
_
(
"
registration information
"
),
on_delete
=
models
.
PROTECT
,
help_text
=
_
(
"
Information about the registration (buses for old members, survey fot the new members),
"
related_name
=
"
users
"
,
"
encoded in JSON
"
),
null
=
True
,
blank
=
True
,
verbose_name
=
_
(
"
team
"
),
)
)
bus_choice1
=
models
.
ForeignKey
(
@property
def
information
(
self
):
"""
The information about the registration (the survey for the new members, the bus for the older members, ...)
are stored in a dictionary that can evolve following the years. The dictionary is stored as a JSON string.
"""
return
json
.
loads
(
self
.
information_json
)
@information.setter
def
information
(
self
,
information
):
"""
Store information as a JSON string
"""
self
.
information_json
=
json
.
dumps
(
information
)
@property
def
is_1A
(
self
):
"""
We assume that a user is a new member if it not fully registered yet.
"""
return
not
self
.
user
.
profile
.
registration_valid
def
__str__
(
self
):
return
str
(
self
.
user
)
class
Meta
:
unique_together
=
(
'
user
'
,
'
wei
'
,)
verbose_name
=
_
(
"
WEI User
"
)
verbose_name_plural
=
_
(
"
WEI Users
"
)
class
WEIMembership
(
Membership
):
bus
=
models
.
ForeignKey
(
Bus
,
Bus
,
on_delete
=
models
.
PROTECT
,
on_delete
=
models
.
PROTECT
,
related_name
=
"
+
"
,
null
=
True
,
verbose_name
=
_
(
"
bus choice 1
"
),
default
=
None
,
verbose_name
=
_
(
"
bus
"
),
)
)
bus_choice2
=
models
.
ForeignKey
(
team
=
models
.
ForeignKey
(
Bus
,
Bus
Team
,
on_delete
=
models
.
PROTECT
,
on_delete
=
models
.
PROTECT
,
related_name
=
"
+
"
,
related_name
=
"
memberships
"
,
null
=
True
,
null
=
True
,
blank
=
True
,
blank
=
True
,
verbose_name
=
_
(
"
bus choice 2
"
),
default
=
None
,
verbose_name
=
_
(
"
team
"
),
)
)
bus_choice3
=
models
.
ForeignKey
(
registration
=
models
.
OneToOneField
(
Bus
,
WEIRegistration
,
on_delete
=
models
.
PROTECT
,
on_delete
=
models
.
PROTECT
,
related_name
=
"
+
"
,
null
=
True
,
null
=
True
,
blank
=
True
,
blank
=
True
,
verbose_name
=
_
(
"
bus choice 3
"
),
default
=
None
,
)
related_name
=
"
membership
"
,
verbose_name
=
_
(
"
WEI registration
"
),
asked_roles
=
models
.
ManyToManyField
(
WEIRole
,
related_name
=
"
+
"
,
verbose_name
=
_
(
"
asked roles
"
),
)
)
def
__str__
(
self
):
return
str
(
self
.
user
)
class
Meta
:
unique_together
=
(
'
user
'
,
'
wei
'
,)
verbose_name
=
_
(
"
WEI User
"
)
verbose_name_plural
=
_
(
"
WEI Users
"
)
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment