Ejemplo n.º 1
0
    def post(self):
        # URL will contain 'edit' argument if this request is coming from an assignment edit form
        edit    = self.request.get('edit')
        year    = int(self.request.get('year'))
        quarter = int(self.request.get('quarter'))
        number  = int(self.request.get('assign_num'))

        # if this request didn't come from the edit form...
        if not edit:
            # ...create new assignment and set PK values
            assignment = AssignmentModel.make_assignment_with_pk_vals(quarter, year, number)
        else:
            # ...else get assignment
            assignment = AssignmentModel.get_assign_by_number(quarter, year, number)

        # if an assignment with the same PK values exist, redirect with error; assignment isn't created
        if AssignmentModel.get_assign_by_number(assignment.quarter, assignment.year, assignment.number) and not edit:
            message = 'That assignment is already in the database'
            return self.redirect('/admin/assignment/add?message=' + message)
        else:
            # set dates/times
            kwargs = {
                'assignment'  :   assignment,
                'fade_in_date':   str(self.request.get('fade_in_date')).split('-'),
                'fade_in_time':   str(self.request.get('fade_in_time')).split(':'),
                'due_date':       str(self.request.get('due_date')).split('-'),
                'due_time':       str(self.request.get('due_time')).split(':'),
                'close_date':     str(self.request.get('close_date')).split('-'),
                'close_time':     str(self.request.get('close_time')).split(':'),
                'eval_date':      str(self.request.get('eval_date')).split('-'),
                'eval_time':      str(self.request.get('eval_time')).split(':'),
                'eval_open_date': str(self.request.get('eval_open_date')).split('-'),
                'eval_open_time': str(self.request.get('eval_open_time')).split(':'),
                'fade_out_date':  str(self.request.get('fade_out_date')).split('-'),
                'fade_out_time':  str(self.request.get('fade_out_time')).split(':'),
            }
            AssignmentModel.save_assignment_with_dates(**kwargs)
            # redirct according to action (add vs edit)
            redirect_link = '/admin/assignment/' + ('view' if edit else 'add')
            message       = MessageModel.assignment_edited_or_added(quarter, year, number, edit)
            return self.redirect(redirect_link + '?message=' + message)
Ejemplo n.º 2
0
    def post(self):
        # URL will contain 'edit' argument if this request is coming from an assignment edit form
        edit = self.request.get('edit')
        year = int(self.request.get('year'))
        quarter = int(self.request.get('quarter'))
        number = int(self.request.get('assign_num'))

        # if this request didn't come from the edit form...
        if not edit:
            # ...create new assignment and set PK values
            assignment = AssignmentModel.make_assignment_with_pk_vals(
                quarter, year, number)
        else:
            # delete button pressed
            if self.request.get('deleteButton', None):
                AssignmentModel.delete_assign_by_number(quarter, year, number)
                redirect_link = '/admin/assignment/view'
                message = MessageModel.assignment_deleted(
                    quarter, year, number)
                return self.redirect(redirect_link + '?message=' + message)
            # ...else get assignment
            assignment = AssignmentModel.get_assign_by_number(
                quarter, year, number)
        # if an assignment with the same PK values exist, redirect with error; assignment isn't created
        if AssignmentModel.get_assign_by_number(
                assignment.quarter, assignment.year,
                assignment.number) and not edit:
            message = 'That assignment is already in the database'
            return self.redirect('/admin/assignment/add?message=' + message)
        else:
            # set dates/times
            kwargs = {
                'assignment':
                assignment,
                'fade_in_date':
                str(self.request.get('fade_in_date')).split('-'),
                'fade_in_time':
                str(self.request.get('fade_in_time')).split(':'),
                'due_date':
                str(self.request.get('due_date')).split('-'),
                'due_time':
                str(self.request.get('due_time')).split(':'),
                'close_date':
                str(self.request.get('close_date')).split('-'),
                'close_time':
                str(self.request.get('close_time')).split(':'),
                'eval_date':
                str(self.request.get('eval_date')).split('-'),
                'eval_time':
                str(self.request.get('eval_time')).split(':'),
                'eval_open_date':
                str(self.request.get('eval_open_date')).split('-'),
                'eval_open_time':
                str(self.request.get('eval_open_time')).split(':'),
                'fade_out_date':
                str(self.request.get('fade_out_date')).split('-'),
                'fade_out_time':
                str(self.request.get('fade_out_time')).split(':'),
            }
            AssignmentModel.save_assignment_with_dates(**kwargs)
            # redirct according to action (add vs edit)
            redirect_link = '/admin/assignment/' + ('view' if edit else 'add')
            message = MessageModel.assignment_edited_or_added(
                quarter, year, number, edit)
            return self.redirect(redirect_link + '?message=' + message)