Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
SRCT
roomlist
Commits
5a1bb016
Commit
5a1bb016
authored
Oct 06, 2016
by
Daniel W Bond
Browse files
form instantiation and cleaning now properly works for m2m with blocked students
parent
9b5ea1db
Changes
1
Hide whitespace changes
Inline
Side-by-side
roomlist/accounts/views.py
View file @
5a1bb016
...
...
@@ -178,6 +178,8 @@ class UpdateStudent(LoginRequiredMixin, FormValidMessageMixin, FormView):
'graduating_year'
:
me
.
graduating_year
,
'on_campus'
:
me
.
on_campus
,
})
form
.
fields
[
'blocked_kids'
].
queryset
=
Student
.
objects
.
exclude
(
user
=
self
.
request
.
user
)
if
me
.
recent_changes
()
>
2
:
form
.
fields
[
'room'
].
widget
=
HiddenInput
()
form
.
fields
[
'privacy'
].
widget
=
HiddenInput
()
...
...
@@ -192,6 +194,7 @@ class UpdateStudent(LoginRequiredMixin, FormValidMessageMixin, FormView):
# chosen
form
.
fields
[
'major'
].
widget
.
attrs
[
'class'
]
=
'chosen-select'
form
.
fields
[
'blocked_kids'
].
widget
.
attrs
[
'class'
]
=
'blocked-select'
context
[
'my_form'
]
=
form
...
...
@@ -261,12 +264,27 @@ class UpdateStudent(LoginRequiredMixin, FormValidMessageMixin, FormView):
# don't change majors
pass
# replicate the same thing for the other m2m field
try
:
form_blocked_pks
=
set
(
form
.
data
.
getlist
(
'blocked_kids'
))
current_blocked
=
me
.
blocked_kids
.
all
()
# most people will not being blocking other students
if
form_blocked_pks
:
form_blocked
=
[
Student
.
objects
.
get
(
pk
=
pk
)
for
pk
in
form_blocked_pks
]
for
current_block
in
current_blocked
:
if
current_block
not
in
form_blocked
:
me
.
blocked_kids
.
remove
(
current_block
)
for
form_block
in
form_blocked
:
if
form_block
not
in
current_blocked
:
me
.
blocked_kids
.
add
(
form_block
)
except
:
pass
me
.
user
.
first_name
=
form
.
data
[
'first_name'
]
me
.
user
.
last_name
=
form
.
data
[
'last_name'
]
me
.
gender
=
form
.
data
.
getlist
(
'gender'
)
me
.
show_gender
=
strtobool
(
form
.
data
.
get
(
'show_gender'
,
'False'
))
me
.
privacy
=
form
.
data
[
'privacy'
]
me
.
blocked_kids
=
form
.
data
[
'blocked_kids'
]
me
.
graduating_year
=
form
.
data
[
'graduating_year'
]
me
.
user
.
save
()
me
.
save
()
...
...
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