コード例 #1
0
 def _get_mailbox(self, context={}):
     user_id = get_active_user()
     res = get_model("email.mailbox").search([["type", "=", "out"]],
                                             order="id")
     if not res:
         return None
     return res[0]
コード例 #2
0
 def create(self, vals, *args, **kw):
     new_id = super().create(vals, *args, **kw)
     obj = self.browse(new_id)
     project = obj.project_id
     contact = project.contact_id
     emails = obj.get_email_addresses()
     user_id = access.get_active_user()
     user = get_model("base.user").browse(user_id)
     if emails:
         body = obj.description
         vals = {
             "from_addr":
             "*****@*****.**",  # XXX
             "to_addrs":
             ",".join(emails),
             "subject":
             "New issue %s by %s: %s (Pri %s)" %
             (obj.number, user.name, obj.title, obj.priority),
             "body":
             body,
             "state":
             "to_send",
             "name_id":
             "contact,%s" % contact.id,
             "related_id":
             "issue,%s" % obj.id,
         }
         get_model("email.message").create(vals)
     return new_id
コード例 #3
0
 def create(self, vals, **kw):
     uid = access.get_active_user()
     try:
         access.set_active_user(1)
         return super().create(vals, **kw)
     finally:
         access.set_active_user(uid)
コード例 #4
0
ファイル: forgot_passwd.py プロジェクト: Sorawit123/netforce
 def send_email(self, ids, context={}):
     uid = access.get_active_user()
     try:
         access.set_active_user(1)
         obj = self.browse(ids[0])
         # XXX "=" should be changed to "=ilike" later
         res = get_model("base.user").search((["email", "=ilike", obj.email.strip()]))
         if not res:
             raise Exception("User with given email doesn't exist in database")
         request = context["request"]
         msg = "Somebody requested change of your Netforce password.\n\n"
         msg += "If you didn't do it, please ignore this message.\n\n"
         msg += "Otherwise if you want to reset your password click on the link below:\n\n"
         msg += "http://%s/ui#name=change_passwd&key=%s\n\n\n" % (request.host, obj.key)
         msg += "Regards,\n"
         msg += "Netforce Team"
         vals = {
             "type": "out",
             "from_addr": "*****@*****.**",
             "to_addrs": obj.email,
             "subject": "Netforce reset password request",
             "body": msg,
             "state": "to_send",
         }
         get_model("email.message").create(vals)
         return {
             "next": {
                 "name": "forgot_passwd_done"
             }
         }
     finally:
         access.set_active_user(uid)
コード例 #5
0
 def write(self, ids, vals, *args, **kw):
     super().write(ids, vals, *args, **kw)
     user_id = access.get_active_user()
     user = get_model("base.user").browse(user_id)
     for obj in self.browse(ids):
         project = obj.project_id
         contact = project.contact_id
         emails = obj.get_email_addresses()
         if emails:
             body = json.dumps(vals)
             vals = {
                 "from_addr":
                 "*****@*****.**",  # XXX
                 "to_addrs":
                 ",".join(emails),
                 "subject":
                 "Issue %s modified by %s: %s (Pri %s)" %
                 (obj.number, user.name, obj.title, obj.priority),
                 "body":
                 body,
                 "state":
                 "to_send",
                 "name_id":
                 "contact,%s" % contact.id,
                 "related_id":
                 "issue,%s" % obj.id,
             }
             get_model("email.message").create(vals)
コード例 #6
0
 def send_email(self, ids, context={}):
     uid = access.get_active_user()
     try:
         access.set_active_user(1)
         obj = self.browse(ids[0])
         # XXX "=" should be changed to "=ilike" later
         res = get_model("base.user").search(
             (["email", "=ilike", obj.email.strip()]))
         if not res:
             raise Exception(
                 "User with given email doesn't exist in database")
         request = context["request"]
         msg = "Somebody requested change of your Netforce password.\n\n"
         msg += "If you didn't do it, please ignore this message.\n\n"
         msg += "Otherwise if you want to reset your password click on the link below:\n\n"
         msg += "http://%s/ui#name=change_passwd&key=%s\n\n\n" % (
             request.host, obj.key)
         msg += "Regards,\n"
         msg += "Netforce Team"
         vals = {
             "type": "out",
             "from_addr": "*****@*****.**",
             "to_addrs": obj.email,
             "subject": "Netforce reset password request",
             "body": msg,
             "state": "to_send",
         }
         get_model("email.message").create(vals)
         return {"next": {"name": "forgot_passwd_done"}}
     finally:
         access.set_active_user(uid)
