diff --git a/combo_plugin_gnm/urls.py b/combo_plugin_gnm/urls.py index 7a4ac3a..8ab1230 100644 --- a/combo_plugin_gnm/urls.py +++ b/combo_plugin_gnm/urls.py @@ -23,4 +23,5 @@ urlpatterns = [ url(r'^gnm/plusone/$', views.plusone, name='gnm-plus-one'), url(r'^gnm/share/$', views.share, name='gnm-share'), url(r'^gnm/stats/$', views.stats, name='gnm-stats'), + url(r'^gnm/cartads/unsubscribe/$', views.cartads_unsubscribe, name='gnm-cartads-unsubscribe'), ] diff --git a/combo_plugin_gnm/views.py b/combo_plugin_gnm/views.py index 35c44cb..bc8d021 100644 --- a/combo_plugin_gnm/views.py +++ b/combo_plugin_gnm/views.py @@ -118,3 +118,23 @@ def stats(request, *args, **kwargs): data['users']['median-tiles'] = dashboard_lengths[len(dashboard_lengths) // 2] return JsonResponse(data) + + +def cartads_unsubscribe(request, *args, **kwargs): + cell = ConfigJsonCell.objects.filter(key='cartads-dossiers').first() + if cell: + next_url = cell.page.get_online_url() + else: + next_url = '/' + numero_dossier = request.GET.get('numero_dossier') + if numero_dossier: + context = RequestContext(request, {'request': request}) + context.update(cell.get_cell_extra_context(context)) + action_url = get_templated_url(settings.JSON_CELL_TYPES['cartads-dossiers']['actions']['unsubscribe']['url'], context) + action_url += '&dossier_number=' + numero_dossier + response = requests.get(action_url, remote_service='auto', without_user=True) + if response.ok: + messages.info(request, u'Le dossier a été retiré de votre suivi.') + return HttpResponseRedirect(next_url) + messages.error(request, u"Le dossier n'a pas pu être retiré de votre suivi.") + return HttpResponseRedirect(next_url) diff --git a/debian/50gnm.py b/debian/50gnm.py index c416901..2bb9f72 100644 --- a/debian/50gnm.py +++ b/debian/50gnm.py @@ -428,7 +428,7 @@ JSON_CELL_TYPES = { }, "cartads-dossiers": { "url": "{{passerelle_url}}grandlyon-cartads-cs/{{slug}}/files?name_id={{user_nameid}}", - "cache_duration": 3600, + "cache_duration": 0, "force_async": True, "name": u"Dossiers Cart@DS", "form": [ @@ -437,7 +437,12 @@ JSON_CELL_TYPES = { "type": "string", "label": "Slug du connecteur" } - ] + ], + "actions": { + "unsubscribe": { + "url": "{{passerelle_url}}grandlyon-cartads-cs/{{slug}}/unsubscribe?name_id={{user_nameid}}", + }, + } }, }