Revision 05617ab9 snf-astakos-app/astakos/im/tables.py
b/snf-astakos-app/astakos/im/tables.py | ||
---|---|---|
44 | 44 |
|
45 | 45 |
from astakos.im.models import * |
46 | 46 |
from astakos.im.templatetags.filters import truncatename |
47 |
from astakos.im.functions import do_join_project_checks |
|
47 |
from astakos.im.functions import do_join_project_checks, \ |
|
48 |
do_leave_project_checks |
|
48 | 49 |
|
49 | 50 |
DEFAULT_DATE_FORMAT = "d/m/Y" |
50 | 51 |
|
... | ... | |
184 | 185 |
url, action, confirm, prompt = '', '', True, '' |
185 | 186 |
append_url = '' |
186 | 187 |
|
187 |
can_join = True |
|
188 |
|
|
189 |
try: |
|
190 |
project = Project.objects.get(application=application) |
|
191 |
do_join_project_checks(project) |
|
192 |
except (PermissionDenied, Project.DoesNotExist), e: |
|
193 |
can_join = False |
|
194 |
|
|
195 |
if can_join: |
|
196 |
if user.is_project_accepted_member(application): |
|
197 |
url = 'astakos.im.views.project_leave' |
|
198 |
action = _('Leave') |
|
199 |
confirm = True |
|
200 |
prompt = _('Are you sure you want to leave from the project ?') |
|
201 |
elif not user.is_project_member(application): |
|
202 |
url = 'astakos.im.views.project_join' |
|
203 |
action = _('Join') |
|
204 |
confirm = True |
|
205 |
prompt = _('Are you sure you want to join this project ?') |
|
206 |
else: |
|
207 |
action = '' |
|
208 |
confirm = False |
|
209 |
url = None |
|
188 |
can_join = can_leave = False |
|
189 |
member_status = application.user_status(user) |
|
190 |
project = application.get_project() |
|
191 |
|
|
192 |
if project: |
|
193 |
try: |
|
194 |
do_join_project_checks(project) |
|
195 |
can_join = True |
|
196 |
except PermissionDenied: |
|
197 |
pass |
|
198 |
|
|
199 |
try: |
|
200 |
do_leave_project_checks(project) |
|
201 |
can_leave = True |
|
202 |
except PermissionDenied: |
|
203 |
pass |
|
204 |
|
|
205 |
if can_leave and user.is_project_accepted_member(application): |
|
206 |
url = 'astakos.im.views.project_leave' |
|
207 |
action = _('Leave') |
|
208 |
confirm = True |
|
209 |
prompt = _('Are you sure you want to leave from the project ?') |
|
210 |
elif can_join and user.is_project_member(application): |
|
211 |
url = 'astakos.im.views.project_join' |
|
212 |
action = _('Join') |
|
213 |
confirm = True |
|
214 |
prompt = _('Are you sure you want to join this project ?') |
|
215 |
else: |
|
216 |
action = '' |
|
217 |
confirm = False |
|
218 |
url = None |
|
210 | 219 |
|
211 | 220 |
url = reverse(url, args=(application.pk, )) + append_url if url else '' |
212 | 221 |
return {'action': action, |
... | ... | |
229 | 238 |
super(UserTable, self).__init__(*args, **kwargs) |
230 | 239 |
|
231 | 240 |
|
232 |
def project_name_append(record, column): |
|
233 |
try: |
|
234 |
if record.projectapplication and column.table.user.owns_project(record): |
|
235 |
if record.state == ProjectApplication.APPROVED: |
|
236 |
return mark_safe("<br /><i class='tiny'>%s</i>" % _('modifications pending')) |
|
237 |
else: |
|
238 |
return u'' |
|
239 |
else: |
|
240 |
return u'' |
|
241 |
except: |
|
242 |
return u'' |
|
241 |
def project_name_append(application, column): |
|
242 |
if application.has_pending_modifications(): |
|
243 |
return mark_safe("<br /><i class='tiny'>%s</i>" % \ |
|
244 |
_('modifications pending')) |
|
245 |
return u'' |
|
243 | 246 |
|
244 | 247 |
# Table classes |
245 | 248 |
class UserProjectApplicationsTable(UserTable): |
Also available in: Unified diff