diff --git a/templates/admin/association/membership/_company_menu.html.twig b/templates/admin/association/membership/_company_menu.html.twig deleted file mode 100644 index 67c04a2fd..000000000 --- a/templates/admin/association/membership/_company_menu.html.twig +++ /dev/null @@ -1,24 +0,0 @@ -{% include 'site/secondary_menu.html.twig' with { - menu: [ - { - "nom" : "Accueil", - "lien": path('member_index'), - 'is_active': current == "home", - }, - { - "nom" : "Coordonnées", - "lien": path('member_company'), - 'is_active': current == "contact", - }, - { - "nom": "Membres", - "lien": path('member_company_members'), - "is_active": current == "members", - }, - { - "nom": "Profil public", - "lien": path('member_company_public_profile'), - "is_active": current == "public_profile", - }, - ] -} only %} diff --git a/templates/admin/association/membership/_member_menu.html.twig b/templates/admin/association/membership/_member_menu.html.twig deleted file mode 100644 index 646e4b4f6..000000000 --- a/templates/admin/association/membership/_member_menu.html.twig +++ /dev/null @@ -1,29 +0,0 @@ -{% include 'site/secondary_menu.html.twig' with { - menu: [ - { - "nom" : "Accueil", - "lien": path('member_index'), - 'is_active': current == "home", - }, - { - "nom" : "Coordonnées", - "lien": path('member_contact'), - 'is_active': current == "contact", - }, - { - "nom": "Cotisations", - "lien": path('member_membership_fee'), - "is_active": current == "membershipfee" - }, - { - "nom": "Veille", - "lien": path('member_techletter'), - "is_active": current == "techletter", - }, - { - "nom": "Assemblée générale", - "lien": path('member_general_meeting'), - "is_active": current == "generalmeeting", - } - ] -} only %} diff --git a/templates/admin/association/membership/company.html.twig b/templates/admin/association/membership/company.html.twig index 4c8c3fffc..bef280ea3 100644 --- a/templates/admin/association/membership/company.html.twig +++ b/templates/admin/association/membership/company.html.twig @@ -1,43 +1,49 @@ -{% extends 'admin/association/membership/_base.html.twig' %} +{% extends 'layouts/member_company.html.twig' %} +{% form_theme form 'form_themes/tailwind.html.twig' %} -{% block submenu %} - {% include 'admin/association/membership/_company_menu.html.twig' with { - current: "contact" - } only %} -{% endblock %} +{% block title %}Mon adhésion entreprise à l'AFUP{% endblock %} + +{% block page_body %} + +
-{% block page_title %}Mon adhésion entreprise à l'AFUP{% endblock %} +

Mon adhésion entreprise à l'AFUP

