Revision 8fb8d0cf snf-astakos-app/astakos/im/tables.py

b/snf-astakos-app/astakos/im/tables.py
148 148
            return self.prompt(record, table)
149 149
        return self.prompt
150 150

  
151
    def get_template_context(self, record, table, value, bound_column, **kwargs):
151
    def get_template_context(self, record, table, value, bound_column,
152
                             **kwargs):
152 153
        context = {'default': bound_column.default,
153 154
                   'record': record,
154 155
                   'value': value,
......
157 158
                   'prompt': self.get_prompt(record, table),
158 159
                   'action': self.get_action(record, table),
159 160
                   'confirm': self.get_confirm(record, table)
160
                  }
161
                   }
161 162

  
162 163
        # decide whether to return dict or a list of dicts in case we want to
163 164
        # display multiple actions within a cell.
......
248 249

  
249 250
        super(UserTable, self).__init__(*args, **kwargs)
250 251

  
252

  
251 253
def project_name_append(application, column):
252 254
    if application.has_pending_modifications():
253
        return mark_safe("<br /><i class='tiny'>%s</i>" % \
254
                             _('modifications pending'))
255
        return mark_safe("<br /><i class='tiny'>%s</i>" %
256
                         _('modifications pending'))
255 257
    return u''
256 258

  
259

  
257 260
# Table classes
258 261
class UserProjectApplicationsTable(UserTable):
259 262
    caption = _('My projects')
......
262 265
                      coerce=lambda x: truncatename(x, 25),
263 266
                      append=project_name_append,
264 267
                      args=(A('chain'),))
265
    issue_date = tables.DateColumn(verbose_name=_('Application'), format=DEFAULT_DATE_FORMAT)
268
    issue_date = tables.DateColumn(verbose_name=_('Application'),
269
                                   format=DEFAULT_DATE_FORMAT)
266 270
    start_date = tables.DateColumn(format=DEFAULT_DATE_FORMAT)
267
    end_date = tables.DateColumn(verbose_name=_('Expiration'), format=DEFAULT_DATE_FORMAT)
271
    end_date = tables.DateColumn(verbose_name=_('Expiration'),
272
                                 format=DEFAULT_DATE_FORMAT)
268 273
    members_count = tables.Column(verbose_name=_("Members"), default=0,
269 274
                                  orderable=False)
270
    membership_status = tables.Column(verbose_name=_("Status"), empty_values=(),
275
    membership_status = tables.Column(verbose_name=_("Status"),
276
                                      empty_values=(),
271 277
                                      orderable=False)
272 278
    project_action = RichLinkColumn(verbose_name=_('Action'),
273 279
                                    extra_context=action_extra_context,
274 280
                                    orderable=False)
275 281

  
276

  
277 282
    def render_membership_status(self, record, *args, **kwargs):
278 283
        if self.user.owns_application(record) or self.user.is_project_admin():
279 284
            return record.project_state_display()
......
293 298

  
294 299
        c = project.count_pending_memberships()
295 300
        if c > 0:
296
            pending_members_url = reverse('project_pending_members', 
301
            pending_members_url = reverse(
302
                'project_pending_members',
297 303
                kwargs={'chain_id': application.chain})
298 304

  
299
            pending_members = "<i class='tiny'> - %d %s</i>" % (c, _('pending'))
300
            if self.user.owns_application(record) or self.user.is_project_admin():
301
                pending_members = "<i class='tiny'>"+" - <a href='%s'>%d %s</a></i>" % (
302
                    pending_members_url,c, _('pending'))
305
            pending_members = "<i class='tiny'> - %d %s</i>" % (
306
                c, _('pending'))
307
            if (
308
                self.user.owns_application(record) or
309
                self.user.is_project_admin()
310
            ):
311
                pending_members = ("<i class='tiny'>" +
312
                                   " - <a href='%s'>%d %s</a></i>" %
313
                                   (pending_members_url, c, _('pending')))
303 314
            append = mark_safe(pending_members)
304
        members_url = reverse('project_approved_members', 
305
            kwargs={'chain_id': application.chain})
315
        members_url = reverse('project_approved_members',
316
                              kwargs={'chain_id': application.chain})
306 317
        members_count = record.members_count()
307 318
        if self.user.owns_application(record) or self.user.is_project_admin():
308 319
            members_count = '<a href="%s">%d</a>' % (members_url,
309
                members_count)
320
                                                     members_count)
310 321
        return mark_safe(str(members_count) + append)
311
        
322

  
312 323
    class Meta:
313 324
        model = ProjectApplication
314
        fields = ('name', 'membership_status', 'issue_date', 'end_date', 
325
        fields = ('name', 'membership_status', 'issue_date', 'end_date',
315 326
                  'members_count')
316 327
        attrs = {'id': 'projects-list', 'class': 'my-projects alt-style'}
317 328
        template = "im/table_render.html"
318 329
        empty_text = _('No projects')
319 330
        exclude = ('start_date', )
320 331

  
332

  
321 333
class ProjectModificationApplicationsTable(UserProjectApplicationsTable):
322 334
    name = LinkColumn('astakos.im.views.project_detail',
323 335
                      verbose_name=_('Action'),
324
                      coerce= lambda x: 'review',
336
                      coerce=lambda x: 'review',
325 337
                      args=(A('pk'),))
338

  
326 339
    class Meta:
327 340
        attrs = {'id': 'projects-list', 'class': 'my-projects alt-style'}
328 341
        fields = ('issue_date', 'membership_status')
329 342
        exclude = ('start_date', 'end_date', 'members_count', 'project_action')
330 343

  
344

  
331 345
def member_action_extra_context(membership, table, col):
332 346

  
333 347
    context = []
......
350 364
        prompts = [_('Are you sure you want to remove this member?')]
351 365
        confirms = [True, True]
352 366

  
353

  
354 367
    for i, url in enumerate(urls):
355 368
        context.append(dict(url=reverse(url, args=(table.project.pk,
356 369
                                                   membership.pk)),
......
358 371
                            confirm=confirms[i]))
359 372
    return context
360 373

  
374

  
361 375
class ProjectMembersTable(UserTable):
362 376
    input = "<input type='checkbox' name='all-none'/>"
363
    check = tables.Column(accessor="person.id",verbose_name =mark_safe(input), orderable=False)
364
    email = tables.Column(accessor="person.email", verbose_name=_('Email'))    
377
    check = tables.Column(accessor="person.id", verbose_name=mark_safe(input),
378
                          orderable=False)
379
    email = tables.Column(accessor="person.email", verbose_name=_('Email'))
365 380
    status = tables.Column(accessor="state", verbose_name=_('Status'))
366 381
    project_action = RichLinkColumn(verbose_name=_('Action'),
367 382
                                    extra_context=member_action_extra_context,
368 383
                                    orderable=False)
369 384

  
370

  
371 385
    def __init__(self, project, *args, **kwargs):
372 386
        self.project = project
373 387
        super(ProjectMembersTable, self).__init__(*args, **kwargs)
......
375 389
            self.exclude = ('project_action', )
376 390

  
377 391
    def render_check(self, value, record, *args, **kwargs):
378
        checkbox = "<input type='checkbox' value='%d' name ='actions'>" % record.id
379
        return  mark_safe(checkbox)
392
        checkbox = ("<input type='checkbox' value='%d' name ='actions'>" %
393
                    record.id)
394
        return mark_safe(checkbox)
380 395

  
381 396
    def render_status(self, value, record, *args, **kwargs):
382 397
        return record.state_display()

Also available in: Unified diff