Example #1
0
def _status_change(request, id, status, comments=u''):
    """
    Изменение статуса заявки.
    Вызывается из других представлений!
    """
    try:
        prolongation = UserProlongation.objects.get(id=id)
    except UserProlongation.DoesNotExist:
        raise Http404()
    manager = manager_check(request.user,prolongation.recive_library_id )
    if not manager:
        return HttpResponseForbidden(u'У вас нет доступа. Обратитесь к администратору.')


    if request.method == 'POST':
        form = ChangeStatusForm(request.POST)
        if form.is_valid():
            status_change = form.save(commit=False)
            status_change.prolongation = prolongation
            status_change.prolongation_manager = manager
            status_change.status = status
            if status_change.status in  prolongation.next_statuses():
                status_change.save()
            else:
                raise ValueError(u'Wrong status code')
            return redirect('prolongation_prolongation_detail', id=id)
    else:
        form = ChangeStatusForm(initial={
            'comments':comments
        })

    return render(request, 'prolongation/administration/change_status.html', {
        'form': form,
        'prolongation': prolongation
    })
Example #2
0
def changestatus():
    if 'email' not in session:
        return redirect(url_for('signin'))

    user = User.query.filter_by(email=session['email']).first()

    if user is None:
        return redirect(url_for('signin'))
    else:
        form = ChangeStatusForm()
        courses = Course.query.filter_by(ins_id=user.uid).all()
        courseChoices = []
        for course in courses:
            courseChoices.append(
                (course.code, course.code + '-' + course.cname))
        form.course.choices = courseChoices
        studentChoices = []
        studentLinks = StudentCourseLink.query.filter_by(
            cid=courses[0].cid).all()
        for link in studentLinks:
            stu = Student.query.filter_by(sid=link.sid).first()
            sname = stu.sfirstname + ' ' + stu.slastname
            studentChoices.append((link.sid, str(link.sid) + ' - ' + sname))
        form.student.choices = studentChoices

        if request.method == 'POST':
            status = form.att.data
            stu_id = form.student.data
            date = form.time.data
            course_code = form.course.data
            course_id = Course.query.filter_by(code=course_code).first().cid
            stu2 = Student.query.filter_by(sid=int(stu_id)).first()
            sname2 = stu2.sfirstname + ' ' + stu2.slastname
            exsiting = Attendance.query.filter_by(stu_id=stu_id,
                                                  course_id=course_id,
                                                  date=date).first()
            checkin_time = ''
            checkout_time = ''
            if exsiting is not None:
                checkin_time = exsiting.checkin_time
                checkout_time = exsiting.checkout_time
                db.session.delete(exsiting)
                db.session.commit()
            additional = 'manually checked in'
            newatt = Attendance(checkin_time, checkout_time, date, status,
                                sname2, stu_id, course_code, course_id,
                                additional)
            db.session.add(newatt)
            db.session.commit()

        return render_template('changestatus.html', form=form)