コード例 #1
0
ファイル: action.py プロジェクト: AmurSU/orderman
 def makethank (self):
     order = meta.Session.query(model.Order).filter_by(id=self.form_result['id']).first()
     if order is None:
         abort(404)
     if order.deleted:
         abort(410)
     # Теперь - проверка прав доступа (ответственный подразделения, подавшего эту заявку)
     if not (session.has_key('division') and session['division']):
         abort(401)
     if not (h.have_role('creator') and order.cust_id == session['division']):
         abort(403)
     thank = model.Action()
     thank.order_id = order.id
     thank.status = meta.Session.query(model.Status).get(14)
     thank.div_id = session['division']
     perf = meta.Session.query(model.Person).get(session['id'])
     thank.performers.append(perf)
     # Если претензию подаёт оператор, то и его добавим
     if session.has_key("operator_id") and session["id"] != session["operator_id"]:
         thank.performers.append(meta.Session.query(model.Person).get(session["operator_id"]))
     thank.description = self.form_result['description']
     meta.Session.add (thank)
     meta.Session.commit()
     h.flashmsg (u"Спасибо за " + h.literal("«") + u"спасибо" + h.literal("»") + "!")
     redirect_to(h.url_for(controller='order', action='view', id=order.id)) 
コード例 #2
0
ファイル: division.py プロジェクト: Envek/orderman
 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))
コード例 #3
0
ファイル: usercontrol.py プロジェクト: AmurSU/orderman
 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")
コード例 #4
0
ファイル: action.py プロジェクト: AmurSU/orderman
 def thank (self, id=None):
     # Если номер заявки не указан, то позволим выбрать.
     if id is not None:
         c.order = h.checkorder(id)
         if not session.has_key('division'):
             abort(401)
         elif c.order.cust_id != session['division']:
             abort(403)
         c.selectedorder = c.order.id
     else: c.selectedorder = None               
     if not h.have_role('creator'):
        abort(403)
     orders = meta.Session.query(model.Order).filter("status_id<>:value and cust_id=:customer").params(value=4, customer=session['division']).all()
     c.orders =[['', u'-- выберите заявку, выполнением которой вы остались довольны --']]
     for order in orders:
         if h.can_complain(order):
             if len(order.title) > 32:
                 order.title = order.title[:32] + u"…"
             str = unicode(order.id) + ". [" + order.work.title + h.literal(" &mdash; ") + order.category.title + "]: " + order.title
             c.orders.append([order.id, str])
     return render("/actions/thank.html")