コード例 #7
0
 def send_from_template(self,
                        template=None,
                        from_addr=None,
                        to_addrs=None,
                        context={}):
     if not template:
         raise Exception("Missing template")
     res = get_model("email.template").search([["name", "=", template]])
     if not res:
         raise Exception("Template not found: %s" % template)
     tmpl_id = res[0]
     tmpl = get_model("email.template").browse(tmpl_id)
     trigger_model = context.get("trigger_model")
     if not trigger_model:
         raise Exception("Missing trigger model")
     tm = get_model(trigger_model)
     trigger_ids = context.get("trigger_ids")
     if trigger_ids is None:
         raise Exception("Missing trigger ids")
     user_id = get_active_user()
     if user_id:
         user = get_model("base.user").browse(user_id)
     else:
         user = None
     for obj in tm.browse(trigger_ids):
         tmpl_ctx = {"obj": obj, "user": user, "context": context}
         get_model("email.template").create_email([tmpl_id], tmpl_ctx)
コード例 #8
0
ファイル: user_pref.py プロジェクト: jzoldyck/netforce
 def default_get(self, field_names=None, context=None, **kw):
     user_id = get_active_user()
     set_active_user(1)
     user = get_model("base.user").browse(user_id)
     vals = {"name": user.name, "password": user.password, "email": user.email, "mobile": user.mobile}
     set_active_user(user_id)
     return vals
コード例 #9
0
ファイル: barcode_safe_in.py プロジェクト: jzoldyck/netforce
 def approve(self, ids, context={}):
     if not check_permission_other("production_safe_in"):
         raise Exception("Permission denied")
     obj = self.browse(ids)[0]
     user_id = get_active_user()
     obj.write({"approved_by_id": user_id})
     return {"next": {"name": "barcode_safe_in", "active_id": obj.id}, "flash": "DC to safe approved successfully"}
コード例 #10
0
 def create(self,vals,*args,**kw):
     new_id=super().create(vals,*args,**kw)
     obj=self.browse(new_id)
     user_id=access.get_active_user()
     user=get_model("base.user").browse(user_id)
     if obj.related_id._model=="issue":
         issue=obj.related_id
         project=issue.project_id
         contact=issue.contact_id
         emails=issue.get_email_addresses()
         subject="New message by %s for issue %s"%(user.name,issue.number)
         if obj.subject:
             subject+=": %s"%obj.subject
         if emails:
             vals={
                 "from_addr": "*****@*****.**", # XXX
                 "to_addrs": ",".join(emails),
                 "subject": subject,
                 "body": obj.body,
                 "state": "to_send",
                 "name_id": "contact,%s"%contact.id,
                 "related_id": "issue,%s"%issue.id,
             }
             get_model("email.message").create(vals)
     return new_id
コード例 #11
0
 def _get_number(self, context={}):
     user_id = get_active_user()
     set_active_user(1)
     seq_id = get_model("sequence").find_sequence(type="leave_request")
     if not seq_id:
         return None
     while 1:
         num = get_model("sequence").get_next_number(seq_id)
         user_id = get_active_user()
         set_active_user(1)
         res = self.search([["number", "=", num]])
         set_active_user(user_id)
         if not res:
             return num
         get_model("sequence").increment_number(seq_id)
     set_active_user(user_id)
コード例 #12
0
 def get(self):
     db = get_connection()
     try:
         cart_id = int(self.get_argument("cart_id"))
         print("cart_id", cart_id)
         cart = get_model("ecom.cart").browse(cart_id)
         set_active_company(1)
         user_id = get_active_user()
         website = self.context["website"]
         ctx = self.context
         ctx["cart"] = cart
         if not cart.is_paid and website.payment_slip_template_id and (cart.pay_method_id.id == website.bank_method_id.id):
             tmpl_name = website.payment_slip_template_id.name
             url = "/report?type=report_jasper&model=ecom.cart&convert=pdf&ids=[%d]&template=%s" % (
                 cart.id, tmpl_name)
             ctx["payment_slip_report_url"] = url
         content = render("ecom_order_confirmed", ctx)
         ctx["content"] = content
         html = render("cms_layout", ctx)
         self.write(html)
         db.commit()
     except:
         import traceback
         traceback.print_exc()
         db.rollback()
