summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2013-06-18 19:00:00 +0200
committerÉtienne Loks <etienne.loks@peacefrogs.net>2013-06-18 19:00:17 +0200
commit2a52b938ec9ed46f609a5df850bf39965995da43 (patch)
treeacf4b7d0a326701adfd17fa7ad6687d8a0aefebb
parente258552038a630cdfde44b3e39ec24d72914f180 (diff)
downloadChimère-2a52b938ec9ed46f609a5df850bf39965995da43.tar.bz2
Chimère-2a52b938ec9ed46f609a5df850bf39965995da43.zip
Manage edition rights
-rw-r--r--chimere/templates/chimere/detail.html5
-rw-r--r--chimere/views.py14
2 files changed, 15 insertions, 4 deletions
diff --git a/chimere/templates/chimere/detail.html b/chimere/templates/chimere/detail.html
index f547785..4772d37 100644
--- a/chimere/templates/chimere/detail.html
+++ b/chimere/templates/chimere/detail.html
@@ -28,9 +28,12 @@
<a href='#' class='show_gallery_link'>{% trans "Show multimedia gallery" %}</a>
</p>{% endif %}
</div>
+ {% if can_edit or can_propose %}
<p class='detail_amendment'><a href='{% if marker.route %}{% url chimere:editroute-item map_name_slash|default_if_none:"" marker.route.pk "" %}{%else%}{% url chimere:edit-item map_name_slash|default_if_none:"" marker.pk "" %}{%endif%}'>
- {% trans "Submit an amendment" %}
+ {% if can_write %}{% trans "Edit" %}{%else%}
+ {% trans "Submit an amendment" %}{%endif%}
</a>
+ {% endif %}
{% if moderator_emails %}
<a href="mailto:?from={{moderator_emails}}&subject={% trans "Propose amendment" %}&body={% trans "I would like to propose an amendment for this item:"%} {{share_url}}">
{% trans "Propose amendment" %}
diff --git a/chimere/views.py b/chimere/views.py
index d9231e1..8964321 100644
--- a/chimere/views.py
+++ b/chimere/views.py
@@ -94,10 +94,18 @@ def get_base_response(request, map_name="", edit=False):
map_name = map.urn
elif map_name:
return None, redirect(reverse('chimere:index'))
- if edit and map:
- base_response_dct['can_write'] = bool(map.public_write or
+ if map:
+ base_response_dct['can_write'] = map.public_write
+ base_response_dct['can_propose'] = map.public_propose
+ if base_response_dct['is_authenticated']:
+ base_response_dct['can_write'] = \
+ base_response_dct['can_write'] or bool(
Map.objects.filter(pk=map.pk, mapusers__user=request.user,
mapusers__write=True).count())
+ base_response_dct['can_propose'] = \
+ base_response_dct['can_propose'] or bool(
+ Map.objects.filter(pk=map.pk, mapusers__user=request.user,
+ mapusers__propose=True).count())
base_response_dct['map'] = map
base_response_dct['map_name'] = map_name
@@ -201,7 +209,7 @@ def index(request, map_name=None, default_map=None, simple=False,
'dynamic_categories':response_dct['dynamic_categories'],
'zoomout':zoomout,
'has_default_map':Map.objects.filter(default=True).count(),
- 'zoomout':zoomout
+ 'zoomout':zoomout,
})
if hasattr(settings, 'CONTACT_EMAIL') and settings.CONTACT_EMAIL:
response_dct['contact_email'] = settings.CONTACT_EMAIL