Switch to unified view

a/Allura/allura/controllers/project.py b/Allura/allura/controllers/project.py
...
...
410
            grants=grants,
410
            grants=grants,
411
            grants_count=grants_count,
411
            grants_count=grants_count,
412
            neighborhood=self.neighborhood)
412
            neighborhood=self.neighborhood)
413
413
414
    @expose()
414
    @expose()
415
    @require_post()
415
    def update(self, name=None, css=None, homepage=None, icon=None, **kw):
416
    def update(self, name=None, css=None, homepage=None, icon=None, **kw):
416
        self.neighborhood.name = name
417
        self.neighborhood.name = name
417
        self.neighborhood.redirect = kw.pop('redirect', '')
418
        self.neighborhood.redirect = kw.pop('redirect', '')
418
        self.neighborhood.homepage = homepage
419
        self.neighborhood.homepage = homepage
419
        self.neighborhood.css = css
420
        self.neighborhood.css = css
...
...
427
                thumbnail_meta=dict(neighborhood_id=self.neighborhood._id))
428
                thumbnail_meta=dict(neighborhood_id=self.neighborhood._id))
428
        redirect('overview')
429
        redirect('overview')
429
430
430
    @h.vardec
431
    @h.vardec
431
    @expose()
432
    @expose()
433
    @require_post()
432
    def update_acl(self, permission=None, user=None, new=None, **kw):
434
    def update_acl(self, permission=None, user=None, new=None, **kw):
433
        if user is None: user = []
435
        if user is None: user = []
434
        for u in user:
436
        for u in user:
435
            if u.get('delete'):
437
            if u.get('delete'):
436
                if u['id']:
438
                if u['id']:
...
...
463
    @expose('jinja:neighborhood_moderate.html')
465
    @expose('jinja:neighborhood_moderate.html')
464
    def index(self, **kw):
466
    def index(self, **kw):
465
        return dict(neighborhood=self.neighborhood)
467
        return dict(neighborhood=self.neighborhood)
466
468
467
    @expose()
469
    @expose()
470
    @require_post()
468
    def invite(self, pid, invite=None, uninvite=None):
471
    def invite(self, pid, invite=None, uninvite=None):
469
        p = M.Project.query.get(shortname=pid, deleted=False)
472
        p = M.Project.query.get(shortname=pid, deleted=False)
470
        if p is None:
473
        if p is None:
471
            flash("Can't find %s" % pid, 'error')
474
            flash("Can't find %s" % pid, 'error')
472
            redirect('.')
475
            redirect('.')
...
...
486
            p.neighborhood_invitations.remove(self.neighborhood._id)
489
            p.neighborhood_invitations.remove(self.neighborhood._id)
487
            flash('%s uninvited' % pid)
490
            flash('%s uninvited' % pid)
488
        redirect('.')
491
        redirect('.')
489
492
490
    @expose()
493
    @expose()
494
    @require_post()
491
    def evict(self, pid):
495
    def evict(self, pid):
492
        p = M.Project.query.get(shortname=pid, neighborhood_id=self.neighborhood._id, deleted=False)
496
        p = M.Project.query.get(shortname=pid, neighborhood_id=self.neighborhood._id, deleted=False)
493
        if p is None:
497
        if p is None:
494
            flash("Cannot evict  %s; it's not in the neighborhood"
498
            flash("Cannot evict  %s; it's not in the neighborhood"
495
                  % pid, 'error')
499
                  % pid, 'error')
...
...
603
        grant.granted_to_project_id = recipient_q._id
607
        grant.granted_to_project_id = recipient_q._id
604
        grant.granted_by_neighborhood_id = self.neighborhood._id
608
        grant.granted_by_neighborhood_id = self.neighborhood._id
605
        redirect(request.referer)
609
        redirect(request.referer)
606
610
607
    @expose()
611
    @expose()
612
    @require_post()
608
    def delete(self):
613
    def delete(self):
609
        if self.award:
614
        if self.award:
610
            grants = M.AwardGrant.query.find(dict(award_id=self.award._id))
615
            grants = M.AwardGrant.query.find(dict(award_id=self.award._id))
611
            for grant in grants:
616
            for grant in grants:
612
                grant.delete()
617
                grant.delete()
...
...
642
        if not icon:
647
        if not icon:
643
            raise exc.HTTPNotFound
648
            raise exc.HTTPNotFound
644
        return icon.serve()
649
        return icon.serve()
645
650
646
    @expose()
651
    @expose()
652
    @require_post()
647
    def revoke(self):
653
    def revoke(self):
648
        self.grant.delete()
654
        self.grant.delete()
649
        redirect(request.referer)
655
        redirect(request.referer)
650
656