コード例 #13
0
 def approve(self, ids, context={}):
     print("ApproveWizard.approve", ids)
     obj = self.browse(ids)[0]
     pin_code = obj.pin_code
     obj.write({"pin_code": ""})  # XXX
     m = get_model(obj.approve_model)
     f = getattr(m, obj.approve_method, None)
     if not f:
         raise Exception("Invalid method %s of %s" %
                         (obj.approve_method, obj.approve_model))
     if not obj.approver_id:
         res = f([obj.approve_id], context=context)
     else:
         db = database.get_connection()
         res = db.get("SELECT pin_code FROM base_user WHERE id=%s",
                      obj.approver_id.id)
         enc_pin_code = res.pin_code
         if not utils.check_password(pin_code, enc_pin_code):
             raise Exception("Wrong PIN")
         user_id = get_active_user()
         set_active_user(obj.approver_id.id)
         try:
             res = f([obj.approve_id], context=context)
         finally:
             set_active_user(user_id)
     return res
コード例 #14
0
 def get(self):
     db = get_connection()
     try:
         cart_id = int(self.get_argument("cart_id"))
         print("cart_id", cart_id)
         cart = get_model("ecom.cart").browse(cart_id)
         set_active_company(1)
         user_id = get_active_user()
         website = self.context["website"]
         ctx = self.context
         ctx["cart"] = cart
         if not cart.is_paid and website.payment_slip_template_id and (
                 cart.pay_method_id.id == website.bank_method_id.id):
             tmpl_name = website.payment_slip_template_id.name
             url = "/report?type=report_jasper&model=ecom.cart&convert=pdf&ids=[%d]&template=%s" % (
                 cart.id, tmpl_name)
             ctx["payment_slip_report_url"] = url
         content = render("ecom_order_confirmed", ctx)
         ctx["content"] = content
         html = render("cms_layout", ctx)
         self.write(html)
         db.commit()
     except:
         import traceback
         traceback.print_exc()
         db.rollback()
コード例 #15
0
ファイル: forgot_passwd.py プロジェクト: Sorawit123/netforce
 def create(self, vals, **kw):
     uid = access.get_active_user()
     try:
         access.set_active_user(1)
         return super().create(vals, **kw)
     finally:
         access.set_active_user(uid)
コード例 #16
0
ファイル: message.py プロジェクト: Sorawit123/netforce
 def get_open_dummy(self, ids, context={}):
     vals = {}
     user_id = get_active_user()
     for obj in self.browse(ids):
         if user_id == obj.to_id.id:
             obj.write({"state": "opened"})
         vals[obj.id] = True
     return vals
コード例 #17
0
ファイル: stock_picking.py プロジェクト: oncedayly/netforce
 def pending(self, ids, context={}):
     user_id = get_active_user()
     for obj in self.browse(ids):
         for move in obj.lines:
             move.write({"state": "pending", "date": obj.date})
             if obj.related_id and not move.related_id:
                 move.write({"related_id":"%s,%d"%(obj.related_id._model,obj.related_id.id)})
         obj.write({"state": "pending", "pending_by_id": user_id})
コード例 #18
0
ファイル: field_default.py プロジェクト: Sorawit123/netforce
 def get_default(self, model, field, context={}):
     user_id = get_active_user()
     res = self.search([["user_id", "=", user_id], ["model", "=", model], ["field", "=", field]])
     if not res:
         return None
     obj_id = res[0]
     obj = self.browse(obj_id)
     return obj.value
コード例 #19
0
 def get_open_dummy(self, ids, context={}):
     vals = {}
     user_id = get_active_user()
     for obj in self.browse(ids):
         if user_id == obj.to_id.id:
             obj.write({"state": "opened"})
         vals[obj.id] = True
     return vals
コード例 #20
0
 def delete(self, ids, **kw):
     prod_ids = []
     for obj in self.browse(ids):
         prod_ids.append(obj.product_id.id)
     super().delete(ids, **kw)
     user_id = get_active_user()
     set_active_user(1)
     get_model("product").write(prod_ids, {"update_balance": True})
     set_active_user(user_id)
