Skip to content

Commit

Permalink
Remove jinja dependencies
Browse files Browse the repository at this point in the history
  • Loading branch information
fabienheureux committed Oct 31, 2024
1 parent 048fd0b commit 5758ebc
Show file tree
Hide file tree
Showing 16 changed files with 49 additions and 45 deletions.
15 changes: 0 additions & 15 deletions core/jinja2_handler.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,18 +12,6 @@
from qfdmo.models.action import get_actions_by_direction


def is_embedded(request: HttpRequest) -> bool:
return "iframe" in request.GET or "carte" in request.GET


def is_carte(request: HttpRequest) -> bool:
return "carte" in request.GET


def is_iframe(request: HttpRequest) -> bool:
return "iframe" in request.GET


def action_by_direction(request: HttpRequest, direction: str):
requested_direction = get_direction(request)
action_displayed = request.GET.get("action_displayed", "")
Expand Down Expand Up @@ -89,9 +77,6 @@ def environment(**options):
"hide_object_filter": hide_object_filter,
"distance_to_acteur": distance_to_acteur,
"display_exclusivite_reparation": display_exclusivite_reparation,
"is_embedded": is_embedded,
"is_iframe": is_iframe,
"is_carte": is_carte,
"url": reverse,
"static": static,
"quote_plus": lambda u: quote_plus(u),
Expand Down
10 changes: 5 additions & 5 deletions jinja2/layout/base.html
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
<script src="{{ static('qfdmo.js') }}"></script>
{% block javascript_extras %}{% endblock %}

{% if is_embedded(request) %}
{% if is_embedded %}
<script src="{{ static('iframe_resizer.js') }}"></script>
{% endif %}
</head>
Expand All @@ -35,7 +35,7 @@
class="qfdmo-flex qfdmo-flex-col"
data-controller="analytics"
>
{% if not is_embedded(request) %}
{% if not is_embedded %}
{% block header %}
{% include "layout/header.html" %}
{% endblock %}
Expand All @@ -58,14 +58,14 @@ <h3 class="fr-alert__title">Une mise à jour de votre navigateur est nécessaire
</div>
{% block content %}{% endblock %}
</main>
{% if not is_embedded(request) %}
{% if not is_embedded %}
{% block footer %}
{% include "layout/footer.html" %}
{% endblock %}
{% endif %}
{% block js %}
{% endblock %}
{% if is_embedded(request) %}
{% if is_embedded %}
<script
src="https://cdnjs.cloudflare.com/ajax/libs/iframe-resizer/4.3.6/iframeResizer.contentWindow.js"
integrity="sha512-hBWsS94l8+snzSPo759jDKZ3z3jn3WT4snJZTBaeMPbrCGzDrYdl2pN9EaXjh6IqEZC7wF10qcmp42TPRVgAYQ=="
Expand All @@ -86,7 +86,7 @@ <h3 class="fr-alert__title">Une mise à jour de votre navigateur est nécessaire
{% endif %}
<script id="posthog-infos">
{
"iframe": "{{ is_embedded(request)|tojson }}"
"iframe": "{{ is_embedded|tojson }}"
}
</script>

