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
BDE
Note Kfet 2015 django
Commits
9b367fda
Commit
9b367fda
authored
Aug 26, 2013
by
Vincent Le gallic
Browse files
[factorisation de code] Meilleure gestion des droits/surdroits pour la modification de compte
parent
6df9a831
Changes
1
Show whitespace changes
Inline
Side-by-side
note/views.py
View file @
9b367fda
...
...
@@ -1222,9 +1222,6 @@ def modifier_compte(request, idbde=None):
form
=
forms
.
CompteForm
(
request
.
POST
)
if
form
.
is_valid
():
fields
=
form
.
cleaned_data
# on s'occupe des cases à cocher pour les droits
droits
=
[
champ
[
7
:]
for
(
champ
,
valeur
)
in
request
.
POST
.
items
()
if
(
champ
[:
7
]
==
"droits_"
)
and
(
valeur
==
"on"
)]
surdroits
=
[
champ
[
10
:]
for
(
champ
,
valeur
)
in
request
.
POST
.
items
()
if
(
champ
[:
10
]
==
"surdroits_"
)
and
(
valeur
==
"on"
)]
# on va chercher la valeur actuelle de tous les champs du compte
variables
.
update
(
variables_standard
)
variables
.
update
(
_prepare_variables
(
sock
,
idbde
,
request
,
form
=
True
,
whoami
=
variables
[
"whoami"
]))
...
...
@@ -1236,17 +1233,16 @@ def modifier_compte(request, idbde=None):
# on regarde les champs qui sont différents
tosend
=
{
k
:
v
for
(
k
,
v
)
in
form
.
cleaned_data
.
items
()
if
k
in
keyscompte
and
(
v
!=
compte
[
k
])}
# les droits ça se gère un peu spécialement
# avec des virgules et des cases à cocher
for
champ
in
[
"droits"
,
"surdroits"
]:
n
=
len
(
champ
)
+
1
droitsousur
=
[
case
[
n
:]
for
(
case
,
valeur
)
in
request
.
POST
.
items
()
if
case
.
startswith
(
"droits_"
)
and
(
valeur
==
"on"
)]
liste
=
compte
[
champ
].
split
(
","
)
# ATTENTION : u''.split(",") == [u''] c'est débile, mais c'est comme ça
listedroits
=
compte
[
"droits"
].
split
(
","
)
if
listedroits
==
[
u
''
]:
listedroits
=
[]
if
set
(
droits
)
!=
set
(
listedroits
):
tosend
[
"droits"
]
=
u
","
.
join
(
droits
)
listesurdroits
=
compte
[
"surdroits"
].
split
(
","
)
if
listesurdroits
==
[
u
''
]:
listesurdroits
=
[]
if
set
(
surdroits
)
!=
set
(
listesurdroits
):
tosend
[
"surdroits"
]
=
u
","
.
join
(
surdroits
)
if
liste
==
[
u
''
]:
liste
=
[]
if
set
(
droitsousur
)
!=
set
(
liste
):
tosend
[
champ
]
=
u
","
.
join
(
droits
)
if
tosend
!=
{}:
# si il y a vraiment quelque chose à faire
# on rajoute l'idbde
tosend
[
"idbde"
]
=
idbde
...
...
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