summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2013-07-01 20:32:57 +0200
committerÉtienne Loks <etienne.loks@peacefrogs.net>2013-07-01 20:32:57 +0200
commitbb0bfafa4514c2dd58bd2d33b447db91fe0c3f97 (patch)
tree3d4aed7efb4c89583f3411d4670f4a928d08a6af
parent85ca18e18fbff0b37c7270995f0bdc97efdcc3cb (diff)
downloadChimère-bb0bfafa4514c2dd58bd2d33b447db91fe0c3f97.tar.bz2
Chimère-bb0bfafa4514c2dd58bd2d33b447db91fe0c3f97.zip
Manage automatic submission when authenticated and have the right.
-rw-r--r--chimere/forms.py12
-rw-r--r--chimere/views.py5
2 files changed, 12 insertions, 5 deletions
diff --git a/chimere/forms.py b/chimere/forms.py
index 09b46ae..62ad101 100644
--- a/chimere/forms.py
+++ b/chimere/forms.py
@@ -256,10 +256,13 @@ class MarkerAdminFormBase(forms.ModelForm):
"""
Custom save method in order to manage associated properties
"""
+ can_write = False
+ if 'can_write' in keys:
+ can_write = keys.pop('can_write')
new_marker = super(MarkerAdminFormBase, self).save(*args, **keys)
if 'status' not in self.cleaned_data and not new_marker.status:
- new_marker.status = 'S'
- if new_marker.status == 'A':
+ new_marker.status = 'A' if can_write else 'S'
+ if not new_marker.available_date and new_marker.status == 'A':
tz = UTC()
new_marker.available_date = datetime.replace(datetime.utcnow(),
tzinfo=tz)
@@ -345,9 +348,12 @@ class RouteAdminForm(forms.ModelForm):
"""
Custom save method in order to manage associated properties
"""
+ can_write = False
+ if 'can_write' in keys:
+ can_write = keys.pop('can_write')
new_route = super(RouteAdminForm, self).save(*args, **keys)
if 'status' not in self.cleaned_data and not new_route.status:
- new_route.status = 'S'
+ new_route.status = 'A' if can_write else 'S'
new_route.save()
return new_route
diff --git a/chimere/views.py b/chimere/views.py
index 8964321..f8581a7 100644
--- a/chimere/views.py
+++ b/chimere/views.py
@@ -283,7 +283,7 @@ def get_edit_page(redirect_url, item_cls, item_form,
# All validation rules pass
if form.is_valid() and formset_multi.is_valid() and \
formset_picture.is_valid():
- item = form.save()
+ item = form.save(can_write=response_dct.get('can_write'))
# set the session key (to permit modifications)
item.submiter_session_key = request.session.session_key
@@ -301,7 +301,8 @@ def get_edit_page(redirect_url, item_cls, item_form,
# just submited
if not item.status:
- item.status = 'S'
+ print "plouf9"
+ item.status = 'A' if response_dct.get('can_write') else 'S'
item.save()
marker = item