Revision f3342849 snf-astakos-app/astakos/im/templates/im/projects/projectapplication_detail.html
b/snf-astakos-app/astakos/im/templates/im/projects/projectapplication_detail.html | ||
---|---|---|
3 | 3 |
{% load filters %} |
4 | 4 |
|
5 | 5 |
{% block page.body %} |
6 |
{% with object.owners as owners %} |
|
7 |
|
|
6 |
|
|
8 | 7 |
<div class="projects"> |
9 | 8 |
|
10 | 9 |
|
11 | 10 |
<h2> |
12 |
{% if object.is_member %} |
|
13 |
<em> |
|
14 |
{% if object.is_owner %} |
|
15 |
{% if object.is_enabled %} |
|
16 |
[ ADMINISTRATOR - ACTIVE ] |
|
17 |
{% else %} |
|
18 |
[ ADMINISTRATOR - PENDING ] |
|
19 |
{% endif %} |
|
20 |
{% else %} |
|
21 |
{% if object.is_active_member %} |
|
22 |
[ ENROLLED - ACTIVE ] |
|
23 |
{% else %} |
|
24 |
[ ENROLLED - PENDING ] |
|
25 |
{% endif %} |
|
26 |
{% endif %} |
|
27 |
</em> |
|
28 |
{% endif %} |
|
29 |
<span>{{ object.name|upper }}</span> |
|
11 |
<span>{{ object.definition.name|upper }}</span> |
|
30 | 12 |
</h2> |
31 | 13 |
|
32 | 14 |
<div class="details"> |
33 | 15 |
<h3> |
34 | 16 |
GENERAL INFO |
35 |
{% if object.is_owner %}
|
|
17 |
{% if object.owner == user %}
|
|
36 | 18 |
<a href="#" class="edit">EDIT</a> |
37 | 19 |
{% endif %} |
38 | 20 |
</h3> |
39 | 21 |
|
40 | 22 |
<div class="data"> |
41 |
<p class="restricted">{{ object.desc|safe }}</p>
|
|
23 |
<p class="restricted">{{ object.definition.description|safe }}</p>
|
|
42 | 24 |
<dl class="alt-style"> |
43 | 25 |
<dt>Homepage url</dt> |
44 | 26 |
<dd> |
45 |
{% if object.homepage%} |
|
46 |
<a href="{{ object.homepage }}">{{ object.homepage }}</a> |
|
27 |
{% if object.definition.homepage%}
|
|
28 |
<a href="{{ object.homepage }}">{{ object.definition.homepage }}</a>
|
|
47 | 29 |
{% else %} |
48 | 30 |
Not set yet |
49 | 31 |
{% endif %} |
50 | 32 |
</dd> |
51 | 33 |
<dt>Moderation</dt> |
52 | 34 |
<dd> |
53 |
{{ object.moderation_enabled|yesno:"Yes, No" }}
|
|
35 |
{{ object.definition.member_accept_policy.description }}
|
|
54 | 36 |
</dd> |
55 | 37 |
</dl> |
56 | 38 |
</div> |
57 | 39 |
<div class="editable" style="display:none;"> |
58 |
<form action="{% url astakos.im.views.group_detail object.id %}" method="post"
|
|
40 |
<form action="{% url astakos.im.views.project_application_detail object.serial %}" method="post"
|
|
59 | 41 |
class="withlabels">{% csrf_token %} |
60 | 42 |
{% with update_form as form %} |
61 | 43 |
{% include "im/form_render.html" %} |
... | ... | |
70 | 52 |
<h3>DETAILS</h3> |
71 | 53 |
<dl class="alt-style"> |
72 | 54 |
<dt>Name</dt> |
73 |
<dd>{{ object.name }} </dd> |
|
74 |
<!--<dt>Type</dt> |
|
75 |
<dd>{{object.kindname|capfirst}} </dd>--> |
|
55 |
<dd>{{ object.definition.name }} </dd> |
|
76 | 56 |
<dt>Issue date:</dt> |
77 | 57 |
<dd>{{object.issue_date|date:"d/m/Y"}} </dd> |
78 |
<dt>Expiration Date</dt>
|
|
79 |
<dd>{{object.expiration_date|date:"d/m/Y"}} </dd>
|
|
80 |
<!--
|
|
81 |
<dt>Moderation</dt>
|
|
82 |
<dd>{% if object.moderation_enabled%}Yes{% else %}No{% endif %}</dd>
|
|
83 |
-->
|
|
58 |
<dt>Start Date</dt>
|
|
59 |
<dd>{{object.definition.start_date|date:"d/m/Y"}} </dd>
|
|
60 |
<dt>End Date</dt>
|
|
61 |
<dd>{{object.definition.end_date|date:"d/m/Y"}} </dd>
|
|
62 |
<dt>Valid</dt>
|
|
63 |
<dd>{% if object.is_valid %}Yes{% else %}No{% endif %}</dd>
|
|
84 | 64 |
<dt>Activated</dt> |
85 |
<dd>{% if object.is_enabled %}Yes{% else %}No{% endif %}</dd> |
|
65 |
<dd>{% if object.is_active %}Yes{% else %}No{% endif %}</dd> |
|
66 |
<dt>Terminated</dt> |
|
67 |
<dd>{% if object.is_terminated %}Yes{% else %}No{% endif %}</dd> |
|
68 |
<dt>Suspended</dt> |
|
69 |
<dd>{% if object.is_suspended %}Yes{% else %}No{% endif %}</dd> |
|
70 |
<dt>Alive</dt> |
|
71 |
<dd>{% if object.is_alive %}Yes{% else %}No{% endif %}</dd> |
|
72 |
<dt>Inconsistent</dt> |
|
73 |
<dd>{% if object.is_inconsistent %}Yes{% else %}No{% endif %}</dd> |
|
86 | 74 |
<dt>Owner</dt> |
87 |
{{ o.owners }} |
|
88 |
<dd>{% for o in owners %} |
|
89 |
{% if object.is_owner %} |
|
75 |
<dd>{% if object.object == user %} |
|
90 | 76 |
Me |
91 | 77 |
{% else%} |
92 |
{{o.realname}} ({{o.email}})
|
|
78 |
{{object.owner.realname}} ({{object.owner.email}})
|
|
93 | 79 |
|
94 |
{% endif %} |
|
95 |
{% endfor %} |
|
80 |
{% endif %} |
|
96 | 81 |
</dd> |
97 | 82 |
<dt>Max participants</dt> |
98 |
<dd>{% if object.max_participants%}{{object.max_participants}}{% else %} {% endif %}</dd>
|
|
83 |
<dd>{% if object.definition.%}{{object.definition.limit_on_members_number}}{% else %} {% endif %}</dd>
|
|
99 | 84 |
</dl> |
100 | 85 |
</div> |
101 | 86 |
<div class="full-dotted"> |
102 |
<h3>RESOURCES</h3>
|
|
103 |
{% if quota %}
|
|
87 |
<h3>RESOURCES</h3> |
|
88 |
{% if object.definition.projectresourcegrant_set.all %}
|
|
104 | 89 |
<dl class="alt-style"> |
105 |
{% for q in quota %} |
|
106 |
|
|
90 |
{% for q in object.definition.projectresourcegrant_set.all %} |
|
107 | 91 |
<dt> |
108 | 92 |
Max {% if q.is_abbreviation %}{{ q.verbose_name|upper }}{% else %}{{ q.verbose_name }}{% endif %}{% if not q.unit %}s {% endif %} per user |
109 | 93 |
</dt> |
110 | 94 |
<dd> |
111 |
{% if q.value %}
|
|
95 |
{% if q.member_limit %}
|
|
112 | 96 |
{% if q.unit %} |
113 |
{{ q.value|sizeof_fmt }}
|
|
97 |
{{ q.member_limit|sizeof_fmt }}
|
|
114 | 98 |
{% else %} |
115 |
{{ q.value|isinf }}
|
|
99 |
{{ q.member_limit|isinf }}
|
|
116 | 100 |
{% endif %} |
117 | 101 |
{% else %} |
118 | 102 |
Unlimited |
... | ... | |
128 | 112 |
<p>No resources</p> |
129 | 113 |
{% endif %} |
130 | 114 |
</div> |
131 |
{% if object.is_owner %} |
|
132 |
<div class="full-dotted"> |
|
133 |
{% with page|concat:sorting as args %} |
|
134 |
{% with object.membership_set.select_related.all|paginate:args as membership %} |
|
135 |
{% if membership %} |
|
136 |
<form method="GET" class="minimal" action="#members-table"> |
|
137 |
<div class="form-row"> |
|
138 |
<select name="sorting" onchange="this.form.submit();" class="dropkicked"> |
|
139 |
<option value="person__email" {% if sorting == 'person__email' %}selected{% endif %}>Sort by User Id</option> |
|
140 |
<option value="person__first_name" {% if sorting == 'person__first_name' %}selected{% endif %}>Sort by Name</option> |
|
141 |
<option value="date_joined" {% if sorting == 'date_joined' %}selected{% endif %}>Sort by Status</option> |
|
142 |
</select> |
|
143 |
</div> |
|
144 |
</form> |
|
145 |
<table class="alt-style" id="members-table"> |
|
146 |
<caption>MEMBERS:</caption> |
|
147 |
<thead> |
|
148 |
<tr> |
|
149 |
<th>User Id</th> |
|
150 |
<th>Name</th> |
|
151 |
<th>Status</th> |
|
152 |
</tr> |
|
153 |
</thead> |
|
154 |
<tbody> |
|
155 |
{% for m in membership.object_list %} |
|
156 |
<tr> |
|
157 |
<td>{{m.person.email}}</td> |
|
158 |
<td>{{m.person.realname}}</td> |
|
159 |
{% if m.person in owners %} |
|
160 |
<td>Owner</td> |
|
161 |
{% else %} |
|
162 |
{% if m.is_approved %} |
|
163 |
<td>Approved |
|
164 |
{% if object.is_owner %} |
|
165 |
<a href="{% url disapprove_member object.id m.person.id %}?{% if page %}page={{ page }}{% endif %}{% if sorting %}&sorting={{sorting}}{% endif %}">Remove</a> |
|
166 |
{% endif %} |
|
167 |
</td> |
|
168 |
{% else %} |
|
169 |
<td>Pending |
|
170 |
{% if object.is_owner %} |
|
171 |
<a href="{% url approve_member object.id m.person.id %}?{% if page %}page={{ page }}{% endif %}{% if sorting %}&sorting={{sorting}}{% endif %}">Accept</a> |
|
172 |
<a href="{% url disapprove_member object.id m.person.id %}?{% if page %}page={{ page }}{% endif %}{% if sorting %}&sorting={{sorting}}{% endif %}">Remove</a> |
|
173 |
{% endif %} |
|
174 |
</td> |
|
175 |
{% endif %} |
|
176 |
{% endif %} |
|
177 |
</tr> |
|
178 |
{% endfor %} |
|
179 |
</tbody> |
|
180 |
</table> |
|
181 |
<div class="pagination"> |
|
182 |
<p class="next-prev"> |
|
183 |
{% if membership.has_previous %} |
|
184 |
<a href="?page={{ membership.previous_page_number }}{% if sorting %}&sorting={{sorting}}{% endif %}">previous</a> |
|
185 |
{% endif %} |
|
186 |
{% if membership.has_next %} |
|
187 |
<a href="?page={{ membership.next_page_number }}{% if sorting %}&sorting={{sorting}}{% endif %}">next</a> |
|
188 |
{% endif %} |
|
189 |
</p> |
|
190 |
<p class="nums"> |
|
191 |
<span class="current"> |
|
192 |
Page {{ membership.number }} of {{ membership.paginator.num_pages }} |
|
193 |
</span> |
|
194 |
</p> |
|
195 |
</div> |
|
196 |
{% else %} |
|
197 |
<p>No members yet!</p> |
|
198 |
{% endif %} |
|
199 |
{% endwith %} |
|
200 |
{% endwith %} |
|
201 |
</div> |
|
202 |
|
|
203 |
|
|
204 |
|
|
205 |
<div class="full-dotted"> |
|
206 |
<form action="{% url astakos.im.views.group_detail object.id %}#members-table" method="post" class="withlabels" >{% csrf_token %} |
|
207 |
<h2>Enroll more members</h2> |
|
208 |
{% with addmembers_form as form %} |
|
209 |
{% include "im/form_render.html" %} |
|
210 |
{% endwith %} |
|
211 |
<div class="form-row submit"> |
|
212 |
<input type="submit" class="submit altcol" value="ADD MEMBERS" /> |
|
213 |
</div> |
|
214 |
</form> |
|
215 |
</div> |
|
216 |
{% endif %} |
|
217 | 115 |
<div class="full-dotted"> |
218 | 116 |
<p> |
219 | 117 |
<a href="{% url group_all %}">back to All Projects ></a></li> |
... | ... | |
227 | 125 |
|
228 | 126 |
</div> |
229 | 127 |
|
230 |
{% endwith %} |
|
231 | 128 |
{% endblock %} |
Also available in: Unified diff