예제 #1
0
파일: proposal.py 프로젝트: CarlFK/zookeepr
    def _review(self, id):
        """Review a proposal.
        """
        c.proposal = Proposal.find_by_id(id)
        c.signed_in_person = h.signed_in_person()
        c.next_review_id = Proposal.find_next_proposal(c.proposal.id, c.proposal.type.id, c.signed_in_person.id)

        # TODO: currently not enough (see TODOs in model/proposal.py)
        #if not h.auth.authorized(h.auth.has_organiser_role):
        #    # You can't review your own proposal
        #    for person in c.proposal.people:
        #        if person.id == c.signed_in_person.id:
        #            h.auth.no_role()

        person = c.signed_in_person
        if person in [ review.reviewer for review in c.proposal.reviews]:
            h.flash('Already reviewed')
            return redirect_to(action='review', id=c.next_review_id)

        results = self.form_result['review']
        review = Review(**results)

        meta.Session.add(review)
        c.proposal.reviews.append(review)

        review.reviewer = person

        meta.Session.commit()

        if c.next_review_id:
            return redirect_to(action='review', id=c.next_review_id)

        h.flash("No more papers to review")

        return redirect_to(action='review_index')
예제 #2
0
파일: review.py 프로젝트: fmarier/zookeepr
    def delete(self, id):
        c.review = Review.find_by_id(id)

        if c.review.reviewer.id != h.signed_in_person().id:
            # Raise a no_auth error
            h.auth.no_role()

        return render('/review/confirm_delete.mako')
예제 #3
0
파일: review.py 프로젝트: CarlFK/zookeepr
    def delete(self, id):
        c.review = Review.find_by_id(id)
        
        if c.review.reviewer.id != h.signed_in_person().id:
            # Raise a no_auth error
            h.auth.no_role()

        return render('/review/confirm_delete.mako')
예제 #4
0
파일: review.py 프로젝트: fmarier/zookeepr
    def _delete(self, id):
        c.review = Review.find_by_id(id)

        if c.review.reviewer.id != h.signed_in_person().id:
            # Raise a no_auth error
            h.auth.no_role()

        meta.Session.delete(c.review)
        meta.Session.commit()

        h.flash("Review Deleted")
        redirect_to(controller='review', action='index')
예제 #5
0
파일: review.py 프로젝트: fmarier/zookeepr
    def _edit(self, id):
        c.review = Review.find_by_id(id)
        self._is_reviewer()

        for key in self.form_result['review']:
            setattr(c.review, key, self.form_result['review'][key])

        # update the objects with the validated form data
        meta.Session.commit()

        h.flash("Review has been edited!")
        redirect_to(action='view', id=id)
예제 #6
0
파일: review.py 프로젝트: CarlFK/zookeepr
    def _delete(self, id):
        c.review = Review.find_by_id(id)

        if c.review.reviewer.id != h.signed_in_person().id:
            # Raise a no_auth error
            h.auth.no_role()

        meta.Session.delete(c.review)
        meta.Session.commit()

        h.flash("Review Deleted")
        redirect_to(controller='review', action='index')
예제 #7
0
파일: review.py 프로젝트: CarlFK/zookeepr
    def _edit(self, id):
        c.review = Review.find_by_id(id)
        self._is_reviewer()

        for key in self.form_result['review']:
            setattr(c.review, key, self.form_result['review'][key])

        # update the objects with the validated form data
        meta.Session.commit()

        h.flash("Review has been edited!")
        redirect_to(action='view', id=id)
예제 #8
0
파일: review.py 프로젝트: fmarier/zookeepr
    def edit(self, id):
        c.form = 'edit'
        c.review = Review.find_by_id(id)
        self._is_reviewer()

        c.proposal = c.review.proposal
        defaults = h.object_to_defaults(c.review, 'review')
        if defaults['review.score'] == 1 or defaults['review.score'] == 2:
            defaults['review.score'] = '+%s' % defaults['review.score']

        c.signed_in_person = h.signed_in_person()
        form = render('/review/edit.mako')
        return htmlfill.render(form, defaults)
예제 #9
0
파일: review.py 프로젝트: CarlFK/zookeepr
    def edit(self, id):
        c.form = 'edit'
        c.review = Review.find_by_id(id)
        self._is_reviewer()

        c.proposal = c.review.proposal
        defaults = h.object_to_defaults(c.review, 'review')
        if defaults['review.score'] == 1 or defaults['review.score'] == 2:
            defaults['review.score'] = '+%s'  % defaults['review.score']

        c.signed_in_person = h.signed_in_person()
        form = render('/review/edit.mako')
        return htmlfill.render(form, defaults)
예제 #10
0
파일: review.py 프로젝트: fmarier/zookeepr
    def view(self, id):
        c.review = Review.find_by_id(id)

        # TODO: currently not enough (see TODOs in model/proposal.py)
        #if not h.auth.authorized(h.auth.has_organiser_role):
        #    # You can't review your own proposal
        #    for person in c.review.proposal.people:
        #        if person.id == h.signed_in_person().id:
        #            h.auth.no_role()

        if c.review is None:
            redirect_to(action='index')

        return render('review/view.mako')
예제 #11
0
파일: review.py 프로젝트: CarlFK/zookeepr
    def view(self, id):
        c.review = Review.find_by_id(id)

        # TODO: currently not enough (see TODOs in model/proposal.py)
        #if not h.auth.authorized(h.auth.has_organiser_role):
        #    # You can't review your own proposal
        #    for person in c.review.proposal.people:
        #        if person.id == h.signed_in_person().id:
        #            h.auth.no_role()

        if c.review is None:
            redirect_to(action='index')

        return render('review/view.mako')
예제 #12
0
    def _review(self, id):
        """Review a proposal.
        """
        c.proposal = Proposal.find_by_id(id)
        c.signed_in_person = h.signed_in_person()
        c.next_review_id = Proposal.find_next_proposal(c.proposal.id,
                                                       c.proposal.type.id,
                                                       c.signed_in_person.id)

        # TODO: currently not enough (see TODOs in model/proposal.py)
        #if not h.auth.authorized(h.auth.has_organiser_role):
        #    # You can't review your own proposal
        #    for person in c.proposal.people:
        #        if person.id == c.signed_in_person.id:
        #            h.auth.no_role()

        person = c.signed_in_person
        if person in [review.reviewer for review in c.proposal.reviews]:
            h.flash('Already reviewed')
            return redirect_to(action='review', id=c.next_review_id)

        results = self.form_result['review']
        review = Review(**results)

        meta.Session.add(review)
        c.proposal.reviews.append(review)

        review.reviewer = person

        meta.Session.commit()

        if c.next_review_id:
            return redirect_to(action='review', id=c.next_review_id)

        h.flash("No more papers to review")

        return redirect_to(action='review_index')
예제 #13
0
파일: review.py 프로젝트: fmarier/zookeepr
 def index(self):
     c.review_collection = Review.find_all()
     return render('/review/list.mako')
예제 #14
0
파일: review.py 프로젝트: fmarier/zookeepr
 def summary(self):
     c.review_collection = Review.find_all()
     return render('review/summary.mako')
예제 #15
0
파일: review.py 프로젝트: CarlFK/zookeepr
 def index(self):
     c.review_collection = Review.find_all()
     return render('/review/list.mako')
예제 #16
0
파일: review.py 프로젝트: CarlFK/zookeepr
 def summary(self):
     c.review_collection=Review.find_all()
     return render('review/summary.mako')