コード例 #21
0
 def get_default(self, model, field, context={}):
     user_id = get_active_user()
     res = self.search([["user_id", "=", user_id], ["model", "=", model],
                        ["field", "=", field]])
     if not res:
         return None
     obj_id = res[0]
     obj = self.browse(obj_id)
     return obj.value
コード例 #22
0
ファイル: stock_move.py プロジェクト: bank-netforce/netforce
 def delete(self, ids, **kw):
     prod_ids = []
     for obj in self.browse(ids):
         prod_ids.append(obj.product_id.id)
     super().delete(ids, **kw)
     user_id = get_active_user()
     set_active_user(1)
     get_model("product").write(prod_ids, {"update_balance": True})
     set_active_user(user_id)
コード例 #23
0
 def send(self, ids, context={}):
     obj = self.browse(ids)[0]
     if not obj.email_template_id:
         raise Exception("Missing email template")
     if obj.custom_template_id:
         template = obj.custom_template_id.name
         template_format = obj.custom_template_id.format
     elif obj.template:
         template = obj.template
         template_format = obj.template_format
     elif obj.template_method:
         m = get_model(obj.print_model)
         f = getattr(m, obj.template_method, None)
         if not f:
             raise Exception("Invalid method %s of %s" %
                             (obj.template_method, obj.print_model))
         template = f([obj.print_id], context=context)
         template_format = obj.template_format
     report_fname = report_render_to_file(model=obj.print_model,
                                          ids=[obj.print_id],
                                          template=template,
                                          template_format=template_format,
                                          out_format=obj.out_format)
     if not obj.email_contact_field:
         raise Exception("Missing email contact field")
     contact = get_model(obj.print_model).browse(
         obj.print_id)[obj.email_contact_field]
     if not contact:
         raise Exception("Missing contact")
     if not contact.email:
         raise Exception("Missing contact email (%s)" % contact.name)
     user_id = get_active_user()
     user = get_model("base.user").browse(user_id)
     settings = get_model("settings").browse(1)
     pobj = get_model(obj.print_model).browse(obj.print_id)
     attachments = []
     attachments.append({
         "file": report_fname,
     })
     data = {
         "user": user,
         "settings": settings,
         "obj": pobj,
         "attachments": attachments,
     }
     email_id = obj.email_template_id.create_email(
         data,
         related_id="%s,%d" % (obj.print_model, obj.print_id),
         state=obj.email_state)
     return {
         "next": {
             "name": "email",
             "mode": "form",
             "active_id": email_id,
         },
     }
コード例 #24
0
ファイル: field_default.py プロジェクト: Sorawit123/netforce
 def set_default(self, model, field, value, context={}):
     self.clear_default(model, field)
     user_id = get_active_user()
     vals = {
         "user_id": user_id,
         "model": model,
         "field": field,
         "value": value,
     }
     self.create(vals)
コード例 #25
0
ファイル: sale_return.py プロジェクト: jzoldyck/netforce
 def approve(self, ids, context={}):
     if not check_permission_other("sale_approve_done"):
         raise Exception("Permission denied")
     obj = self.browse(ids)[0]
     user_id = get_active_user()
     obj.write({"approved_by_id": user_id})
     return {
         "next": {"name": "sale", "mode": "form", "active_id": obj.id},
         "flash": "Sales order approved successfully",
     }
コード例 #26
0
ファイル: user_pref.py プロジェクト: jzoldyck/netforce
 def save_changes(self, ids, context={}):
     obj = self.browse(ids)[0]
     check_password(obj.password)
     vals = {"name": obj.name, "password": obj.password, "email": obj.email, "mobile": obj.mobile}
     user_id = get_active_user()
     set_active_user(1)
     get_model("base.user").write([user_id], vals)
     obj.write({"password": ""})
     set_active_user(user_id)
     return {"next": "_close"}
コード例 #27
0
ファイル: improve_leave.py プロジェクト: Sorawit123/netforce
 def migrate(self):
     user_id=get_active_user()
     set_active_user(1)
     for leave in get_model("hr.leave").search_browse([]):
         if leave.time_from and leave.time_to:
             leave.write({
                 'start_date': '%s %s:00'%(leave.start_date[0:10],leave.time_from.replace(".",":")),
                 'end_date': '%s %s:00'%(leave.end_date[0:10],leave.time_to.replace(".",":")),
             })
     set_active_user(user_id)
