def add(self): h.requirerights("admin") users = meta.Session.query(model.Person).all() c.users = [] for i in users: c.users.append([i.id, h.name(i)]) return render ("/divisions/add.html")
def changepassword (self, id=None): user = h.checkuser(id) h.requirerights(user_is=id) user.password = md5(self.form_result['newpass'].encode('utf-8')).hexdigest() meta.Session.commit() h.flashmsg (u"Пароль был изменён") redirect_to(h.url_for(controller='usercontrol', action='list', id=None))
def edit(self, id=None): user = h.checkuser(id) h.requirerights(user_is=id) qdivs = meta.Session.query(model.Division).filter_by(deleted=False) divisions = qdivs.all() c.divisions = [[None, u"-- нет --"]] for i in divisions: c.divisions.append([i.id, i.title]) values = { 'login': user.login, 'name': user.name, 'surname': user.surname, 'patronymic': user.patronymic, 'email': user.email, 'phone': user.phone, 'creator': user.creator, 'performer': user.performer, 'appointer': user.appointer, 'responsible': user.responsible, 'chief': user.chief, 'admin': user.admin, 'operator': user.operator, 'div_id': user.div_id } c.curdiv = [user.div_id] return htmlfill.render(render("/users/edit.html"), values)
def add(self): h.requirerights("admin") divisions = meta.Session.query(model.Division).filter_by(deleted=False).order_by(model.Division.title).all() c.divisions = [[None, u"-- выберите подразделение --"]] for i in divisions: c.divisions.append([i.id, i.title]) return render ("/users/add.html")
def delete(self, id=None): h.requirerights("admin") user = h.checkuser(id) #meta.Session.delete(user) user.deleted = True meta.Session.commit() h.flashmsg (u"Пользователь был удалён") redirect_to(h.url_for(controller='usercontrol', action='list', id=None))
def delete(self, id): h.requirerights("admin") order = h.checkorder(id) # meta.Session.delete(order) order.deleted = True meta.Session.commit() h.flashmsg(u"Заявки № " + h.strong(order.id) + u" больше нет.") redirect_to(h.url_for(controller="order", action="list", id=None))
def create(self): h.requirerights("admin") div = model.Division() for key, value in self.form_result.items(): setattr(div, key, value) meta.Session.add(div) meta.Session.commit() h.flashmsg (u"Подразделение " + h.literal("«") + div.title + h.literal("»") + " добавлено.") redirect_to(h.url_for(controller='division', action='view', id=div.id))
def create(self): h.requirerights("admin") user = model.Person() password = md5(self.form_result['password'].encode('utf-8')).hexdigest() for key, value in self.form_result.items(): if key not in ["passcheck"]: setattr(user, key, value) user.password = password meta.Session.add(user) meta.Session.commit() h.flashmsg (u"Пользователь был добавлен.") redirect_to(h.url_for(controller='usercontrol', action='view', id=user.id))
def switch (self, id=None): h.requirerights("operator") userdivs =meta.Session.query(model.Person, model.Division).join(model.Division)\ .filter(and_(model.Person.deleted==False, model.Person.creator==True))\ .filter(or_(model.Person.chief==True, model.Person.responsible==True))\ .order_by(model.Division.title).order_by(model.Person.surname).all() #users = meta.Session.query(model.Person)\ # .filter_by(deleted=False).filter_by(creator=True).order_by(model.Person.login).order_by(model.Person.surname).all() #users.sort(key=lambda x:(x.division.title, x.surname)); #c.users = [[unicode(x.id), x.division.title + h.literal(" — ") + (h.name(x))] for x in users] c.users = [[unicode(x[0].id), x[1].title + h.literal(" — ") + (h.name(x[0]))] for x in userdivs] c.selected = id return render ("/users/switch.html")
def save(self, id=None): user = h.checkuser(id) h.requirerights(user_is=id) if session.has_key('admin') and session['admin']: for key, value in self.form_result.items(): if getattr(user, key) != value: setattr(user, key, value) else: for key, value in self.form_result.items(): if key in ['name', 'surname', 'patronymic', 'email', 'phone']: if getattr(user, key) != value: setattr(user, key, value) meta.Session.commit() h.flashmsg (u"Информация о пользователе была обновлена. ДА!") redirect_to(h.url_for(controller='usercontrol', action='view', id=user.id))
def add(self): '''Показ формы для создания заявки''' h.requirerights('creator') c.order = model.Order() work = meta.Session.query(model.Work).filter_by(deleted=False).order_by(model.Work.id).all() c.work = [[None, u" -- выберите вид работ -- "]] for i in work: c.work.append([i.id, i.title]) category = meta.Session.query(model.Category).filter_by(deleted=False).order_by(model.Category.id).all() c.category = [[None, u" -- выберите категорию -- "]] for i in category: c.category.append([i.id, i.title]) upcategory = meta.Session.query(model.UpperCategory).filter_by(deleted=False).order_by(model.UpperCategory.id).all() c.upcategory = [[None, u" -- выберите надкатегорию -- "]] for i in upcategory: c.upcategory.append([i.id, i.title]) c.curcat = c.curwork = c.upcat = [] return render ("/orders/add.html")
def create(self): """Метод непосредственного создания заявки в БД""" h.requirerights("creator") c.order = model.Order() # Создание заявки c.order.status = meta.Session.query(model.Status).get(1) # Заявка свободна! c.order.cust_id = session["division"] # Заявка исходит от подразделения текущего пользователя for key, value in self.form_result.items(): if key != "inventories": # Всё прочее, кроме инвентарников setattr(c.order, key, value) # тащим из формы прямо в базу # Не все могут помечать заявку важной if h.have_role("admin"): setattr(c.order, "urgent", bool(self.form_result["urgent"])) meta.Session.add(c.order) # Добавляем отношения заявка <-> инвентарники for inv in self.form_result["inventories"]: item = meta.Session.query(model.Inventory).get(inv) # <TODO text="Убрать добавление инвентарников в базу после введения проверок!"> if not item: item = model.Inventory() item.id = inv meta.Session.add(item) # </TODO> c.order.inventories.append(item) # Создаём первую запись в журнале - "заявка создана" act = model.Action() act.div_id = session["division"] perf = meta.Session.query(model.Person).get(session["id"]) act.performers.append(perf) if session.has_key("operator_id") and session["id"] != session["operator_id"]: act.status = meta.Session.query(model.Status).get(12) # Сообщаем, если создаёт оператор (и добавляем его) act.performers.append(meta.Session.query(model.Person).get(session["operator_id"])) else: act.status = meta.Session.query(model.Status).get(11) # Или если просто сам пользователь act.order_id = c.order.id meta.Session.add(act) # Обновляем создателей заявки c.order.customers.append(perf) # Готово, в базу! meta.Session.commit() h.flashmsg(u"Заявка № " + h.strong(c.order.id) + u" была добавлена.") redirect_to(h.url_for(controller="order", action="view", id=c.order.id))
def doswitch (self): h.requirerights("operator") h.refresh_account(self.form_result["user_id"], session.get("id")) h.flashmsg (u"Теперь вы под другим пользователем. Нажмите 'вернуться' вверху, чтобы вернуться в свою учётную запись.") redirect_to(h.url_for(controller="order", action="add", id=None))
def __before__ (self): h.requirerights("admin")