Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
BDE
Note Kfet 2018
Commits
38a80799
Commit
38a80799
authored
Sep 02, 2018
by
Hamza Dely
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[comptes] Amélioration du code de l'application
parent
cf823f2a
Changes
3
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
279 additions
and
339 deletions
+279
-339
comptes/models.py
comptes/models.py
+14
-2
comptes/serializers.py
comptes/serializers.py
+14
-2
comptes/views.py
comptes/views.py
+251
-335
No files found.
comptes/models.py
View file @
38a80799
...
...
@@ -118,13 +118,25 @@ class Alias(models.Model):
super
(
cls
,
alias_obj
).
save
()
return
alias_obj
@
property
def
is_pseudo
(
self
):
"""
Indique si l'alias courant est le pseudo d'un adhérent.
"""
if
self
.
proprietaire
is
None
or
not
self
.
proprietaire
.
pseudo
==
self
.
alias
:
return
False
else
:
return
True
@
transaction
.
atomic
def
save
(
self
,
*
args
,
**
kwargs
):
"""
Enregistre un alias.
"""
super
().
save
()
super
().
save
(
*
args
,
**
kwargs
)
Historique
.
objects
.
create
(
alias
=
self
,
suivant
=
self
.
proprietaire
)
@
transaction
.
atomic
def
delete
(
self
,
*
args
,
**
kwargs
):
"""
Supprime un alias.
...
...
@@ -134,7 +146,7 @@ class Alias(models.Model):
"""
ancien_proprio
=
self
.
proprietaire
self
.
proprietaire
=
None
super
().
save
()
super
().
save
(
*
args
,
**
kwargs
)
Historique
.
objects
.
create
(
alias
=
self
,
precedent
=
ancien_proprio
)
class
Historique
(
models
.
Model
):
...
...
comptes/serializers.py
View file @
38a80799
...
...
@@ -8,6 +8,7 @@ from rest_framework import serializers
from
note_kfet.serializers
import
mixins
from
note_kfet.serializers
import
Base64ImageField
from
comptes.models
import
Section
,
Alias
,
Historique
,
Droit
,
Accreditation
,
Adhesion
,
Adherent
class
SectionSerializer
(
serializers
.
ModelSerializer
):
...
...
@@ -50,13 +51,14 @@ class AdhesionSerializer(serializers.ModelSerializer):
### Sérialiseurs pour le modèle Alias
class
AliasSerializer
(
serializers
.
ModelSerializer
):
class
AliasSerializer
(
mixins
.
DynamicFieldsMixin
,
serializers
.
ModelSerializer
):
"""
Sérialiseur pour le modèle Alias
"""
class
Meta
:
model
=
Alias
fields
=
[
'alias'
,
'proprietaire'
]
default_empty
=
False
def
validate_alias
(
self
,
value
):
"""
...
...
@@ -68,6 +70,16 @@ class AliasSerializer(serializers.ModelSerializer):
raise
serializers
.
ValidationError
(
"Cet alias est déjà pris"
)
return
normalized_alias
def
update
(
self
,
instance
,
validated_data
):
"""
Effectue le changement de propriétaire d'un alias
"""
if
instance
.
is_pseudo
:
raise
serializers
.
ValidationError
(
"Cet alias ne peut être abandonné, il s'agit d'un pseudo"
)
return
super
().
update
(
instance
,
validated_data
)
### Sérialiseurs pour le modèle Historique
class
HistoriqueSerializer
(
serializers
.
ModelSerializer
):
...
...
@@ -85,7 +97,7 @@ class AdherentSerializer(mixins.DynamicFieldsMixin, serializers.ModelSerializer)
Sérialiseur pour le modèle Adhérent
"""
accreditations
=
AccreditationSerializer
(
many
=
True
,
read_only
=
True
,
fields
=
[
'droit'
,
'meta'
])
aliases
=
AliasS
erializer
(
many
=
True
,
read_only
=
True
)
aliases
=
s
erializer
s
.
SlugRelatedField
(
many
=
True
,
read_only
=
True
,
slug_field
=
'alias'
)
adhesions
=
AdhesionSerializer
(
many
=
True
,
read_only
=
True
)
last_adhesion
=
AdhesionSerializer
(
read_only
=
True
)
section
=
serializers
.
CharField
(
max_length
=
10
)
...
...
comptes/views.py
View file @
38a80799
This diff is collapsed.
Click to expand it.
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