summaryrefslogtreecommitdiff
path: root/chimere/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'chimere/views.py')
-rw-r--r--chimere/views.py22
1 files changed, 17 insertions, 5 deletions
diff --git a/chimere/views.py b/chimere/views.py
index bd1f441..dd3f89a 100644
--- a/chimere/views.py
+++ b/chimere/views.py
@@ -139,7 +139,9 @@ def index(request, area_name=None, default_area=None, simple=False):
return render_to_response(tpl, response_dct,
context_instance=RequestContext(request))
-def get_edit_page(redirect_url, item_cls, item_form):
+def get_edit_page(redirect_url, item_cls, item_form,
+ multimediafile_formset=MultimediaFileFormSet,
+ picturefile_formset=PictureFileFormSet):
"""
Edition page
"""
@@ -171,6 +173,12 @@ def get_edit_page(redirect_url, item_cls, item_form):
init_multi = init_item.get_init_multi() if init_item else None
init_picture = init_item.get_init_picture() if init_item else None
+ if init_item and not request.user.is_superuser and \
+ not init_item.submiter_session_key == \
+ request.session.session_key:
+ # hide personal information
+ for k in ('submiter_name', 'submiter_email', 'submiter_comment'):
+ setattr(init_item, k, '')
# If the form has been submited
if request.method == 'POST':
inst = None
@@ -182,9 +190,9 @@ def get_edit_page(redirect_url, item_cls, item_form):
form = item_form(request.POST, request.FILES, instance=inst,
subcategories=listed_subcats)
- formset_multi = MultimediaFileFormSet(request.POST, request.FILES,
+ formset_multi = multimediafile_formset(request.POST, request.FILES,
initial=init_multi, prefix='multimedia')
- formset_picture = PictureFileFormSet(request.POST, request.FILES,
+ formset_picture = picturefile_formset(request.POST, request.FILES,
initial=init_picture, prefix='picture')
# All validation rules pass
if form.is_valid() and formset_multi.is_valid() and \
@@ -229,9 +237,9 @@ def get_edit_page(redirect_url, item_cls, item_form):
u" and/or errors in the submited form.")
else:
form = item_form(instance=init_item, subcategories=listed_subcats)
- formset_multi = MultimediaFileFormSet(initial=init_multi,
+ formset_multi = multimediafile_formset(initial=init_multi,
prefix='multimedia')
- formset_picture = PictureFileFormSet(initial=init_picture,
+ formset_picture = picturefile_formset(initial=init_picture,
prefix='picture')
return None, (item_id, init_item, response_dct, form, formset_multi,
formset_picture), subcategories
@@ -252,6 +260,9 @@ def edit(request, area_name="", item_id=None, submited=False):
# get the "manualy" declared_fields. Ie: properties
declared_fields = form.declared_fields.keys()
+ declared_fields = PropertyModel.objects.filter(available=True).all()
+ filtered_properties = PropertyModel.objects.filter(available=True,
+ subcategories__id__isnull=False).all()
response_dct.update({
'actions':actions,
'action_selected':('contribute', 'edit'),
@@ -267,6 +278,7 @@ def edit(request, area_name="", item_id=None, submited=False):
init_item.point if init_item else None,
area_name=response_dct['area_name']),
'properties':declared_fields,
+ 'filtered_properties':filtered_properties,
'submited':submited
})
# manualy populate the custom widget