toulouse-2022: add a maelis basket cell (#73962) #146

Merged
nroche merged 2 commits from wip/73962-toulouse-2022-basket-cell into main 2023-02-15 16:49:27 +01:00
4 changed files with 142 additions and 0 deletions

View File

@ -0,0 +1,86 @@
.theme-basket {
&--item {
display: flex;
flex-direction: row;
margin-bottom: 10px;
border-bottom: $cell-entry-border;
@media(max-width: $very-small-limit) {
flex-wrap: wrap;
}
}
&--item-details {
width: 100%;
flex-grow: 1;
margin-bottom: 10px;
}
&--item-activity {
font-weight: bold;
}
&--item-name,
&--item-unit,
&--item-location,
&--item-date {
font-size: 90%;
margin-left: 10px;
@media(max-width: $very-small-limit) {
margin-left: 0;
}
&::before {
display: inline-block;
width: 1rem;
margin-right: 0.2rem;
font-family: FontAwesome;
text-align: center;
}
}
&--item-name::before { content: "\f007"; }
&--item-location::before { content: "\f041"; }
&--item-date::before { content: "\f133"; }
&--item-summary {
display: flex;
flex-grow: 1;
flex-direction: row;
align-items: center;
margin-bottom: 10px;
}
&--item-price {
flex-grow: 1;
font-weight: bold;
width: 3rem;
}
&--delete-button {
&::before {
font-family: FontAwesome;
content: "\f1f8"; // trash
}
margin-right: 0 !important;
padding-right: 30px !important;
}
&--footer {
display: flex;
flex-wrap: wrap;
flex-direction: row;
justify-content: center;
}
&--empty-button,
&--validate-button {
margin: 5px 5px !important;
}
&--empty-button {
@extend .cancel-button;
}
}

View File

@ -162,6 +162,27 @@
{"label": "Identifiant du connecteur", "varname": "slug", "required": true},
{"label": "URL de la démarche de réservation", "varname": "form_url", "required": true}
]
},
"toulouse-maelis-basket": {
"cache_duration": 0,
"force_async": true,
"auto_refresh": 30,
"name": "Toulouse - Maelis: Panier",
"url": "{{ passerelle_url }}toulouse-maelis/{{ slug }}/get-basket?{% if foyer_id %}family_id={{ foyer_id }}{% else %}NameID={{ user_nameid }}{% endif %}",
"form": [
{"label": "Slug du connecteur", "varname": "slug", "required": true}
],
"actions": {
"delete-line": {
"url": "{{passerelle_url}}toulouse-maelis/{{ slug }}/delete-basket-line?{% if foyer_id %}family_id={{ foyer_id }}{% else %}NameID={{ user_nameid }}{% endif %}"
},
"delete": {
"url": "{{passerelle_url}}toulouse-maelis/{{ slug }}/delete-basket?{% if foyer_id %}family_id={{ foyer_id }}{% else %}NameID={{ user_nameid }}{% endif %}"
},
"validate": {
"url": "{{passerelle_url}}toulouse-maelis/{{ slug }}/validate-basket?{% if foyer_id %}family_id={{ foyer_id }}{% else %}NameID={{ user_nameid }}{% endif %}"
}
}
}
}
}

View File

@ -4,3 +4,4 @@
@import 'vars';
@import '../includes/publik';
@import 'custom';
@import 'json_cells';

View File

@ -0,0 +1,34 @@
<h2 class="cell--title">Panier</h2>
<div>
{% for item in json.data.lignes %}
<div class="theme-basket--item">
<div class="theme-basket--item-details">
<div class="theme-basket--item-activity">{{ item.inscription.libAct }}</div>
<div class="theme-basket--item-unit">{{ item.inscription.libUnit }}</div>
<div class="theme-basket--item-name">{{ item.personneInfo.firstname }}</div>
<div class="theme-basket--item-location">{{ item.inscription.libLieu }}</div>
<div class="theme-basket--item-date">Du {{ item.inscription.dateDeb|date:'d/m/Y' }} au {{ item.inscription.dateFin|date:'d/m/Y' }}</div>
</div>
<div class="theme-basket--item-summary">
<div class="theme-basket--item-price">{{ item.montant|default:'---' }}</div>
<div class="theme-basket--item-actions">
<form method="POST" action="{{ site_base }}{% url 'combo-public-ajax-page-cell' page_pk=cell.page.id cell_reference=cell.get_reference %}">
<input type="hidden" name="action" value="delete-line">
<input type="hidden" name="line_id" value="{{ item.id }}">
<button class="theme-basket--delete-button" aria-label="Supprimer la ligne" title="Supprimer la ligne"></button>
</form>
</div>
</div>
</div>
{% endfor %}
<div class="theme-basket--footer">
<form method="POST" action="{{ site_base }}{% url 'combo-public-ajax-page-cell' page_pk=cell.page.id cell_reference=cell.get_reference %}">
<input type="hidden" name="action" value="delete">
<button class="theme-basket--empty-button">Vider le Panier</button>
</form>
<form method="POST" action="{{ site_base }}{% url 'combo-public-ajax-page-cell' page_pk=cell.page.id cell_reference=cell.get_reference %}">
<input type="hidden" name="action" value="validate">
<button class="theme-basket--validate-button">Valider</button>
</form>
</div>
</div>