コード例 #28
0
 def reject(self, ids, context={}):
     user_id = get_active_user()
     user = get_model("base.user").browse(user_id)
     obj = self.browse(ids)[0]
     obj.write({"state": "canceled"})
     vals = {
         "related_id": "room.reserve,%s" % obj.id,
         "body": "Rejected by %s" % user.name,
     }
     get_model("message").create(vals)
コード例 #29
0
ファイル: room_reserve.py プロジェクト: Sorawit123/netforce
 def reject(self, ids, context={}):
     user_id = get_active_user()
     user = get_model("base.user").browse(user_id)
     obj = self.browse(ids)[0]
     obj.write({"state": "canceled"})
     vals = {
         "related_id": "room.reserve,%s" % obj.id,
         "body": "Rejected by %s" % user.name,
     }
     get_model("message").create(vals)
コード例 #30
0
ファイル: improve_payroll.py プロジェクト: jzoldyck/netforce
 def migrate(self):
     user_id = get_active_user()
     set_active_user(1)
     for payslip in get_model("hr.payslip").search_browse([]):
         if not payslip.state:
             payslip.write({"state": "draft"})
     for payrun in get_model("hr.payrun").search_browse([]):
         if not payrun.state:
             payrun.write({"state": "draft"})
     set_active_user(user_id)
コード例 #31
0
 def set_default(self, model, field, value, context={}):
     self.clear_default(model, field)
     user_id = get_active_user()
     vals = {
         "user_id": user_id,
         "model": model,
         "field": field,
         "value": value,
     }
     self.create(vals)
コード例 #32
0
 def post(self):
     db = get_connection()
     try:
         try:
             fields = ["old_password", "new_password", "re_password"]
             field_errors = {}
             form_vals = {}
             for n in fields:
                 v = self.get_argument(n, None)
                 form_vals[n] = v
                 if not v:
                     field_errors[n] = True
             if field_errors:
                 raise Exception("Some required fields are missing")
             user_id = get_active_user()
             if not user_id:
                 raise Exception("No user")
             user = get_model("base.user").browse(user_id)
             user_id = get_model("base.user").check_password(
                 user.email, form_vals["old_password"])
             if not user_id:
                 raise Exception("Wrong password")
             if len(form_vals["new_password"]) < 6:
                 raise Exception(
                     "New password must be more than 6 character")
             if form_vals["new_password"] != form_vals["re_password"]:
                 raise Exception(
                     "New password does not match confirmed password")
             get_model("base.user").write(
                 [user_id], {"password": form_vals["new_password"]})
             get_model("base.user").trigger(
                 [user_id],
                 "change_password",
                 context={"new_password": form_vals["new_password"]})
             self.redirect(
                 "/cms_account?message=Your%20password%20has%20been%20changed"
             )
             db.commit()
         except Exception as e:
             db = get_connection()
             error_message = str(e)
             ctx = self.context
             ctx["form_vals"] = form_vals
             ctx["error_message"] = error_message
             ctx["field_errors"] = field_errors
             content = render("cms_change_pass", ctx)
             ctx["content"] = content
             html = render("cms_layout", ctx)
             self.write(html)
             db.commit()
     except:
         import traceback
         traceback.print_exc()
         db.rollback()
コード例 #33
0
 def default_get(self, field_names=None, context=None, **kw):
     user_id = get_active_user()
     set_active_user(1)
     user = get_model("base.user").browse(user_id)
     vals = {
         "name": user.name,
         "password": user.password,
         "email": user.email,
         "mobile": user.mobile,
     }
     set_active_user(user_id)
     return vals
コード例 #34
0
 def allow_record(self, context={}):
     user_id=get_active_user()
     user=get_model("base.user").browse(user_id)
     limit=user.limit_inspect or 0
     res=self.search_browse([['user_id','=',user_id]])
     if res:
         obj=res[0]
         count=obj.record_count+1
         if count > limit:
             return False, limit, count
     count=self.increase()
     return True, limit, count
コード例 #35
0
 def _get_number(self, context={}):
     while 1:
         num = get_model("sequence").get_number(type="job")
         if not num:
             return None
         user_id = get_active_user()
         set_active_user(1)
         res = self.search([["number", "=", num]])
         set_active_user(user_id)
         if not res:
             return num
         get_model("sequence").increment(type="job")
