diff options
| 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 |
| commit | 2a52b938ec9ed46f609a5df850bf39965995da43 (patch) | |
| tree | acf4b7d0a326701adfd17fa7ad6687d8a0aefebb | |
| parent | e258552038a630cdfde44b3e39ec24d72914f180 (diff) | |
| download | Chimère-2a52b938ec9ed46f609a5df850bf39965995da43.tar.bz2 Chimère-2a52b938ec9ed46f609a5df850bf39965995da43.zip | |
Manage edition rights
| -rw-r--r-- | chimere/templates/chimere/detail.html | 5 | ||||
| -rw-r--r-- | chimere/views.py | 14 |
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 |
