Revision 71a38edf snf-astakos-app/astakos/im/templates/im/projects/project_detail.html
b/snf-astakos-app/astakos/im/templates/im/projects/project_detail.html | ||
---|---|---|
3 | 3 |
{% load filters %} |
4 | 4 |
|
5 | 5 |
{% block page.body %} |
6 |
{% with object.owners as owners %} |
|
7 |
|
|
6 |
{% with object.project.members as members %} |
|
7 |
{% with object.project.approved_members as approved_members %} |
|
8 |
|
|
8 | 9 |
<div class="projects"> |
9 | 10 |
|
10 | 11 |
|
11 | 12 |
<h2> |
12 |
{% if object.is_member %}
|
|
13 |
{% if user in members %}
|
|
13 | 14 |
<em> |
14 |
{% if object.is_owner %}
|
|
15 |
{% if object.is_enabled %}
|
|
15 |
{% if user == object.owner %}
|
|
16 |
{% if object.is_active %}
|
|
16 | 17 |
[ ADMINISTRATOR - ACTIVE ] |
17 | 18 |
{% else %} |
18 | 19 |
[ ADMINISTRATOR - PENDING ] |
19 | 20 |
{% endif %} |
20 | 21 |
{% else %} |
21 |
{% if object.is_active_member %}
|
|
22 |
{% if user in approve_members %}
|
|
22 | 23 |
[ ENROLLED - ACTIVE ] |
23 | 24 |
{% else %} |
24 | 25 |
[ ENROLLED - PENDING ] |
... | ... | |
26 | 27 |
{% endif %} |
27 | 28 |
</em> |
28 | 29 |
{% endif %} |
29 |
<span>{{ object.name|upper }}</span> |
|
30 |
<span>{{ object.definition.name|upper }}</span>
|
|
30 | 31 |
</h2> |
31 | 32 |
|
32 | 33 |
<div class="details"> |
33 | 34 |
<h3> |
34 | 35 |
GENERAL INFO |
35 |
{% if object.is_owner %}
|
|
36 |
{% if user == object.owner %}
|
|
36 | 37 |
<a href="#" class="edit">EDIT</a> |
37 | 38 |
{% endif %} |
38 | 39 |
</h3> |
39 | 40 |
|
40 | 41 |
<div class="data"> |
41 |
<p class="restricted">{{ object.desc|safe }}</p>
|
|
42 |
<p class="restricted">{{ object.definition.description|safe }}</p>
|
|
42 | 43 |
<dl class="alt-style"> |
43 | 44 |
<dt>Homepage url</dt> |
44 | 45 |
<dd> |
45 |
{% if object.homepage%} |
|
46 |
<a href="{{ object.homepage }}">{{ object.homepage }}</a>
|
|
46 |
{% if object.definition.homepage%}
|
|
47 |
<a href="{{ object.definition.homepage }}">{{ object.definition.homepage }}</a>
|
|
47 | 48 |
{% else %} |
48 | 49 |
Not set yet |
49 | 50 |
{% endif %} |
50 | 51 |
</dd> |
51 | 52 |
<dt>Moderation</dt> |
52 | 53 |
<dd> |
53 |
{{ object.moderation_enabled|yesno:"Yes, No" }}
|
|
54 |
{{ object.definition.member_accept_policy.description }}
|
|
54 | 55 |
</dd> |
55 | 56 |
</dl> |
56 | 57 |
</div> |
57 | 58 |
<div class="editable" style="display:none;"> |
58 |
<form action="{% url astakos.im.views.group_detail object.id %}" method="post"
|
|
59 |
<form action="{% url project_detail object.serial %}" method="post"
|
|
59 | 60 |
class="withlabels">{% csrf_token %} |
60 | 61 |
{% with update_form as form %} |
61 | 62 |
{% include "im/form_render.html" %} |
... | ... | |
70 | 71 |
<h3>DETAILS</h3> |
71 | 72 |
<dl class="alt-style"> |
72 | 73 |
<dt>Name</dt> |
73 |
<dd>{{ object.name }} </dd> |
|
74 |
<!--<dt>Type</dt> |
|
75 |
<dd>{{object.kindname|capfirst}} </dd>--> |
|
74 |
<dd>{{ object.definition.name }} </dd> |
|
76 | 75 |
<dt>Issue date:</dt> |
77 | 76 |
<dd>{{object.issue_date|date:"d/m/Y"}} </dd> |
78 |
<dt>Expiration Date</dt> |
|
79 |
<dd>{{object.expiration_date|date:"d/m/Y"}} </dd> |
|
77 |
<dt>Start date:</dt> |
|
78 |
<dd>{{object.definition.start_date|date:"d/m/Y"}} </dd> |
|
79 |
<dt>End Date</dt> |
|
80 |
<dd>{{object.definition.end_date|date:"d/m/Y"}} </dd> |
|
80 | 81 |
<!-- |
81 | 82 |
<dt>Moderation</dt> |
82 | 83 |
<dd>{% if object.moderation_enabled%}Yes{% else %}No{% endif %}</dd> |
83 | 84 |
--> |
84 | 85 |
<dt>Activated</dt> |
85 |
<dd>{% if object.is_enabled %}Yes{% else %}No{% endif %}</dd>
|
|
86 |
<dd>{% if object.is_active %}Yes{% else %}No{% endif %}</dd>
|
|
86 | 87 |
<dt>Owner</dt> |
87 |
{{ o.owners }} |
|
88 |
<dd>{% for o in owners %} |
|
89 |
{% if object.is_owner %} |
|
88 |
{{ o.owner }} |
|
89 |
<dd>{% if user == o.owner %} |
|
90 | 90 |
Me |
91 |
{% else%}
|
|
92 |
{{o.realname}} ({{o.email}})
|
|
93 |
|
|
94 |
{% endif %}
|
|
95 |
{% endfor %}
|
|
91 |
{% else%} |
|
92 |
{{o.owner.realname}} ({{o.owner.email}})
|
|
93 |
|
|
94 |
{% endif %} |
|
95 |
|
|
96 | 96 |
</dd> |
97 | 97 |
<dt>Max participants</dt> |
98 |
<dd>{% if object.max_participants%}{{object.max_participants}}{% else %} {% endif %}</dd>
|
|
98 |
<dd>{% if object.definition.limit_on_members_number%}{{object.definition.limit_on_members_number}}{% else %} {% endif %}</dd>
|
|
99 | 99 |
</dl> |
100 | 100 |
</div> |
101 | 101 |
<div class="full-dotted"> |
102 | 102 |
<h3>RESOURCES</h3> |
103 |
{% if quota %}
|
|
103 |
{% if object.definition.projectresourcegrant_set.all %}
|
|
104 | 104 |
<dl class="alt-style"> |
105 |
{% for q in quota %}
|
|
106 |
|
|
105 |
{% for q in object.definition.projectresourcegrant_set.all %}
|
|
106 |
q.resource |
|
107 | 107 |
<dt> |
108 | 108 |
Max {% if q.is_abbreviation %}{{ q.verbose_name|upper }}{% else %}{{ q.verbose_name }}{% endif %}{% if not q.unit %}s {% endif %} per user |
109 | 109 |
</dt> |
110 | 110 |
<dd> |
111 |
{% if q.value %}
|
|
111 |
{% if q.member_limit %}
|
|
112 | 112 |
{% if q.unit %} |
113 |
{{ q.value|sizeof_fmt }}
|
|
113 |
{{ q.member_limit|sizeof_fmt }}
|
|
114 | 114 |
{% else %} |
115 |
{{ q.value|isinf }}
|
|
115 |
{{ q.member_limit|isinf }}
|
|
116 | 116 |
{% endif %} |
117 | 117 |
{% else %} |
118 | 118 |
Unlimited |
... | ... | |
128 | 128 |
<p>No resources</p> |
129 | 129 |
{% endif %} |
130 | 130 |
</div> |
131 |
{% if object.is_owner %}
|
|
131 |
{% if user == object.owner %}
|
|
132 | 132 |
<div class="full-dotted"> |
133 | 133 |
{% with page|concat:sorting as args %} |
134 |
{% with object.membership_set.select_related.all|paginate:args as membership %} |
|
134 |
{% with object.project.projectmembership_set.select_related.all|paginate:args as membership %}
|
|
135 | 135 |
{% if membership %} |
136 | 136 |
<form method="GET" class="minimal" action="#members-table"> |
137 | 137 |
<div class="form-row"> |
... | ... | |
156 | 156 |
<tr> |
157 | 157 |
<td>{{m.person.email}}</td> |
158 | 158 |
<td>{{m.person.realname}}</td> |
159 |
{% if m.person in owners %}
|
|
159 |
{% if m.person == o.owner %}
|
|
160 | 160 |
<td>Owner</td> |
161 | 161 |
{% else %} |
162 |
{% if m.is_approved %}
|
|
162 |
{% if m.is_accepted %}
|
|
163 | 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>
|
|
164 |
{% if user == object.owner %}
|
|
165 |
<a href="{% url project_disapprove_member object.serial m.person.id %}?{% if page %}page={{ page }}{% endif %}{% if sorting %}&sorting={{sorting}}{% endif %}">Remove</a>
|
|
166 | 166 |
{% endif %} |
167 | 167 |
</td> |
168 | 168 |
{% else %} |
169 | 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>
|
|
170 |
{% if user == object.owner %}
|
|
171 |
<a href="{% url project_approve_member object.serial m.person.id %}?{% if page %}page={{ page }}{% endif %}{% if sorting %}&sorting={{sorting}}{% endif %}">Accept</a>
|
|
172 |
<a href="{% url project_disapprove_member object.serial m.person.id %}?{% if page %}page={{ page }}{% endif %}{% if sorting %}&sorting={{sorting}}{% endif %}">Remove</a>
|
|
173 | 173 |
{% endif %} |
174 | 174 |
</td> |
175 | 175 |
{% endif %} |
... | ... | |
203 | 203 |
|
204 | 204 |
|
205 | 205 |
<div class="full-dotted"> |
206 |
<form action="{% url astakos.im.views.group_detail object.id %}#members-table" method="post" class="withlabels" >{% csrf_token %}
|
|
206 |
<form action="{% url project_detail object.serial %}#members-table" method="post" class="withlabels" >{% csrf_token %}
|
|
207 | 207 |
<h2>Enroll more members</h2> |
208 | 208 |
{% with addmembers_form as form %} |
209 | 209 |
{% include "im/form_render.html" %} |
... | ... | |
228 | 228 |
</div> |
229 | 229 |
|
230 | 230 |
{% endwith %} |
231 |
{% endwith %} |
|
231 | 232 |
{% endblock %} |
Also available in: Unified diff