コード例 #36
0
 def pending(self, ids, context={}):
     user_id = get_active_user()
     for obj in self.browse(ids):
         for move in obj.lines:
             move.write({"state": "pending", "date": obj.date})
             if obj.related_id and not move.related_id:
                 move.write({
                     "related_id":
                     "%s,%d" % (obj.related_id._model, obj.related_id.id)
                 })
         obj.write({"state": "pending", "pending_by_id": user_id})
         obj.check_stock()
コード例 #37
0
 def approve(self, ids, context={}):
     if not check_permission_other("stock_transfer"):
         raise Exception("Permission denied")
     obj = self.browse(ids)[0]
     user_id = get_active_user()
     obj.write({"approved_by_id": user_id})
     return {
         "next": {
             "name": "barcode_transfer",
             "active_id": obj.id,
         },
         "flash": "Stock transfer approved successfully",
     }
コード例 #38
0
 def set_done(self,ids,context={}):
     user_id=get_active_user()
     for obj in self.browse(ids):
         move_ids=[]
         for line in obj.lines:
             move_ids.append(line.id)
         desc=obj.number
         get_model("stock.move").write(move_ids,vals={"date":obj.date,"journal_id":obj.journal_id.id,"ref":obj.number},context=context)
         get_model("stock.move").set_done(move_ids,context=context)
         obj.write({"state":"done","done_by_id":user_id},context=context)
         obj.set_currency_rate()
     self.check_order_qtys(ids)
     self.trigger(ids,"done")
コード例 #39
0
 def write(self, ids, vals, context={}):
     prod_ids = []
     for obj in self.browse(ids):
         prod_ids.append(obj.product_id.id)
     super().write(ids, vals, context=context)
     prod_id = vals.get("product_id")
     if prod_id:
         prod_ids.append(prod_id)
     self.function_store(ids)
     user_id = get_active_user()
     set_active_user(1)
     get_model("product").write(prod_ids, {"update_balance": True})
     set_active_user(user_id)
コード例 #40
0
 def approve(self, ids, context={}):
     if not check_permission_other("production_safe_in"):
         raise Exception("Permission denied")
     obj = self.browse(ids)[0]
     user_id = get_active_user()
     obj.write({"approved_by_id": user_id})
     return {
         "next": {
             "name": "barcode_safe_in",
             "active_id": obj.id,
         },
         "flash": "DC to safe approved successfully",
     }
コード例 #41
0
 def approve(self, ids, context={}):
     if not check_permission_other("production_approve_split"):
         raise Exception("Permission denied")
     obj = self.browse(ids)[0]
     user_id = get_active_user()
     obj.write({"approved_by_id": user_id})
     return {
         "next": {
             "name": "split_production",
             "active_id": obj.id,
         },
         "flash": "Split order approved successfully",
     }
コード例 #42
0
ファイル: stock_move.py プロジェクト: bank-netforce/netforce
 def write(self, ids, vals, context={}):
     prod_ids = []
     for obj in self.browse(ids):
         prod_ids.append(obj.product_id.id)
     super().write(ids, vals, context=context)
     prod_id = vals.get("product_id")
     if prod_id:
         prod_ids.append(prod_id)
     self.function_store(ids)
     user_id = get_active_user()
     set_active_user(1)
     get_model("product").write(prod_ids, {"update_balance": True})
     set_active_user(user_id)
コード例 #43
0
 def qc_approve_done(self, ids, context={}):
     if not check_permission_other("production_approve_qc"):
         raise Exception("Permission denied")
     obj = self.browse(ids)[0]
     user_id = get_active_user()
     obj.write({"done_qc_approved_by_id": user_id})
     return {
         "next": {
             "name": "production",
             "mode": "form",
             "active_id": obj.id,
         },
         "flash": "Production order QC completion approved successfully",
     }
コード例 #44
0
 def approve_done(self, ids, context={}):
     if not check_permission_other("job_approve_done"):
         raise Exception("Permission denied")
     obj = self.browse(ids)[0]
     user_id = get_active_user()
     obj.write({"done_approved_by_id": user_id})
     return {
         "next": {
             "name": "job",
             "mode": "form",
             "active_id": obj.id,
         },
         "flash": "Service order completion approved successfully",
     }
