manager: add ReturnURL in booking form url (#52786)
This commit is contained in:
parent
f1b62254e5
commit
853f1b31f1
|
@ -43,6 +43,7 @@ from django.utils.encoding import force_text
|
|||
from django.utils.formats import date_format
|
||||
from django.utils.functional import cached_property
|
||||
from django.utils.module_loading import import_string
|
||||
from django.utils.safestring import mark_safe
|
||||
from django.utils.text import slugify
|
||||
from django.utils.timezone import is_aware, localtime, make_aware, make_naive, now, utc
|
||||
from django.utils.translation import ugettext
|
||||
|
@ -1353,6 +1354,18 @@ class Event(models.Model):
|
|||
def get_absolute_view_url(self):
|
||||
return reverse('chrono-manager-event-view', kwargs={'pk': self.agenda.id, 'event_pk': self.id})
|
||||
|
||||
def get_booking_form_url(self):
|
||||
if not self.agenda.booking_form_url:
|
||||
return
|
||||
template_vars = Context(settings.TEMPLATE_VARS)
|
||||
try:
|
||||
url = Template(self.agenda.booking_form_url).render(template_vars)
|
||||
url += '&' if '?' in url else '?'
|
||||
url += 'agenda=%s&event=%s' % (self.agenda.slug, self.slug)
|
||||
return mark_safe(url)
|
||||
except (VariableDoesNotExist, TemplateSyntaxError):
|
||||
return
|
||||
|
||||
@classmethod
|
||||
def import_json(cls, data):
|
||||
data['start_datetime'] = make_aware(
|
||||
|
|
|
@ -49,7 +49,7 @@
|
|||
{% if view_mode == 'settings_view' %}
|
||||
<a rel="popup" class="delete" href="{% url 'chrono-manager-event-delete' pk=agenda.pk event_pk=event.pk %}?next=settings">{% trans "remove" %}</a>
|
||||
{% elif agenda.booking_form_url %}
|
||||
<a class="link-action-text" href="{{ agenda.get_booking_form_url }}?agenda={{ agenda.slug }}&event={{ event.slug }}">{% trans "Booking form" %}</a>
|
||||
<a class="link-action-text" href="{{ event.get_booking_form_url }}&ReturnURL={{ request.build_absolute_uri }}">{% trans "Booking form" %}</a>
|
||||
{% endif %}
|
||||
<span class="occupation-bar"></span>
|
||||
</li>
|
||||
|
|
|
@ -42,7 +42,7 @@
|
|||
<a href="{% url 'chrono-manager-event-check' pk=agenda.pk event_pk=object.pk %}">{% trans "Check" %}</a>
|
||||
{% endif %}
|
||||
{% if object.agenda.booking_form_url %}
|
||||
<a href="{{ object.agenda.get_booking_form_url }}?agenda={{ object.agenda.slug }}&event={{ event.slug }}">{% trans "Booking form" %}</a>
|
||||
<a href="{{ object.get_booking_form_url }}&ReturnURL={{ request.build_absolute_uri }}">{% trans "Booking form" %}</a>
|
||||
{% endif %}
|
||||
</span>
|
||||
{% endblock %}
|
||||
|
|
|
@ -987,7 +987,7 @@ def test_event_booking_form_url(settings, app, admin_user):
|
|||
|
||||
login(app)
|
||||
|
||||
assert agenda.get_booking_form_url() is None
|
||||
assert event.get_booking_form_url() is None
|
||||
resp = app.get('/manage/agendas/%d/%d/%d/' % (agenda.pk, day.year, day.month))
|
||||
assert 'Booking form' not in resp.text
|
||||
resp = app.get('/manage/agendas/%d/events/open/' % agenda.pk)
|
||||
|
@ -998,24 +998,30 @@ def test_event_booking_form_url(settings, app, admin_user):
|
|||
agenda.booking_form_url = '{{ eservices_url }}backoffice/submission/inscription-aux-activites/'
|
||||
agenda.save()
|
||||
assert (
|
||||
agenda.get_booking_form_url() == 'http://demarches/backoffice/submission/inscription-aux-activites/'
|
||||
event.get_booking_form_url()
|
||||
== 'http://demarches/backoffice/submission/inscription-aux-activites/?agenda=%s&event=%s'
|
||||
% (agenda.slug, event.slug)
|
||||
)
|
||||
resp = app.get('/manage/agendas/%d/%d/%d/' % (agenda.pk, day.year, day.month))
|
||||
assert (
|
||||
'<a class="link-action-text" href="http://demarches/backoffice/submission/inscription-aux-activites/?agenda=%s&event=%s">Booking form</a>'
|
||||
% (agenda.slug, event.slug)
|
||||
'<a class="link-action-text" href="http://demarches/backoffice/submission/inscription-aux-activites/?agenda=%s&event=%s&ReturnURL=%s">Booking form</a>'
|
||||
% (
|
||||
agenda.slug,
|
||||
event.slug,
|
||||
'http://testserver/manage/agendas/%d/%d/%d/' % (agenda.pk, day.year, day.month),
|
||||
)
|
||||
in resp.text
|
||||
)
|
||||
resp = app.get('/manage/agendas/%d/events/open/' % agenda.pk)
|
||||
assert (
|
||||
'<a class="link-action-text" href="http://demarches/backoffice/submission/inscription-aux-activites/?agenda=%s&event=%s">Booking form</a>'
|
||||
% (agenda.slug, event.slug)
|
||||
'<a class="link-action-text" href="http://demarches/backoffice/submission/inscription-aux-activites/?agenda=%s&event=%s&ReturnURL=%s">Booking form</a>'
|
||||
% (agenda.slug, event.slug, 'http://testserver/manage/agendas/%d/events/open/' % agenda.pk)
|
||||
in resp.text
|
||||
)
|
||||
resp = app.get('/manage/agendas/%d/events/%d/' % (agenda.pk, event.pk))
|
||||
assert (
|
||||
'<a href="http://demarches/backoffice/submission/inscription-aux-activites/?agenda=%s&event=%s">Booking form</a>'
|
||||
% (agenda.slug, event.slug)
|
||||
'<a href="http://demarches/backoffice/submission/inscription-aux-activites/?agenda=%s&event=%s&ReturnURL=%s">Booking form</a>'
|
||||
% (agenda.slug, event.slug, 'http://testserver/manage/agendas/%d/events/%d/' % (agenda.pk, event.pk))
|
||||
in resp.text
|
||||
)
|
||||
|
||||
|
|
Loading…
Reference in New Issue