]> git.agnieray.net Git - galette.git/blob - galette/templates/default/pages/member_show.html.twig
a8616c07d2a97548ab0f7db1eb7d71a6c71f4223
[galette.git] / galette / templates / default / pages / member_show.html.twig
1 {% extends "page.html.twig" %}
2
3 {% import "macros.twig" as macros %}
4
5 {% block content %}
6 <div class="ui stackable grid">
7 <div class="row">
8 <div class="sixteen wide tablet six wide computer five wide widescreen column order-2">
9 <div class="position-sticky">
10 <div class="ui basic clearing horizontally fitted segment">
11
12 <div class="ui left floated basic fitted segment">
13 {% include "elements/navigate.html.twig" with {"mpath": "member"} %}
14 </div>
15
16 <div class="ui right floated basic fitted segment">
17 <div class="ui primary small buttons">
18 {% if member.canEdit(login) %}
19 <a
20 href="{{ url_for("editMember", {"id": member.id}) }}"
21 class="ui labeled icon button"
22 >
23 <i class="user edit icon"></i>
24 {{ _T("Modification") }}
25 </a>
26 {% endif %}
27 <div class="ui combo top right pointing simple dropdown icon button">
28 <i class="dropdown icon"></i>
29 <div class="menu">
30 {% if preferences.pref_mail_method != constant('Galette\\Core\\GaletteMail::METHOD_DISABLED') and (login.isAdmin() or login.isStaff()) %}
31 <a
32 href="{{ url_for("retrieve-pass", {"id_adh": member.id}) }}"
33 id="btn_lostpassword"
34 title="{{ _T("Send member a link to generate a new password, as if had used the 'lost password' functionality.") }}"
35 class="ui item"
36 >
37 <i class="unlock icon"></i>
38 {{ _T("New password") }}
39 </a>
40 {% endif %}
41 {% if (preferences.pref_card_self == 1) or (login.isAdmin() or login.isStaff()) %}
42 <a
43 href="{% if member.isUp2Date() %}{{ url_for("pdf-members-cards", {'id_adh': member.id}) }}{% else %}#{% endif %}"
44 class="ui item{% if not member.isUp2Date() %} disabled{% endif %} tooltip"
45 >
46 <i class="id badge icon"></i>
47 {{ _T("Generate Member Card") }}
48 </a>
49 <a
50 href="{{ url_for("adhesionForm", {"id_adh": member.id}) }}"
51 class="ui item"
52 >
53 <i class="id card icon"></i>
54 {{ _T("Adhesion form") }}
55 </a>
56 {% endif %}
57 {% if login.isAdmin() or login.isStaff() or login.id == member.id or (member.hasParent() and member.parent.id == login.id) %}
58 <a
59 href="{{ url_for("contributions", {"type": "contributions", "option": "member", "value": member.id}) }}"
60 class="ui item"
61 >
62 <i class="receipt icon"></i>
63 {{ _T("View contributions") }}
64 </a>
65 {% endif %}
66 {% if login.isAdmin() or login.isStaff() %}
67 <a
68 href="{{ url_for("addContribution", {"type": constant('Galette\\Entity\\Contribution::TYPE_FEE')}) }}?id_adh={{ member.id }}"
69 class="ui item"
70 >
71 <i class="user check icon"></i>
72 {{ _T("Add a membership fee") }}
73 </a>
74 <a
75 href="{{ url_for("addContribution", {"type": constant('Galette\\Entity\\Contribution::TYPE_DONATION')}) }}?id_adh={{ member.id }}"
76 class="ui item"
77 >
78 <i class="gift icon"></i>
79 {{ _T("Add a donation") }}
80 </a>
81 {% if login.isAdmin() or login.isStaff() %}
82 <a
83 href="{{ url_for("duplicateMember", {"id_adh": member.id}) }}"
84 title="{{ _T("Create a new member with %name information.")|replace({"%name": member.sfullname}) }}"
85 class="ui item"
86 >
87 <i class="clone icon" aria-hidden="true"></i>
88 {{ _T("Duplicate") }}
89 </a>
90 {% endif %}
91
92 {% set actions = callstatic('\\Galette\\Core\\Galette', 'getDetailedActions', member) %}
93 {% for action in actions %}
94 {{ macros.drawDetailedAction(action.label, action.title, action.route, action.icon) }}
95 {% endfor %}
96 {% endif %}
97 </div>
98 </div>
99 </div>
100 </div>
101 </div>
102
103 {% include "elements/member_card.html.twig" %}
104
105 {% if member.hasParent() or member.hasChildren() %}
106 <div class="ui basic fitted segment">
107 <div class="ui styled fluid accordion row">
108 <div class="active title">
109 <i class="jsonly hidden icon dropdown"></i>
110 {{ _T("Family") }}
111 </div>
112 <div class="active content field">
113 <table class="ui very basic striped collapsing stackable padded table">
114 {% if member.hasParent() %}
115 <tr>
116 <th>{{ _T("Attached to:") }}</th>
117 <td><a href="{{ url_for("member", {"id": member.parent.id}) }}">{{ member.parent.sfullname }}</a></td>
118 </tr>
119 {% endif %}
120 {% if member.hasChildren() %}
121 <tr>
122 <th>{{ _T("Parent of:") }}</th>
123 <td>
124 {% for child in member.children %}
125 <a href="{{ url_for("member", {"id": child.id}) }}">{{ child.sfullname }}</a>{% if not loop.last %}, {% endif %}
126 {% endfor %}
127 </td>
128 </tr>
129 {% endif %}
130 </table>
131 </div>
132 </div>
133 </div>
134 {% endif %}
135 </div>
136 </div>
137
138 <div class="sixteen wide tablet ten wide computer eleven wide widescreen column">
139
140 {% for display_element in display_elements %}
141 {% set elements = display_element.elements %}
142 <div class="fieldset-{{ display_element.id }} ui basic fitted segment">
143 <div class="ui styled fluid accordion row">
144 <div class="active title">
145 <i class="jsonly displaynone icon dropdown"></i>
146 {{ _T(display_element.label) }}
147 </div>
148 <div class="active content field">
149 <table class="ui very basic striped stackable padded table">
150 {% for element in elements %}
151 {% if element.field_id == 'parent_id' %}
152 {continue}
153 {% endif %}
154
155 {% if element.field_id == 'nom_adh' %}
156 {% set value = member.sfullname %}
157 {% elseif element.field_id == 'pref_lang' %}
158 {% set value = pref_lang %}
159 {% elseif element.field_id == 'adresse_adh' %}
160 {% set value = member.saddress|escape|nl2br %}
161 {% elseif element.field_id == 'bool_display_info' %}
162 {% set value = member.sappears_in_list %}
163 {% elseif element.field_id == 'activite_adh' %}
164 {% set value = member.sactive %}
165 {% elseif element.field_id == 'id_statut' %}
166 {% set value = member.sstatus %}
167 {% elseif element.field_id == 'bool_admin_adh' %}
168 {% set value = member.sadmin %}
169 {% elseif element.field_id == 'bool_exempt_adh' %}
170 {% set value = member.sdue_free %}
171 {% elseif element.field_id == 'info_adh' %}
172 {% set value = member.others_infos_admin|escape|nl2br %}
173 {% elseif element.field_id == 'info_public_adh' %}
174 {% set value = member.others_infos|escape|nl2br %}
175 {% else %}
176 {% set propname = element.propname %}
177 {% set propvalue = attribute(member, propname) %}
178 {% set value = propvalue|escape %}
179 {% endif %}
180 {% if loop.first and loop.parent.loop.last and (member.getGroups()|length != 0 or member.getManagedGroups()|length != 0) %}
181 <tr>
182 <th class="three wide column">{{ _T("Groups:") }}</th>
183 <td>
184 <div class="ui large labels">
185 {% for kgroup, group in groups %}
186 {% if member.isGroupMember(group) or member.isGroupManager(group) %}
187 <a href="{% if login.isGroupManager(kgroup) %}{{ url_for("groups", {"id": kgroup}) }}{% else %}#{% endif %}" class="ui label{% if not login.isGroupManager(kgroup) %} disabled notmanaged{% endif %}">
188 {% if member.isGroupMember(group) %}
189 <i class="ui tag icon tooltip" title="{{ _T("Member of group") }}"></i>
190 {% endif %}
191 {% if member.isGroupManager(group) %}
192 <i class="ui shield icon tooltip" title="{{ _T("Group manager") }}"></i>
193 {% endif %}
194 {{ group }}
195 </a>
196 {% endif %}
197 {% endfor %}
198 </div>
199 </td>
200 </tr>
201 {% endif %}
202 <tr>
203 <th class="three wide column">{{ element.label }}</th>
204 <td>
205 {% if element.field_id == 'nom_adh' %}
206 {% if member.isCompany() %}
207 <i class="ui industry icon"></i>
208 {% elseif member.isMan() %}
209 <i class="ui mars icon"></i>
210 {% elseif member.isWoman() %}
211 <i class="ui venus icon"></i>
212 {% endif %}
213 {% endif %}
214 {% if element.field_id == 'email_adh' %}
215 <a href="mailto:{{ value }}">{{ value }}</a>
216 {% elseif element.field_id == 'tel_adh' or element.field_id == 'gsm_adh' %}
217 <a href="tel:{{ value }}">{{ value }}</a>
218 {% elseif element.field_id == 'ddn_adh' %}
219 {{ value }} {{ member.getAge() }}
220 {% else %}
221 {{ value|raw }}
222 {% endif %}
223 </td>
224 </tr>
225 {% endfor %}
226 </table>
227 </div>
228 </div>
229 </div>
230 {# Social networks attached to the contact information fieldset #}
231 {% if display_element.id == '3' %}
232 {% include "elements/display_socials.html.twig" with {socials: member.socials} %}
233 {% endif %}
234 {% endfor %}
235
236 {# Dynamic entries #}
237 {% include "elements/display_dynamic_fields.html.twig" with {object: member} %}
238 </div>
239 </div>
240 </div>
241
242 {% endblock %}
243
244 {% block javascripts %}
245 {% if login.isAdmin() or login.isStaff() or login.login == member.login %}
246 <script type="text/javascript">
247 $(function() {
248 {% include "elements/js/photo_dnd.js.twig" %}
249
250 $('.notmanaged').click(function(){
251 {% include "elements/js/modal.js.twig" with {
252 modal_title_twig: _T("Not managed group")|e("js"),
253 modal_content_twig: _T("You are not part of managers for the requested group.")|e("js"),
254 modal_class: "tiny",
255 modal_deny_only: true,
256 modal_cancel_text: _T("Close")|e("js"),
257 modal_classname: "redalert",
258 } %}
259 return false;
260 });
261 });
262 </script>
263 {% endif %}
264 {% endblock %}