コード例 #45
0
 def migrate(self):
     user_id = get_active_user()
     set_active_user(1)
     for leave in get_model("hr.leave").search_browse([]):
         if leave.time_from and leave.time_to:
             leave.write({
                 'start_date':
                 '%s %s:00' % (leave.start_date[0:10],
                               leave.time_from.replace(".", ":")),
                 'end_date':
                 '%s %s:00' %
                 (leave.end_date[0:10], leave.time_to.replace(".", ":")),
             })
     set_active_user(user_id)
コード例 #46
0
 def migrate(self):
     user_id = get_active_user()
     set_active_user(1)
     for payslip in get_model("hr.payslip").search_browse([]):
         if not payslip.state:
             payslip.write({
                 'state': 'draft',
             })
     for payrun in get_model("hr.payrun").search_browse([]):
         if not payrun.state:
             payrun.write({
                 'state': 'draft',
             })
     set_active_user(user_id)
コード例 #47
0
ファイル: stock_move.py プロジェクト: bank-netforce/netforce
 def create(self, vals, context={}):
     pick_id = vals.get("picking_id")
     if pick_id:
         pick = get_model("stock.picking").browse(pick_id)
         vals["date"] = pick.date
         vals["picking_id"] = pick.id
         vals["journal_id"] = pick.journal_id.id
     new_id = super().create(vals, context=context)
     self.function_store([new_id])
     prod_id = vals["product_id"]
     user_id = get_active_user()
     set_active_user(1)
     get_model("product").write([prod_id], {"update_balance": True})
     set_active_user(user_id)
     return new_id
コード例 #48
0
ファイル: ecom2_cart.py プロジェクト: anastue/netforce
 def _get_number(self, context={}):
     seq_id = get_model("sequence").find_sequence(type="ecom_cart")
     if not seq_id:
         return None
     while 1:
         num = get_model("sequence").get_next_number(seq_id, context=context)
         if not num:
             return None
         user_id = access.get_active_user()
         access.set_active_user(1)
         res = self.search([["number", "=", num]])
         access.set_active_user(user_id)
         if not res:
             return num
         get_model("sequence").increment_number(seq_id, context=context)
コード例 #49
0
 def create(self, vals, context={}):
     pick_id = vals.get("picking_id")
     if pick_id:
         pick = get_model("stock.picking").browse(pick_id)
         vals["date"] = pick.date
         vals["picking_id"] = pick.id
         vals["journal_id"] = pick.journal_id.id
     new_id = super().create(vals, context=context)
     self.function_store([new_id])
     prod_id = vals["product_id"]
     user_id = get_active_user()
     set_active_user(1)
     get_model("product").write([prod_id], {"update_balance": True})
     set_active_user(user_id)
     return new_id
コード例 #50
0
ファイル: send_wizard.py プロジェクト: Sorawit123/netforce
 def send(self, ids, context={}):
     obj = self.browse(ids)[0]
     if not obj.email_template_id:
         raise Exception("Missing email template")
     if obj.custom_template_id:
         template = obj.custom_template_id.name
         template_format = obj.custom_template_id.format
     elif obj.template:
         template = obj.template
         template_format = obj.template_format
     elif obj.template_method:
         m = get_model(obj.print_model)
         f = getattr(m, obj.template_method, None)
         if not f:
             raise Exception("Invalid method %s of %s" % (obj.template_method, obj.print_model))
         template = f([obj.print_id], context=context)
         template_format = obj.template_format
     report_fname = report_render_to_file(
         model=obj.print_model, ids=[obj.print_id], template=template, template_format=template_format, out_format=obj.out_format)
     if not obj.email_contact_field:
         raise Exception("Missing email contact field")
     contact = get_model(obj.print_model).browse(obj.print_id)[obj.email_contact_field]
     if not contact:
         raise Exception("Missing contact")
     if not contact.email:
         raise Exception("Missing contact email (%s)" % contact.name)
     user_id = get_active_user()
     user = get_model("base.user").browse(user_id)
     settings = get_model("settings").browse(1)
     pobj = get_model(obj.print_model).browse(obj.print_id)
     attachments = []
     attachments.append({
         "file": report_fname,
     })
     data = {
         "user": user,
         "settings": settings,
         "obj": pobj,
         "attachments": attachments,
     }
     email_id = obj.email_template_id.create_email(data, related_id="%s,%d" % (obj.print_model, obj.print_id))
     return {
         "next": {
             "name": "email",
             "mode": "form",
             "active_id": email_id,
         },
     }
