def teacher_status(self, command, id): teacher = meta.Session.query(Teacher).filter(Teacher.id == id).filter(Teacher.teacher_verified==False).one() if command == 'confirm': teacher.confirm() meta.Session.commit() teacher_confirmed_email(teacher, True) h.flash('Teacher confirmed.') else: teacher.revert_to_user() teacher_confirmed_email(teacher, False) h.flash('Teacher rejected.') redirect(url(controller="admin", action="teachers"))
def teacher_status(self, location): command, id = request.urlvars['command'], request.urlvars['id'] teacher = meta.Session.query(Teacher).filter(Teacher.id == id).filter(Teacher.teacher_verified==False).one() if command == 'confirm': teacher.confirm() meta.Session.commit() teacher_confirmed_email(teacher, True) h.flash('Teacher confirmed.') else: teacher.revert_to_user() teacher_confirmed_email(teacher, False) h.flash('Teacher rejected.') redirect(location.url(action="unverified_teachers"))
def teacher_convert(self, id): teacher = meta.Session.query(User).filter(User.id == id).one() authors_table = meta.metadata.tables['authors'] teachers_table = meta.metadata.tables['teachers'] # a hack: cannot update a polymorphic descriptor column using the orm (rejecting a teacher is basically converting him into a user) conn = meta.engine.connect() upd = authors_table.update().where(authors_table.c.id==id).values(type='teacher') ins = teachers_table.insert().values(id=id, teacher_verified=True, teacher_position=None) teacher_confirmed_email(teacher, True) conn.execute(upd) conn.execute(ins) h.flash('User is now a teacher.') redirect(url(controller="admin", action="teachers"))