Expand Down
4 changes: 2 additions & 2 deletions jinja2/qfdmo/_addresses_partials/adresse_input_form.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
<div data-controller='address-autocomplete'
data-address-autocomplete-max-option-displayed-value=5
data-address-autocomplete-is-ban-address-value='true'
data-with-controls={{"false" if is_carte(request) else "true"}}
data-with-controls={{"false" if is_carte else "true"}}
data-without-zone="true"
data-with-dynamic-form-panel={{"false" if is_carte(request) else "true"}}
data-with-dynamic-form-panel={{"false" if is_carte else "true"}}
data-testid="rechercher-adresses-submit"
>
<div class="form-group">
Expand Down
6 changes: 3 additions & 3 deletions jinja2/qfdmo/_addresses_partials/filters/_object_filter.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
<div data-controller='ss-cat-object-autocomplete'
data-ss-cat-object-autocomplete-max-option-displayed-value=5
data-ss-cat-object-autocomplete-nb-char-to-search-value=1
data-with-controls={{"false" if is_carte(request) else "true"}}
data-without-zone={{"false" if is_carte(request) else "true"}}
data-with-dynamic-form-panel={{"false" if is_carte(request) else "true"}}
data-with-controls={{"false" if is_carte else "true"}}
data-without-zone={{"false" if is_carte else "true"}}
data-with-dynamic-form-panel={{"false" if is_carte else "true"}}
>
<div class="form-group">
{{ form.sous_categorie_objet.label_tag() }}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ <h4 class="fr-mt-3w qfdmo-text-center">
type="button"
data-action="click -> search-solution-form#advancedSubmit"
data-without-zone="false"
data-with-controls={{"false" if is_carte(request) else "true"}}
data-with-controls={{"false" if is_carte else "true"}}
data-toggle-advanced-filters="true"
>
Appliquer
Expand Down
2 changes: 1 addition & 1 deletion jinja2/qfdmo/_addresses_partials/iframe_footer_links.html
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{# Liens de pieds de page pour iframe #}
{% if is_embedded(request) %}
{% if is_embedded %}
<div class="fr-container fr-mb-1w fr-text--xs qfdmo-text-center fr-pt-1w">
<a href="https://longuevieauxobjets.ademe.fr/reutiliser-nos-outils/?mtm_campaign=widget"
target="_blank"
Expand Down
4 changes: 2 additions & 2 deletions jinja2/qfdmo/acteur/_detail.coucou
Original file line number Diff line number Diff line change
Expand Up @@ -265,9 +265,9 @@
<h3 class="fr-text--sm fr-m-0 qfdmo-text-grey-425">Services disponibles</h3>
{% for service_proposition in adresse.proposition_services_by_direction(direction) %}
<div class="fr-px-1w fr-pb-1w fr-my-1w qfdmo-bg-grey-975">
<p class="fr-my-1w fr-mr-1v fr-badge fr-badge--sm qfdmo-bg-{{ service_proposition.action.groupe_action.couleur if is_carte(request) else service_proposition.action.couleur }} qfdmo-bg-opacity-30">
<p class="fr-my-1w fr-mr-1v fr-badge fr-badge--sm qfdmo-bg-{{ service_proposition.action.groupe_action.couleur if is_carte else service_proposition.action.couleur }} qfdmo-bg-opacity-30">
{% if service_proposition.action.icon %}
<span class="{{ service_proposition.action.groupe_action.icon if is_carte(request) else service_proposition.action.icon }}" aria-hidden="true"></span>&nbsp;
<span class="{{ service_proposition.action.groupe_action.icon if is_carte else service_proposition.action.icon }}" aria-hidden="true"></span>&nbsp;
{% endif %}
{{ service_proposition.action.libelle }}
</p>
Expand Down
2 changes: 1 addition & 1 deletion jinja2/qfdmo/carte/panels/legend_mobile.html
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ <h2 class="fr-h4 fr-my-2w qfdmo-text-center">
type="button"
data-action="click -> search-solution-form#advancedSubmit"
data-without-zone="false"
data-with-controls={{"false" if is_carte(request) else "true"}}
data-with-controls={{"false" if is_carte else "true"}}
data-toggle-advanced-filters="true"
>
Appliquer
Expand Down
4 changes: 2 additions & 2 deletions jinja2/qfdmo/partials/featureflip_inputs.html
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{% if is_iframe(request) %}
{% if is_iframe %}
<input type="hidden" name="iframe">
{% endif %}
{% if is_carte(request) %}
{% if is_carte %}
<input type="hidden" name="carte" data-search-solution-form-target='carte'>
{% endif %}
{% if request.GET.get('limit') %}
Expand Down
4 changes: 2 additions & 2 deletions jinja2/qfdmo/shared/_layout.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
{% include "qfdmo/shared/_search_form_data-attributes.html" %}
class="
qfdmo-min-h-screen
qfdmo-flex qfdmo-flex-col qfdmo-flex-auto
qfdmo-relative"
qfdmo-flex qfdmo-flex-col qfdmo-flex-auto
qfdmo-relative"
>
{% include "qfdmo/partials/featureflip_inputs.html" %}

Expand Down
6 changes: 3 additions & 3 deletions jinja2/qfdmo/shared/_map_container.html
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
>
{{ form.bounding_box }}
<div id="map" class="qfdmo-h-screen qfdmo-inset-0">
{% if is_carte(request) %}
{% if is_carte %}
<a class="qfdmo-flex lg:qfdmo-hidden
qfdmo-bg-white
fr-mb-1w fr-btn fr-btn--icon-left fr-icon-epingle-plus fr-btn--tertiary qfdmo-whitespace-nowrap qfdmo-w-auto qfdmo-justify-center
Expand All @@ -33,7 +33,7 @@
</div>
{% include "qfdmo/shared/_search_in_zone.html" %}

{% if is_carte(request) %}
{% if is_carte %}
{% include "qfdmo/carte/panels/legend.html" %}
{% endif %}

Expand All @@ -50,7 +50,7 @@
</div>
{% endif %}
{% include "qfdmo/shared/disclaimers/loading_solutions.html" %}
{% if not is_carte(request) %}
{% if not is_carte %}
<div class="qfdmo-px-2w sm:qfdmo-px-0 qfdmo-duration-300 sm:qfdmo-h-fit sm:qfdmo-mr-1w qfdmo-flex qfdmo-flex-row-reverse" data-search-solution-form-target="proposeAddressPanel">
<a class="fr-my-1w fr-btn fr-btn--tertiary qfdmo-whitespace-nowrap qfdmo-w-full sm:qfdmo-w-max qfdmo-flex qfdmo-justify-center"
href="{{ url('qfdmo:address-suggestion-form') }}"
Expand Down
2 changes: 1 addition & 1 deletion jinja2/qfdmo/shared/_result.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
data-[visible=true]:qfdmo-flex-grow
data-[visible=false]:qfdmo-invisible data-[visible=false]:qfdmo-h-0
"
data-visible={{"true" if is_carte(request) else "false"}}
data-visible={{"true" if is_carte else "false"}}
tabindex="0"
>
{% block panel_header %}
Expand Down
2 changes: 1 addition & 1 deletion jinja2/qfdmo/shared/_search_form_data-attributes.html
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
data-controller="search-solution-form" id='search_form'
data-search-solution-form-target="searchForm"
data-search-solution-form-is-iframe-value="{{ is_embedded(request) }}"
data-search-solution-form-is-iframe-value="{{ is_embedded }}"
data-turbo-frame="addressesPanel"
data-action="map:displayActeur->search-solution-form#displayActeur
map:updateBbox->search-solution-form#updateBboxInput
Expand Down
2 changes: 1 addition & 1 deletion jinja2/qfdmo/shared/_search_in_zone.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
class="fr-btn fr-btn--sm fr-btn--secondary fr-m-1w fr-p-1v
qfdmo-absolute qfdmo-z-[1010] qfdmo-right-0 qfdmo-hidden qfdmo-bg-white"
type="button"
data-with-controls={{"false" if is_carte(request) else "true"}}
data-with-controls={{"false" if is_carte else "true"}}
data-testid="searchInZone"
>
Rechercher dans cette zone
Expand Down
2 changes: 1 addition & 1 deletion jinja2/qfdmo/shared/disclaimers/no_local_solution.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
class="qfdmo-absolute qfdmo-inset-0 qfdmo-bg-white qfdmo-opacity-80 qfdmo-font-black qfdmo-z-[1020] {% if acteurs or not address_ok %} qfdmo-hidden{% endif %}"
data-search-solution-form-target="NoLocalSolution"
>
<div class="qfdmo-flex qfdmo-h-full qfdmo-w-full qfdmo-items-center qfdmo-justify-center qfdmo-text-2xl sm:qfdmo-text-4xl qfdmo-text-center{% if is_carte(request) %} lg:qfdmo-pl-[350px]{% endif %}">
<div class="qfdmo-flex qfdmo-h-full qfdmo-w-full qfdmo-items-center qfdmo-justify-center qfdmo-text-2xl sm:qfdmo-text-4xl qfdmo-text-center{% if is_carte %} lg:qfdmo-pl-[350px]{% endif %}">
Il n'existe pas de solution {% if bounding_box %}dans cette zone{% else %}localisée proche de chez vous (&lt;30 km){% endif %}, essayez avec une autre combinaison de filtres.
</div>
</div>
27 changes: 23 additions & 4 deletions qfdmo/views/adresses.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@
BAN_API_URL = "https://api-adresse.data.gouv.fr/search/?q={}"


class TurboFormView(FormView):
class TurboFormMixin:
def setup(self, request, *args, **kwargs):
super().setup(request, *args, **kwargs)
self.turbo = request.headers.get("Turbo-Frame")
Expand All @@ -64,7 +64,28 @@ def get_context_data(self, **kwargs):
return context


class CarteView(TurboFormView, FormView):
class IframeMixin:
@property
def is_embedded(self):
return self.is_carte or self.is_iframe

def setup(self, request, *args, **kwargs):
super().setup(request, *args, **kwargs)
self.is_carte = "carte" in request.GET
self.is_iframe = "iframe" in request.GET

def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context.update(
is_carte=self.is_carte,
is_iframe=self.is_iframe,
is_embedded=self.is_embedded,
)

return context


class CarteView(TurboFormMixin, IframeMixin, FormView):
template_name = "qfdmo/carte.html"

def get_initial(self):
Expand Down Expand Up @@ -119,8 +140,6 @@ def get_initial(self):

def setup(self, request, *args, **kwargs):
super().setup(request, *args, **kwargs)

self.is_carte = request.GET.get("carte") is not None
if self.is_carte:
self.form_class = CarteForm
else:
Expand Down

0 comments on commit 5758ebc

Please sign in to comment.