コード例 #51
0
 def do_reopen(self, ids, context={}):
     user_id = get_active_user()
     user = get_model("base.user").browse(user_id)
     res = get_model("hr.employee").search([["user_id", "=", user_id]])
     if res:
         emp_id = res[0]
     for obj in self.browse(ids):
         assert obj.state in ("rejected", "approved")
         if res and obj.employee_id.id == emp_id:
             if obj.employee_id.approver_id:
                 raise Exception("User %s is not authorized to reopen his own leave requests" % user.name)
         else:
             if obj.employee_id.approver_id.id != user_id:
                 raise Exception("User %s is not authorized to reopen leave requests of employee %s" %
                                 (user.name, obj.employee_id.name_get()[0][1]))
         obj.write({"state": "waiting_approval"})
コード例 #52
0
 def _get_number(self, context={}):
     seq_id = get_model("sequence").find_sequence(type="ecom_cart")
     if not seq_id:
         return None
     while 1:
         num = get_model("sequence").get_next_number(seq_id,
                                                     context=context)
         if not num:
             return None
         user_id = access.get_active_user()
         access.set_active_user(1)
         res = self.search([["number", "=", num]])
         access.set_active_user(user_id)
         if not res:
             return num
         get_model("sequence").increment_number(seq_id, context=context)
コード例 #53
0
 def onchange_sequence(self, context={}):
     data = context["data"]
     context['date'] = data['date']
     seq_id = data["sequence_id"]
     if not seq_id:
         seq_id = get_model("sequence").find_sequence(type="purchase_order")
     while 1:
         num = get_model("sequence").get_next_number(seq_id, context=context)
         user_id = get_active_user()
         set_active_user(1)
         res = self.search([["number", "=", num]])
         set_active_user(user_id)
         if not res:
             break
         get_model("sequence").increment_number(seq_id, context=context)
     data["number"] = num
     return data
コード例 #54
0
 def increase(self):
     user_id=get_active_user()
     res=self.search_browse([['user_id','=',user_id]])
     count=0
     while not count:
         if res:
             obj=res[0]
             count=(obj.record_count or 0)+1
             obj.write({
                 'record_count': count,
             })
         else:
             count=1
             self.create({
                 'record_count':count,
             })
     return count
コード例 #55
0
 def gen_tax_no(self, context={}):
     seq_id = get_model("sequence").find_sequence(type="wht_no",
                                                  context=context)
     if not seq_id:
         return None
     while 1:
         num = get_model("sequence").get_next_number(seq_id,
                                                     context=context)
         if not num:
             return None
         user_id = get_active_user()
         set_active_user(1)
         res = self.search([["tax_invoice", "=", num]])
         set_active_user(user_id)
         if not res:
             return num
         get_model("sequence").increment_number(seq_id, context=context)
コード例 #56
0
 def post(self):
     db=get_connection()
     try:
         try:
             fields=["old_password","new_password","re_password"]
             field_errors={}
             form_vals={}
             for n in fields:
                 v=self.get_argument(n,None)
                 form_vals[n]=v
                 if not v:
                     field_errors[n]=True
             if field_errors:
                 raise Exception("Some required fields are missing")
             user_id=get_active_user()
             if not user_id:
                 raise Exception("No user")
             user=get_model("base.user").browse(user_id)
             user_id=get_model("base.user").check_password(user.email,form_vals["old_password"])
             if not user_id:
                 raise Exception("Wrong password") 
             if len(form_vals["new_password"])<6:
                 raise Exception("New password must be more than 6 character")
             if form_vals["new_password"]!=form_vals["re_password"]:
                 raise Exception("New password does not match confirmed password")
             get_model("base.user").write([user_id],{"password":form_vals["new_password"]})
             get_model("base.user").trigger([user_id],"change_password",context={"new_password": form_vals["new_password"]})
             self.redirect("/cms_account?message=Your%20password%20has%20been%20changed")
             db.commit()
         except Exception as e:
             db=get_connection()
             error_message=str(e)
             ctx=self.context
             ctx["form_vals"]=form_vals
             ctx["error_message"]=error_message
             ctx["field_errors"]=field_errors
             content=render("cms_change_pass",ctx)
             ctx["content"]=content
             html=render("cms_layout",ctx)
             self.write(html)
             db.commit()
     except:
         import traceback
         traceback.print_exc()
         db.rollback()