Пример #1
0
 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")
Пример #2
0
 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))
Пример #3
0
 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)
Пример #4
0
 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")
Пример #5
0
 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))
Пример #6
0
 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))
Пример #7
0
 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))
Пример #8
0
 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))
Пример #9
0
 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")
Пример #10
0
 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))
Пример #11
0
 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")
Пример #12
0
 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))
Пример #13
0
 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))
Пример #14
0
 def __before__ (self):
     h.requirerights("admin")