-{% block page_content %} -
{{ form_start(form) }} -
- Société -
+ + + {{ form_errors(form) }} + + {{ form_row(form.companyName) }} - {{ form_row(form.siret) }} +
+ {{ form_row(form.siret) }} + {{ form_row(form.phone) }} +
{{ form_row(form.address) }} - {{ form_row(form.zipcode) }} - {{ form_row(form.city) }} -
-
+
+ {{ form_row(form.zipcode) }} + {{ form_row(form.city) }} +
+ -
- Contact administratif -
- {{ form_row(form.firstName) }} - {{ form_row(form.lastName) }} + +
+ {{ form_row(form.lastName) }} + {{ form_row(form.firstName) }} +
{{ form_row(form.email) }} - {{ form_row(form.phone) }} -
-
+ -
- {{ form_widget(form.save, {"attr": { "class": "button button--call-to-action"}}) }} -
+
+ {{ form_widget(form.save) }} +
+ + {# Rend les champs restants (jeton CSRF compris) que les form_row ci-dessus n'ont pas consommés. #} {{ form_widget(form) }} - {{ form_end(form) }} +
+ {% endblock %} diff --git a/templates/admin/association/membership/generalmeeting.html.twig b/templates/admin/association/membership/generalmeeting.html.twig index 4bc49760e..ef9ea06d8 100644 --- a/templates/admin/association/membership/generalmeeting.html.twig +++ b/templates/admin/association/membership/generalmeeting.html.twig @@ -1,93 +1,76 @@ -{% extends 'admin/association/membership/_base.html.twig' %} +{% extends 'layouts/member.html.twig' %} +{% form_theme form 'form_themes/tailwind.html.twig' %} -{% block submenu %} - {% include 'admin/association/membership/_member_menu.html.twig' with { - current: "generalmeeting" - } only %} -{% endblock %} +{% block title %}Assemblée générale - Espace membre{% endblock %} + +{% block page_body %} + +
-{% block page_title %}Assemblée générale{% endblock %} +

Assemblée générale

-{% block page_content %} - {% if general_meeting_planned %} - {% if question %} -

Mon vote lors de l'assemblée générale

+ {% if general_meeting_planned %} + + {% if question %} +
+ Mon vote lors de l'assemblée générale + + +

{{ question.texte }}

-
-
-
- {{ question.texte }} -
{% if not vote_for_current_question %} -
- {% for voteValeur in vote_valeurs %} - - {% endfor %} -
- {% else %} -
- Votre vote : {{ vote_for_current_question.getValueLabel }} +
+ {% for voteValeur in vote_valeurs %} + {{ voteValeur.label() }} + {% endfor %}
+ {% else %} +

Votre vote : {{ vote_for_current_question.getValueLabel }}

{% endif %} + +
+ {% endif %} + + {% if question_results|length > 0 %} +
+ Résultats des votes de l'Assemblée Générale du {{ latest_date|date('d/m/Y') }} + +
+ + + + + + + + + + + {% for question_result in question_results %} + + + + + + + {% endfor %} + +
VoteOuiNonAbstention
{{ question_result.question.texte }}{{ question_result.count_oui }}{{ question_result.count_non }}{{ question_result.count_abstention }}
- - -
- {% endif %} + + {% endif %} - {% if question_results|length > 0 %} -

Résultats des votes de l'Assemblée Générale du {{ latest_date|date('d/m/Y') }}

- - - - - - - - - - - - - {% for question_result in question_results %} - - - - - - - {% endfor %} - -
VoteOuiNonAbstention
- {{ question_result.question.texte }} - - Oui - {{ question_result.count_oui }} - - Non - {{ question_result.count_non }} - - Abstention - {{ question_result.count_abstention }} -
- {% endif %} +
+ Ma participation à l'Assemblée Générale du {{ latest_date|date('d/m/Y') }} -
- {{ form_start(form) }} - -
- Ma participation à l'Assemblée Générale du {{ latest_date|date('d/m/Y') }} - -
-

- * Indique un champ obligatoire -

+ {{ form_start(form) }} + +

* Indique un champ obligatoire

{% for key, presenceItem in form.presence.children %}
- {{ form_label(presenceItem, null, {"label_attr": {"class": "libelle"}}) }} + {{ form_label(presenceItem) }} {{ form_widget(presenceItem) }}
{% if presenceItem.vars.value == '2' %} @@ -99,11 +82,14 @@ {% endif %} {% endfor %} -
- {{ form_widget(form.save, {"attr": {"class": "button button--call-to-action"}}) }} +
+ {{ form_widget(form.save) }}
-
-
+
+ {{ form_end(form) }} + + {# Script laissé dans le corps de page et non dans `javascripts` : ce bloc est rendu + dans le , où #pouvoir n'existe pas encore. Ici il s'exécute après le formulaire. #} -
- +
+ + {% if personnes_avec_pouvoir %} +
+ Vos pouvoirs +

Ces personnes vous ont donné leur pouvoir :

+ +
+ {% endif %} + + {% if last_general_meeting_description %} +
{{ last_general_meeting_description|markdown }}
+ {% endif %} - {{ form_end(form) }} -
- - {% if personnes_avec_pouvoir %} -

Vos pouvoirs

- Ces personnes vous ont donné leur pouvoir : - {% endif %} - {% if last_general_meeting_description %} - {{ last_general_meeting_description|markdown }} - {% endif %} +
+ Comptes rendus des assemblées générales + + {% if app.user.hasRole('ROLE_MEMBER_EXPIRED') %} +

Les comptes rendus ne sont accessibles qu'aux membres à jour de cotisation.

+ {% else %} +
+ + + + + + + + + + {% for report in reports %} + + + + + + {% endfor %} + +
DateNomActions
{{ report.date|date('d/m/Y') }}{{ report.label }} + Télécharger +
+
+ {% endif %} +
+ + - {% endif %} - -

Comptes rendus des assemblées générales

- - {% if app.user.hasRole('ROLE_MEMBER_EXPIRED') %} - Les comptes rendus ne sont accessibles qu'aux membres à jour de cotisation. - {% else %} - - - - - - - {% for report in reports %} - - - - - - {% endfor %} -
DateNomActions
- {{ report.date|date('d/m/Y') }} - - {{ report.label }} - - - - Télécharger - -
- {% endif %} {% endblock %} diff --git a/templates/admin/association/membership/generalmeeting_membersheepfee.html.twig b/templates/admin/association/membership/generalmeeting_membersheepfee.html.twig index e9688a2da..ad22d01b1 100644 --- a/templates/admin/association/membership/generalmeeting_membersheepfee.html.twig +++ b/templates/admin/association/membership/generalmeeting_membersheepfee.html.twig @@ -1,20 +1,22 @@ -{% extends 'admin/association/membership/_base.html.twig' %} +{% extends 'layouts/member.html.twig' %} -{% block submenu %} - {% include 'admin/association/membership/_member_menu.html.twig' with { - current: "generalmeeting" - } only %} -{% endblock %} +{% block title %}Ma participation à l'Assemblée Générale - AFUP{% endblock %} + +{% block page_body %} + +
-{% block page_title %}Ma participation à l'Assemblée Générale du {{ latest_date|date('d/m/Y') }}{% endblock %} +

Ma participation à l'Assemblée Générale du {{ latest_date|date('d/m/Y') }}

-{% block page_content %} + +

La date d'échéance de votre dernière cotisation précède la date de la prochaine assemblée générale.

+

Vous ne pourrez donc pas voter lors de cette assemblée générale.

+

+ Vous pouvez dès à présent régler votre cotisation via + Ma cotisation. +

+
-

- La date d'échéance de votre dernière cotisation précède la date de la prochaine assemblée générale.
-
- Vous ne pourrez donc pas voter lors de cette assemblée générale.
-
Vous pouvez dès à présent régler votre cotisation via "Ma cotisation" -

+
{% endblock %} diff --git a/templates/admin/association/membership/member_contact_details.html.twig b/templates/admin/association/membership/member_contact_details.html.twig index 31c4c39de..be0a702be 100644 --- a/templates/admin/association/membership/member_contact_details.html.twig +++ b/templates/admin/association/membership/member_contact_details.html.twig @@ -1,52 +1,54 @@ -{% extends 'admin/association/membership/_base.html.twig' %} +{% extends 'layouts/member.html.twig' %} +{% form_theme form 'form_themes/tailwind.html.twig' %} -{% block submenu %} - {% include 'admin/association/membership/_member_menu.html.twig' with { - current: "contact" - } only %} -{% endblock %} +{% block title %}Mes coordonnées - AFUP{% endblock %} + +{% block page_body %} -{% block page_title %}Mes coordonnées{% endblock %} +
-{% block page_content %} +

Mes coordonnées

-
{{ form_start(form) }} -

- * Indique un champ obligatoire -

-
- Informations -
- {{ form_errors(form) }} + + +

* Indique un champ obligatoire

+ + {{ form_errors(form) }} + + {{ form_row(form.email) }} {{ form_row(form.address) }} - {{ form_row(form.zipcode) }} - {{ form_row(form.city) }} +
+ {{ form_row(form.zipcode) }} + {{ form_row(form.city) }} +
{{ form_row(form.country) }} - {{ form_row(form.phone) }} - {{ form_row(form.mobilephone) }} +
+ {{ form_row(form.phone) }} + {{ form_row(form.mobilephone) }} +
{{ form_row(form.nearest_office) }} -
-
+ -
- Identifiants de connexion -
+ {{ form_row(form.username) }} - -

+

Ne renseignez le mot de passe et sa confirmation que si vous souhaitez le changer

- {{ form_row(form.plainPassword.first) }} - {{ form_row(form.plainPassword.second) }} +
+ {{ form_row(form.plainPassword.first) }} + {{ form_row(form.plainPassword.second) }} +
+
+ +
+ {{ form_widget(form.save) }}
-
- -
- {{ form_widget(form.save, {"attr": {"class": "button button--call-to-action"}}) }} -
+ {{ form_end(form) }} +
+ {% endblock %} diff --git a/templates/admin/association/membership/members_company.html.twig b/templates/admin/association/membership/members_company.html.twig index 892a19521..736000034 100644 --- a/templates/admin/association/membership/members_company.html.twig +++ b/templates/admin/association/membership/members_company.html.twig @@ -1,138 +1,136 @@ -{% extends 'admin/association/membership/_base.html.twig' %} +{% extends 'layouts/member_company.html.twig' %} +{% form_theme formInvitation 'form_themes/tailwind.html.twig' %} -{% block submenu %} - {% include 'admin/association/membership/_company_menu.html.twig' with { - current: "members" - } only %} -{% endblock %} +{% block title %}Les membres rattachés à mon entreprise - AFUP{% endblock %} + +{% block page_body %} + +
+ +

Les membres rattachés à mon entreprise

-{% block page_title %}Les membres rattachés à mon entreprise{% endblock %} +
+ Les membres associés à mon compte -{% block page_content %} -
-
-
- Les membres associés à mon compte -
- - - - - - - - + +
PrénomNomGestionEmail
+ + + + + + + - + + {% for user in users %} - - - - - - + + + + + {% else %} - + {% endfor %} -
PrénomNomGestionEmail
{{ user.firstName }}{{ user.lastName }}{{ user.hasRole('ROLE_COMPANY_MANAGER')?'Oui':'Non' }}{{ user.email }} - {% if user.id == app.user.id %} - - - {% else %} - {% if user.hasRole('ROLE_COMPANY_MANAGER') %} - +
{{ user.firstName }}{{ user.lastName }}{{ user.hasRole('ROLE_COMPANY_MANAGER') ? 'Oui' : 'Non' }}{{ user.email }} +
+ {% if user.id == app.user.id %} + Enlever les droits de gestion + Supprimer ce compte {% else %} - + {% if user.hasRole('ROLE_COMPANY_MANAGER') %} + Enlever les droits de gestion + {% else %} + Donner les droits de gestion + {% endif %} + Supprimer ce compte {% endif %} - - {% endif %} +
Aucun membre actuellement rattachéAucun membre actuellement rattaché
-
-
- -
-
+ + + + +
+
+ Invitations en attente -
-
-
- Invitations en attente -
- - - - - - - + +
EmailDroits de gestion du compteDate d'envoi
+ + + + + + - + + {% for invitation in invitations %} - - - - - + + + + {% else %} - + {% endfor %} -
EmailDroits de gestion du compteDate d'envoi
{{ invitation.email }}{{ invitation.manager?'Oui':'Non' }}{{ invitation.submittedOn|date('d/m/Y H:i:s') }} - - +
{{ invitation.email }}{{ invitation.manager ? 'Oui' : 'Non' }}{{ invitation.submittedOn|date('d/m/Y H:i:s') }} +
+ Envoyer à nouveau + Annuler +
Aucune invitation en attenteAucune invitation en attente
-
-
- -
-
+ + + + +
+
+ Nouvelle invitation -
-

- Votre cotisation actuelle vous permet d'avoir {{ company.maxMembers }} membres rattachés. -

- {{ form_start(formInvitation) }} -
- Nouvelle invitation -
+

Votre cotisation actuelle vous permet d'avoir {{ company.maxMembers }} membres rattachés.

+ + {{ form_start(formInvitation) }} + {{ form_row(formInvitation.email) }} {{ form_row(formInvitation.manager) }} {{ form_widget(formInvitation) }} -
- {% if canAddUser %} - - {% else %} - - {% endif %} + +
+ Envoyer l'invitation
+ {% if canAddUser == false %} -

+

Vous avez actuellement {{ users.count }} membre(s) rattaché(s) et {{ invitations.count }} invitation(s) en attente. Vous ne pouvez envoyer de nouvelle invitation, votre nombre maximum de membre permis par votre cotisation étant atteint. Si vous souhaitez rattacher d'avantage de membres, merci de nous contacter à l'adresse tresorier@afup.org afin d'augmenter le nombre de membres lié à votre cotisation.

{% endif %} -
-
+ + {{ form_end(formInvitation) }} +
- {{ form_end(formInvitation) }}
{% endblock %} diff --git a/templates/admin/association/membership/membershipfee.html.twig b/templates/admin/association/membership/membershipfee.html.twig index 90acfabf1..521a239f6 100644 --- a/templates/admin/association/membership/membershipfee.html.twig +++ b/templates/admin/association/membership/membershipfee.html.twig @@ -1,74 +1,79 @@ -{% extends 'admin/association/membership/_base.html.twig' %} +{% extends 'layouts/member.html.twig' %} -{% block submenu %} - {% include 'admin/association/membership/_member_menu.html.twig' with { - current: "membershipfee" - } only %} -{% endblock %} +{% block title %}Cotisations - Espace membre{% endblock %} -{% block page_title %}Cotisations{% endblock %} +{% block page_body %} -{% block page_content %} -

Payer ma cotisation

+
- {% if message %} -

{{ message|raw }}

- {% endif %} +

Cotisations

-
-
-
- {{ libelle|raw }}{% if isSubjectedToVat %} TTC{% endif %}
-

{{ paybox|raw }}

-
-
-
+
+ Payer ma cotisation + + {% if message %} +

{{ message|raw }}

+ {% endif %} + +

{{ libelle|raw }}{% if isSubjectedToVat %} TTC{% endif %}

+ {# Le
-

Historique des cotisations

+
+ Historique des cotisations - - - - - - - - {% if cotisations %} - {% for cotisation in cotisations %} - - - - - + + + {% endfor %} + +
DebutFinMontantActions
- {{ cotisation.dateDebut|date('d/m/Y') }} - - {{ cotisation.dateFin|date('d/m/Y') }} - {% if cotisation.dateDebut < time and cotisation.dateFin > time %} - (toujours valide) - {% endif %} - {{ cotisation.montant|number_format(2, ',') }} € - {% if cotisation.telechargerFacture %} - - - Télécharger la facture - - - - Recevoir par mail - +
+ + + + + + + + + + + {% for cotisation in cotisations %} + + + + + + {% else %} -
- Facture non accessible -
- {% endif %} - - - {% endfor %} - {% else %} - - - - {% endif %} -
DebutFinMontantActions
{{ cotisation.dateDebut|date('d/m/Y') }} + {{ cotisation.dateFin|date('d/m/Y') }} + {% if cotisation.dateDebut < time and cotisation.dateFin > time %} + (toujours valide) + {% endif %} + {{ cotisation.montant|number_format(2, ',') }} € + {% if cotisation.telechargerFacture %} +
+ Télécharger la facture + Recevoir par mail +
+ {% else %} + Facture non accessible + {% endif %} +
Aucune cotisation enregistrée
+
Aucune cotisation enregistrée
+
+ + +
+ {% endblock %} diff --git a/templates/admin/groups/lists.html.twig b/templates/admin/groups/lists.html.twig deleted file mode 100644 index 069a550fe..000000000 --- a/templates/admin/groups/lists.html.twig +++ /dev/null @@ -1,51 +0,0 @@ -{% extends 'admin/association/membership/_base.html.twig' %} - -{% block submenu %} - {% include 'admin/association/membership/_member_menu.html.twig' with { - current: "mygroups" - } only %} - -{% endblock %} - -{% block page_title %}Listes de diffusion{% endblock %} - -{% block page_content %} -

- L'AFUP propose de nombreuses mailing lists pour que les membres de la communauté PHP puissent échanger. - Si certaines listes sont réservées aux membres, les listes des antennes sont ouvertes à tous les membres de l'AFUP. -

- -
-
- - {% if error is not null %} -

{{ error }}

- {% endif %} - - {% set label='' %} - {% for list in lists %} - {% if label != list.categoryLabel %} - {% if not loop.first %} -
- {% endif %} - {% set label=list.categoryLabel %} -

{{ label }}

- {% endif %} -

{{ list.name }} ({{ list.email }})

-

{{ list.description }}

- {% if list.membersOnly and app.user.hasRole('ROLE_MEMBER_EXPIRED') %} - - {% elseif list.email == 'membres@afup.org' %} - - {% elseif error is not null %} -

{{ error }}

- {% elseif subscriptions[list.email] is defined and subscriptions[list.email] %} - - {% else %} - - {% endif %} - {% endfor %} - -
-
-{% endblock %} diff --git a/templates/components/MainMenu.html.twig b/templates/components/MainMenu.html.twig index 1fcf20c99..ad1648645 100644 --- a/templates/components/MainMenu.html.twig +++ b/templates/components/MainMenu.html.twig @@ -8,14 +8,19 @@ {% block account %}{% endblock %} - {% if this.entries.sub|length > 0 %} + {# Une page sans feuille CMS peut fournir son propre sous-menu via le bloc `sub`. #} + {% set custom_sub %}{% block sub %}{% endblock %}{% endset %} + + {% if custom_sub|trim is not empty or this.entries.sub|length > 0 %}
- {% for entry in this.entries.sub %} - - {% endfor %} + {% if custom_sub|trim is not empty %} + {{ custom_sub }} + {% else %} + {% for entry in this.entries.sub %} + {{ entry.feuille.nom }} + {% endfor %} + {% endif %}
{% endif %} diff --git a/templates/components/MainMenu/SubItem.html.twig b/templates/components/MainMenu/SubItem.html.twig new file mode 100644 index 000000000..a86c1cca3 --- /dev/null +++ b/templates/components/MainMenu/SubItem.html.twig @@ -0,0 +1,15 @@ +{# @prop variant 'default'|'active' Le type d'entrée #} +{# @block content Label de l'entrée #} +{%- props variant = 'default' -%} +{%- set style = html_cva( + base: "block pb-2 text-gray-800 border-b-3 hover:border-neutre-400 uppercase text-sm", + variants: { + variant: { + default: 'border-transparent', + active: 'border-black', + }, + }, +) -%} +
+ {%- block content %}{% endblock -%} +
diff --git a/templates/layouts/member.html.twig b/templates/layouts/member.html.twig new file mode 100644 index 000000000..371b7ce6b --- /dev/null +++ b/templates/layouts/member.html.twig @@ -0,0 +1,21 @@ +{# + Espace membre. Fournit la barre secondaire et le rendu des messages flash, + que `layouts/site.html.twig` n'assure pas. + Les pages définissent `page_body` et non `content`. +#} +{% extends 'layouts/site.html.twig' %} + +{% block submenu %} + {% include 'site/partials/_submenu.html.twig' with { items: [ + { label: 'Accueil', route: 'member_index' }, + { label: 'Coordonnées', route: 'member_contact' }, + { label: 'Cotisations', route: 'member_membership_fee' }, + { label: 'Veille', route: 'member_techletter' }, + { label: 'Assemblée générale', route: 'member_general_meeting' }, + ] } only %} +{% endblock %} + +{% block content %} + {% include 'site/partials/_flashes.html.twig' %} + {% block page_body %}{% endblock %} +{% endblock %} diff --git a/templates/layouts/member_company.html.twig b/templates/layouts/member_company.html.twig new file mode 100644 index 000000000..65ea716c3 --- /dev/null +++ b/templates/layouts/member_company.html.twig @@ -0,0 +1,19 @@ +{# + Espace entreprise, réservé aux gestionnaires d'une adhésion morale. + Même contrat que `layouts/member.html.twig` : les pages définissent `page_body`. +#} +{% extends 'layouts/site.html.twig' %} + +{% block submenu %} + {% include 'site/partials/_submenu.html.twig' with { items: [ + { label: 'Accueil', route: 'member_index' }, + { label: 'Coordonnées', route: 'member_company' }, + { label: 'Membres', route: 'member_company_members' }, + { label: 'Profil public', route: 'member_company_public_profile' }, + ] } only %} +{% endblock %} + +{% block content %} + {% include 'site/partials/_flashes.html.twig' %} + {% block page_body %}{% endblock %} +{% endblock %} diff --git a/templates/layouts/site.html.twig b/templates/layouts/site.html.twig index 6c34192f3..8a5464f84 100644 --- a/templates/layouts/site.html.twig +++ b/templates/layouts/site.html.twig @@ -14,6 +14,9 @@ {% endif %} {% endset %} + {# Sous-menu fourni par la page, pour celles qui n'ont pas de feuille CMS associée. #} + {% set submenu_content %}{% block submenu %}{% endblock %}{% endset %} +
@@ -44,6 +47,7 @@ {{ account_buttons }} + {{ submenu_content }}
diff --git a/templates/site/member/company_public_profile.html.twig b/templates/site/member/company_public_profile.html.twig index 5874988a7..77b19477d 100644 --- a/templates/site/member/company_public_profile.html.twig +++ b/templates/site/member/company_public_profile.html.twig @@ -1,52 +1,53 @@ -{% extends 'admin/association/membership/_base.html.twig' %} +{% extends 'layouts/member_company.html.twig' %} +{% form_theme form 'form_themes/tailwind.html.twig' %} -{% block submenu %} - {% include 'admin/association/membership/_company_menu.html.twig' with { - current: "public_profile" - } only %} -{% endblock %} +{% block title %}Profil public - AFUP{% endblock %} + +{% block page_body %} -{% block page_title %}Profil public{% endblock %} +
-{% block page_content %} +

Profil public

-
{{ form_start(form) }} -
- Profil public : {{ company_member.companyName }} -
+ + + {{ form_errors(form) }} + + {{ form_row(form.enabled) }} - {# a modifier lors de l'ajout de la page publique #} + {% if company_member.publicProfileEnabled %} - +

+ Voir mon profil public +

{% endif %} + {{ form_row(form.description) }} {{ form_row(form.logo) }} + {% if company_member.logoUrl %} -
- - -
+ {% endif %} + {{ form_row(form.website_url) }} {{ form_row(form.careers_page_url) }} {{ form_row(form.contact_page_url) }} {{ form_row(form.twitter_handle) }} {{ form_row(form.related_afup_offices) }} {{ form_row(form.membership_reason) }} -
-
+ -
- {{ form_widget(form.submit, {attr: {class: "button button--call-to-action"}}) }} -
+
+

* Indique un champ obligatoire

+ {{ form_widget(form.submit) }} +
+ {{ form_end(form) }} -
- * Indique un champ obligatoire +
{% endblock %} diff --git a/templates/site/member/index.html.twig b/templates/site/member/index.html.twig index f8456e875..49ac96d8b 100644 --- a/templates/site/member/index.html.twig +++ b/templates/site/member/index.html.twig @@ -1,261 +1,141 @@ -{% extends 'admin/association/membership/_base.html.twig' %} +{% extends 'layouts/member.html.twig' %} -{% block submenu %} - {% include 'site/secondary_menu.html.twig' with { - menu: [ - { - "nom" : "Accueil", - "lien": path('member_index'), - 'is_active': true, - }, - ] - } only %} -{% endblock %} - -{% block page_title %}Espace membre{% endblock %} - -{% block page_content %} - - {% if display_link_to_general_meeting_vote %} - - Voter lors de l'assemblée générale - - {% endif %} - -

Mon compte

- - +{% block title %}Espace membre - AFUP{% endblock %} -
- -
-
-
- {% set href = path('member_contact') %} - - - - Mes coordonnées : {{ user.label }} - -
- Modifiez votre adresse de facturation et votre adresse email, changez votre mot de passe -
-
- -
- -
-
- {% set href = path('member_membership_fee') %} - - - - Cotisations - {% if membershipfee_end_date %} - : - - {% if has_up_to_date_membership_fee %} - expire le - {% else %} - a expirée le - {% endif %} - {{ membershipfee_end_date|date('d/m/Y') }} - - {% endif %} - -
- Renouvelez votre adhésion, retrouvez l’historique de vos cotisations, téléchargez vos factures. -
-
-
-
+{% block page_body %} +
-
-
-
- {% set href = path('member_techletter') %} - - - - Veille de l'AFUP : {% if has_member_subscribed_to_techletter %}inscrit(e){% else %}non inscrit{% endif %} - -
- Profitez de cet avantage exclusif réservé à nos membres : recevez 2 fois par mois notre veille dédiée à PHP, effectuée par notre pôle d’expert·e·s. -
-
-
-
+

Espace membre

-
+ {% if display_link_to_general_meeting_vote %} + Voter lors de l'assemblée générale + {% endif %} -
-
- {% set href = path('member_general_meeting') %} - - - - Assemblée générale - -
- -
-
- {% set href = path('member_contact') %} - - - - Antenne la plus proche : - {% if office_label %} - {{ office_label }} +

+

Renouvelez votre adhésion, retrouvez l’historique de vos cotisations, téléchargez vos factures.

+ {% if has_up_to_date_membership_fee %}Consulter{% else %}Se mettre à jour{% endif %} + + + +

Veille de l'AFUP : {% if has_member_subscribed_to_techletter %}inscrit(e){% else %}non inscrit{% endif %}

+

Profitez de cet avantage exclusif réservé à nos membres : recevez 2 fois par mois notre veille dédiée à PHP, effectuée par notre pôle d’expert·e·s.

+ {% if has_member_subscribed_to_techletter %}Consulter{% else %}Gérer mon abonnement{% endif %} +
+ + +

Assemblée générale

+

L’AG annuelle de l’association se tient chaque mois de février. Le moment venu, indiquez votre présence ou donnez votre pouvoir à un·e autre membre.

+ {% if has_general_meeting_planned %} + Indiquer ma présence {% else %} - Aucune + Comptes-rendus {% endif %} - -
- Indiquez l’antenne AFUP la plus proche de chez vous : une information qui sera notamment utile pour votre badge lors du Forum PHP ! -
-
-
-
- -
- {% if user.canRequestSlackInvite or user.slackInviteRequested %} -
-
- Slack membres AFUP - -
- Rejoignez notre Slack réservé à nos membres, pour discuter PHP, poster vos recherches d’emploi et profiter d’un espace privilégié pour échanger avec la communauté. -
-
-
- {% endif %} -
- - - - {% if is_granted('ROLE_COMPANY_MANAGER') %} -

- Mon compte société -

+ + {% endif %} -
-
-
- {% set href = path('member_company') %} - - - - Coordonnées - -
+ -
-
- {% set href = path('member_company_members') %} - - - - Personnes rattachées - + {% if is_granted('ROLE_COMPANY_MANAGER') %} +
+ Mon compte société + +
+ +

Coordonnées

+ Modifier +
+ + +

Personnes rattachées

+ Modifier +
+ + +

Profil public

+ Modifier +
-
- -
-
- {% set href = path('member_company_public_profile') %} - - - - Profil public - + + {% endif %} +
+ Restons en contact + +

Plusieurs façons de rester au fait des activités de l’association et ainsi, de profiter au mieux de votre adhésion :

+
    +
  • La newsletter des activités de l’AFUP sort le premier mardi de chaque mois. Assurez-vous qu’elle ne parte pas dans vos spams ;
  • +
  • Visitez régulièrement notre site ou vous abonner à nos flux RSS ;
  • +
  • Nous suivre sur les réseaux sociaux Twitter et/ou Mastodon ;
  • +
  • Consulter la liste des antennes afin de suivre leur activité.
  • +
+
+ + {% if badges %} +
+ Badges +
+ {% for badge in badges %} + {% if badge.id is defined %} + Badge + {% else %} + Badge {{ badge.code }} + {% endif %} + {% endfor %}
-
-
+ {% endif %}
- -

Restons en contact

- -
- Plusieurs façons de rester au fait des activités de l’association et ainsi, de profiter au mieux de votre adhésion : -
    -
  • La newsletter des activités de l’AFUP sort le premier mardi de chaque mois. Assurez-vous qu’elle ne parte pas dans vos spams ;
  • -
  • Visitez régulièrement notre site ou vous abonner à nos flux RSS ;
  • -
  • Nous suivre sur les réseaux sociaux Twitter et/ou Mastodon ;
  • -
  • Consulter la liste des antennes afin de suivre leur activité.
  • -
-
- - - {% if badges %} -

Badges

- -
- {% for badge in badges %} -
- {% if badge.id is defined %} - Badge - {% else %} - Badge {{ badge.code }} - {% endif %} -
- {% endfor %} -
- {% endif %} - {% endblock %} diff --git a/templates/site/member/techletter.html.twig b/templates/site/member/techletter.html.twig index 6595de6ef..467d02ea3 100644 --- a/templates/site/member/techletter.html.twig +++ b/templates/site/member/techletter.html.twig @@ -1,76 +1,61 @@ -{% extends 'admin/association/membership/_base.html.twig' %} +{% extends 'layouts/member.html.twig' %} -{% block stylesheets %} - {{ parent() }} - - -{% endblock %} - - -{% block submenu %} - {% include 'admin/association/membership/_member_menu.html.twig' with { - current: "techletter" - } only %} -{% endblock %} - -{% block page_title %}Veille de l'AFUP{% endblock %} +{% block title %}Veille de l'AFUP - Espace membre{% endblock %} +{% block page_body %} -{% block page_content %} +
-

Pour plus d'informations sur la veille de l'AFUP, consultez cette page.

- - {% if not feeUpToDate %} -
-

- Vous n'êtes pas à jour de votre cotisation.
-
- Vous ne pourrez donc pas recevoir, vous inscrire ni consulter l'historique des veilles de l'AFUP.
-
Vous pouvez dès à présent régler votre cotisation via "Cotisations". +

+

Veille de l'AFUP

+

+ Pour plus d'informations sur la veille de l'AFUP, consultez + cette page.

- {% else %} -
- {% if subscribed %} -

Vous recevez actuellement la veille de l'AFUP deux fois par mois sur l'adresse {{ app.user.email }}.

-
- Me désabonner - {% else %} -

Vous ne recevez actuellement pas la veille de l'AFUP.

-
- -
- - -
- - {% endif %} -
- -

Historique des veilles

- - - - - - - - - {% for envoi in techletter_history %} - - - - - {% endfor %} - -
DateActions
- Veille du {{ envoi.dateEnvoi|date('d/m/Y') }} - - - Consulter - -
- {% endif %} + {% if not feeUpToDate %} + +

Vous n'êtes pas à jour de votre cotisation.

+

Vous ne pourrez donc pas recevoir, vous inscrire ni consulter l'historique des veilles de l'AFUP.

+

+ Vous pouvez dès à présent régler votre cotisation via + Cotisations. +

+
+ {% else %} + + {% if subscribed %} +

Vous recevez actuellement la veille de l'AFUP deux fois par mois sur l'adresse {{ app.user.email }}.

+ Me désabonner + {% else %} +

Vous ne recevez actuellement pas la veille de l'AFUP.

+
+ + M'abonner +
+ {% endif %} +
+ +
+ Historique des veilles + +
+ {% for envoi in techletter_history %} +
+ Veille du {{ envoi.dateEnvoi|date('d/m/Y') }} + {# urlArchive peut être nul : le composant Button refuse un href null. #} + {% if envoi.urlArchive %} + Consulter + {% endif %} +
+ {% endfor %} +
+
+ {% endif %} + +
{% endblock %} diff --git a/templates/site/partials/_flashes.html.twig b/templates/site/partials/_flashes.html.twig new file mode 100644 index 000000000..76d42ac4c --- /dev/null +++ b/templates/site/partials/_flashes.html.twig @@ -0,0 +1,17 @@ +{# + Rendu des messages flash, que `layouts/site.html.twig` n'assure pas alors que + les gabarits legacy le faisaient (`templates/base.html.twig`). + Le sac `notice` sort en vert faute de variante `info` sur `Alert`. +#} +{% set flashes = { notice: 'success', success: 'success', error: 'error' } %} +{% set messages %} + {% for bag, type in flashes %} + {% for message in app.flashes(bag) %} + {{ message|nl2br }} + {% endfor %} + {% endfor %} +{% endset %} + +{% if messages|trim is not empty %} +
{{ messages }}
+{% endif %} diff --git a/templates/site/partials/_submenu.html.twig b/templates/site/partials/_submenu.html.twig new file mode 100644 index 000000000..33a852221 --- /dev/null +++ b/templates/site/partials/_submenu.html.twig @@ -0,0 +1,15 @@ +{# + Rendu générique d'un sous-menu de la barre secondaire, à placer dans le bloc `submenu`. + Remplace `site/secondary_menu.html.twig` pour les pages passées à la nouvelle charte. + + items : liste de { label, route, params (optionnel), matches (optionnel) } + `matches` liste les routes qui allument l'onglet ; par défaut, sa propre route. + À renseigner quand plusieurs pages partagent le même onglet (une liste et sa fiche). +#} +{% set current_route = app.request.attributes.get('_route') %} + +{% for item in items %} + {{ item.label }} +{% endfor %}