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  | 
