pdf: do not display form's fill page if no pdf file associated (#75715) #171

Merged
smihai merged 1 commits from wip/75715-pdf-dont-display-fill-form-page-when-no-pdf into main 2023-04-03 14:19:45 +02:00
3 changed files with 12 additions and 1 deletions

View File

@ -2,7 +2,7 @@
{% load i18n passerelle %}
{% block actions %}
{% if object|can_edit:request.user %}
{% if object|can_edit:request.user and object.fill_form_file %}
<a href="{% url 'pdf-fields-mapping-edit' connector='pdf' slug=object.slug %}">{% trans 'Fill form: Edit fields mapping' %}</a>
{% endif %}
{% endblock %}

View File

@ -34,6 +34,12 @@ class FieldsMappingEditView(ResourceView, UpdateView):
model = models.Resource
form_class = forms.FieldsMappingEditForm
def get(self, request, *args, **kwargs):
resource = self.get_object()
if not resource.fill_form_file:
raise Http404
return super().get(request, *args, **kwargs)
def get_context_data(self, **kwargs):
context_data = super().get_context_data(**kwargs)
resource = self.get_object()

View File

@ -161,6 +161,11 @@ def cerfa_content():
def test_fill_form_no_pdf(app, admin_user, pdf):
resp = app.get('/pdf/test')
assert 'Fill form: Edit fields mapping' not in resp.text
resp = app.get('/pdf/test/fields-mapping/edit/', status=404)
resp = app.post_json('/pdf/test/fill-form/', params={'a': 1})
assert resp.json == {
'data': None,