def update_user_from_form(dbo, username, post): """ Updates a user record from posted form data Uses the roles key (which should be a comma separated list of role ids) to create userrole records. """ userid = post.integer("userid") sql = db.make_update_sql("users", "ID=%d" % userid, ( ( "RealName", post.db_string("realname")), ( "EmailAddress", post.db_string("email")), ( "SuperUser", post.db_integer("superuser")), ( "OwnerID", post.db_integer("person")), ( "SiteID", post.db_integer("site")), ( "LocationFilter", post.db_string("locationfilter")), ( "IPRestriction", post.db_string("iprestriction")) )) preaudit = db.query(dbo, "SELECT * FROM users WHERE ID = %d" % userid) db.execute(dbo, sql) postaudit = db.query(dbo, "SELECT * FROM users WHERE ID = %d" % userid) audit.edit(dbo, username, "users", userid, audit.map_diff(preaudit, postaudit, [ "USERNAME", ])) db.execute(dbo, "DELETE FROM userrole WHERE UserID = %d" % userid) roles = post["roles"].strip() if roles != "": for rid in roles.split(","): if rid.strip() != "": db.execute(dbo, "INSERT INTO userrole VALUES (%d, %d)" % (userid, int(rid)))
def update_field_from_form(dbo, username, post): """ Updates an additional field record. All aspects of an additional field can be changed after creation since only the ID ties things together. """ aid = post.integer("id") sql = db.make_update_sql( "additionalfield", "ID=%d" % aid, ( ("FieldName", post.db_string("name")), ("FieldLabel", post.db_string("label")), ("ToolTip", post.db_string("tooltip")), ("LookupValues", post.db_string("lookupvalues")), ("Mandatory", post.db_boolean("mandatory")), ("FieldType", post.db_integer("type")), ("LinkType", post.db_integer("link")), ("DisplayIndex", post.db_integer("displayindex")), ), ) preaudit = db.query(dbo, "SELECT * FROM additionalfield WHERE ID = %d" % aid) db.execute(dbo, sql) postaudit = db.query(dbo, "SELECT * FROM additionalfield WHERE ID = %d" % aid) audit.edit(dbo, username, "additionalfield", audit.map_diff(preaudit, postaudit))
def update_stocklevel_from_form(dbo, post, username): """ Updates a stocklevel item from a dialog. The post should include the ID of the stocklevel to adjust and a usage record will be written so usage data should be sent too. """ l = dbo.locale slid = post.integer("stocklevelid") if post["name"] == "": raise utils.ASMValidationError(_("Stock level must have a name", l)) if post["unitname"] == "": raise utils.ASMValidationError(_("Stock level must have a unit", l)) preaudit = db.query(dbo, "SELECT * FROM stocklevel WHERE ID = %d" % slid) if len(preaudit) == 0: raise utils.ASMValidationError("stocklevel %d does not exist, cannot adjust" % slid) db.execute(dbo, db.make_update_sql("stocklevel", "ID=%d" % slid, ( ( "Name", post.db_string("name") ), ( "Description", post.db_string("description") ), ( "StockLocationID", post.db_integer("location") ), ( "UnitName", post.db_string("unitname") ), ( "Total", post.db_floating("total") ), ( "Balance", post.db_floating("balance") ), ( "Expiry", post.db_date("expiry") ), ( "BatchNumber", post.db_string("batchnumber") ), ( "Cost", post.db_integer("cost") ), ( "UnitPrice", post.db_integer("unitprice") ) ))) postaudit = db.query(dbo, "SELECT * FROM stocklevel WHERE ID = %d" % slid) diff = postaudit[0]["BALANCE"] - preaudit[0]["BALANCE"] if diff != 0: insert_stockusage(dbo, username, slid, diff, post.date("usagedate"), post.integer("usagetype"), post["comments"]) audit.edit(dbo, username, "animalcontrol", slid, audit.map_diff(preaudit, postaudit))
def update_user_from_form(dbo, username, data): """ Updates a user record from posted form data Uses the roles key (which should be a comma separated list of role ids) to create userrole records. """ userid = utils.df_ki(data, "userid") sql = db.make_update_sql( "users", "ID=%d" % userid, (("RealName", utils.df_t(data, "realname")), ("EmailAddress", utils.df_t(data, "email")), ("SuperUser", utils.df_s(data, "superuser")), ("OwnerID", utils.df_s(data, "person")), ("LocationFilter", utils.df_t(data, "locationfilter")), ("IPRestriction", utils.df_t(data, "iprestriction")))) preaudit = db.query(dbo, "SELECT * FROM users WHERE ID = %d" % userid) db.execute(dbo, sql) postaudit = db.query(dbo, "SELECT * FROM users WHERE ID = %d" % userid) audit.edit(dbo, username, "users", audit.map_diff(preaudit, postaudit, [ "USERNAME", ])) db.execute(dbo, "DELETE FROM userrole WHERE UserID = %d" % userid) if utils.df_ki(data, "issuperuser") == 0: roles = utils.df_ks(data, "roles").strip() if roles != "": for rid in roles.split(","): if rid.strip() != "": db.execute( dbo, "INSERT INTO userrole VALUES (%d, %d)" % (userid, int(rid)))
def update_media_notes(dbo, username, mid, notes): sql = db.make_update_sql("media", "ID=%d" % int(mid), ( ("MediaNotes", db.ds(notes)), ("MediaName", "MediaName"), ("UpdatedSinceLastPublish", db.di(1)), )) db.execute(dbo, sql) audit.edit(dbo, username, "media", str(mid) + "notes => " + notes)
def update_media_notes(dbo, username, mid, notes): sql = db.make_update_sql("media", "ID=%d" % int(mid), ( ( "MediaNotes", db.ds(notes)), ( "MediaName", "MediaName" ), ( "UpdatedSinceLastPublish", db.di(1)), )) db.execute(dbo, sql) audit.edit(dbo, username, "media", str(mid) + "notes => " + notes)
def update_user_settings(dbo, username, email = "", realname = "", locale = "", theme = ""): userid = db.query_int(dbo, "SELECT ID FROM users WHERE Username = '******'" % username) sql = db.make_update_sql("users", "ID=%d" % userid, ( ( "RealName", db.ds(realname) ), ( "EmailAddress", db.ds(email) ), ( "ThemeOverride", db.ds(theme) ), ( "LocaleOverride", db.ds(locale) ) )) preaudit = db.query(dbo, "SELECT * FROM users WHERE ID = %d" % int(userid))[0] db.execute(dbo, sql) postaudit = db.query(dbo, "SELECT * FROM users WHERE ID = %d" % int(userid))[0] audit.edit(dbo, username, "users", audit.map_diff(preaudit, postaudit, [ "USERNAME", ]))
def update_diarytaskhead_from_form(dbo, username, data): """ Updates a diary task header from form data """ tid = utils.df_ki(data, "diarytaskid") sql = db.make_update_sql("diarytaskhead", "ID=%d" % tid, (("Name", utils.df_t(data, "name")), ("RecordType", utils.df_s(data, "type")))) preaudit = db.query(dbo, "SELECT * FROM diarytaskhead WHERE ID=%d" % tid) db.execute(dbo, sql) postaudit = db.query(dbo, "SELECT * FROM diarytaskhead WHERE ID=%d" % tid) audit.edit(dbo, username, "diarytaskhead", audit.map_diff(preaudit, postaudit))
def update_diarytaskhead_from_form(dbo, username, post): """ Updates a diary task header from form data """ tid = post.integer("diarytaskid") sql = db.make_update_sql("diarytaskhead", "ID=%d" % tid, ( ( "Name", post.db_string("name")), ( "RecordType", post.db_integer("type")) )) preaudit = db.query(dbo, "SELECT * FROM diarytaskhead WHERE ID=%d" % tid) db.execute(dbo, sql) postaudit = db.query(dbo, "SELECT * FROM diarytaskhead WHERE ID=%d" % tid) audit.edit(dbo, username, "diarytaskhead", tid, audit.map_diff(preaudit, postaudit))
def update_diarytaskhead_from_form(dbo, username, post): """ Updates a diary task header from form data """ tid = post.integer("diarytaskid") sql = db.make_update_sql("diarytaskhead", "ID=%d" % tid, (("Name", post.db_string("name")), ("RecordType", post.db_integer("type")))) preaudit = db.query(dbo, "SELECT * FROM diarytaskhead WHERE ID=%d" % tid) db.execute(dbo, sql) postaudit = db.query(dbo, "SELECT * FROM diarytaskhead WHERE ID=%d" % tid) audit.edit(dbo, username, "diarytaskhead", audit.map_diff(preaudit, postaudit))
def update_diarytaskhead_from_form(dbo, username, data): """ Updates a diary task header from form data """ tid = utils.df_ki(data, "diarytaskid") sql = db.make_update_sql("diarytaskhead", "ID=%d" % tid, ( ( "Name", utils.df_t(data, "name")), ( "RecordType", utils.df_s(data, "type")) )) preaudit = db.query(dbo, "SELECT * FROM diarytaskhead WHERE ID=%d" % tid) db.execute(dbo, sql) postaudit = db.query(dbo, "SELECT * FROM diarytaskhead WHERE ID=%d" % tid) audit.edit(dbo, username, "diarytaskhead", audit.map_diff(preaudit, postaudit))
def update_role_from_form(dbo, username, post): """ Updates a role record from posted form data """ roleid = post.integer("roleid") sql = db.make_update_sql("role", "ID=%d" % roleid, ( ( "Rolename", post.db_string("rolename")), ( "SecurityMap", post.db_string("securitymap")) )) preaudit = db.query(dbo, "SELECT * FROM role WHERE ID = %d" % roleid) db.execute(dbo, sql) postaudit = db.query(dbo, "SELECT * FROM role WHERE ID = %d" % roleid) audit.edit(dbo, username, "role", roleid, audit.map_diff(preaudit, postaudit, [ "ROLENAME", ]))
def update_diarytaskdetail_from_form(dbo, username, data): """ Updates a diary task detail from form data """ did = utils.df_ki(data, "diarytaskdetailid") sql = db.make_update_sql("diarytaskdetail", "ID=%d" % did, ( ( "DayPivot", utils.df_s(data, "pivot")), ( "WhoFor", utils.df_t(data, "for")), ( "Subject", utils.df_t(data, "subject")), ( "Note", utils.df_t(data, "note")) )) preaudit = db.query(dbo, "SELECT * FROM diarytaskdetail WHERE ID=%d" % did) db.execute(dbo, sql) postaudit = db.query(dbo, "SELECT * FROM diarytaskdetail WHERE ID=%d" % did) audit.edit(dbo, username, "diarytaskhead", audit.map_diff(preaudit, postaudit))
def update_onlineform_from_form(dbo, username, data): """ Update an onlineform record from posted data """ formid = utils.df_ki(data, "formid") sql = db.make_update_sql("onlineform", "ID=%d" % formid, ( ( "Name", db.ds(utils.df_ks(data, "name"))), ( "RedirectUrlAfterPOST", db.ds(utils.df_ks(data, "redirect"))), ( "SetOwnerFlags", db.ds(utils.df_ks(data, "flags"))), ( "Description", db.ds(utils.df_ks(data, "description"))) )) preaudit = db.query(dbo, "SELECT * FROM onlineform WHERE ID = %d" % formid) db.execute(dbo, sql) postaudit = db.query(dbo, "SELECT * FROM onlineform WHERE ID = %d" % formid) audit.edit(dbo, username, "onlineform", audit.map_diff(preaudit, postaudit))
def update_diarytaskdetail_from_form(dbo, username, post): """ Updates a diary task detail from form data """ did = post.integer("diarytaskdetailid") sql = db.make_update_sql("diarytaskdetail", "ID=%d" % did, ( ( "DayPivot", post.db_integer("pivot")), ( "WhoFor", post.db_string("for")), ( "Subject", post.db_string("subject")), ( "Note", post.db_string("note")) )) preaudit = db.query(dbo, "SELECT * FROM diarytaskdetail WHERE ID=%d" % did) db.execute(dbo, sql) postaudit = db.query(dbo, "SELECT * FROM diarytaskdetail WHERE ID=%d" % did) audit.edit(dbo, username, "diarytaskhead", did, audit.map_diff(preaudit, postaudit))
def update_role_from_form(dbo, username, data): """ Updates a role record from posted form data """ roleid = utils.df_ki(data, "roleid") sql = db.make_update_sql( "role", "ID=%d" % roleid, (("Rolename", utils.df_t(data, "rolename")), ("SecurityMap", utils.df_t(data, "securitymap")))) preaudit = db.query(dbo, "SELECT * FROM role WHERE ID = %d" % roleid) db.execute(dbo, sql) postaudit = db.query(dbo, "SELECT * FROM role WHERE ID = %d" % roleid) audit.edit(dbo, username, "role", audit.map_diff(preaudit, postaudit, [ "ROLENAME", ]))
def update_diarytaskdetail_from_form(dbo, username, data): """ Updates a diary task detail from form data """ did = utils.df_ki(data, "diarytaskdetailid") sql = db.make_update_sql("diarytaskdetail", "ID=%d" % did, (("DayPivot", utils.df_s(data, "pivot")), ("WhoFor", utils.df_t(data, "for")), ("Subject", utils.df_t(data, "subject")), ("Note", utils.df_t(data, "note")))) preaudit = db.query(dbo, "SELECT * FROM diarytaskdetail WHERE ID=%d" % did) db.execute(dbo, sql) postaudit = db.query(dbo, "SELECT * FROM diarytaskdetail WHERE ID=%d" % did) audit.edit(dbo, username, "diarytaskhead", audit.map_diff(preaudit, postaudit))
def update_diarytaskdetail_from_form(dbo, username, post): """ Updates a diary task detail from form data """ did = post.integer("diarytaskdetailid") sql = db.make_update_sql("diarytaskdetail", "ID=%d" % did, (("DayPivot", post.db_integer("pivot")), ("WhoFor", post.db_string("for")), ("Subject", post.db_string("subject")), ("Note", post.db_string("note")))) preaudit = db.query(dbo, "SELECT * FROM diarytaskdetail WHERE ID=%d" % did) db.execute(dbo, sql) postaudit = db.query(dbo, "SELECT * FROM diarytaskdetail WHERE ID=%d" % did) audit.edit(dbo, username, "diarytaskhead", audit.map_diff(preaudit, postaudit))
def update_onlineform_from_form(dbo, username, data): """ Update an onlineform record from posted data """ formid = utils.df_ki(data, "formid") sql = db.make_update_sql( "onlineform", "ID=%d" % formid, (("Name", db.ds(utils.df_ks(data, "name"))), ("RedirectUrlAfterPOST", db.ds(utils.df_ks(data, "redirect"))), ("SetOwnerFlags", db.ds(utils.df_ks(data, "flags"))), ("Description", db.ds(utils.df_ks(data, "description"))))) preaudit = db.query(dbo, "SELECT * FROM onlineform WHERE ID = %d" % formid) db.execute(dbo, sql) postaudit = db.query(dbo, "SELECT * FROM onlineform WHERE ID = %d" % formid) audit.edit(dbo, username, "onlineform", audit.map_diff(preaudit, postaudit))
def update_onlineformfield_from_form(dbo, username, data): """ Update an onlineformfield record from posted data """ formfieldid = utils.df_ki(data, "formfieldid") sql = db.make_update_sql("onlineformfield", "ID=%d" % formfieldid, ( ( "FieldName", db.ds(utils.df_ks(data, "fieldname"))), ( "FieldType", db.di(utils.df_ki(data, "fieldtype"))), ( "Label", db.ds(utils.df_ks(data, "label"))), ( "DisplayIndex", db.di(utils.df_ki(data, "displayindex"))), ( "Lookups", db.ds(utils.df_ks(data, "lookups"))), ( "Tooltip", db.ds(utils.df_ks(data, "tooltip"))) )) preaudit = db.query(dbo, "SELECT * FROM onlineformfield WHERE ID = %d" % formfieldid) db.execute(dbo, sql) postaudit = db.query(dbo, "SELECT * FROM onlineformfield WHERE ID = %d" % formfieldid) audit.edit(dbo, username, "onlineformfield", audit.map_diff(preaudit, postaudit))
def update_onlineform_from_form(dbo, username, post): """ Update an onlineform record from posted data """ formid = post.integer("formid") sql = db.make_update_sql("onlineform", "ID=%d" % formid, ( ( "Name", post.db_string("name")), ( "RedirectUrlAfterPOST", post.db_string("redirect")), ( "SetOwnerFlags", post.db_string("flags")), ( "EmailAddress", post.db_string("email")), ( "Header", post.db_string("header")), ( "Footer", post.db_string("footer")), ( "Description", post.db_string("description")) )) preaudit = db.query(dbo, "SELECT * FROM onlineform WHERE ID = %d" % formid) db.execute(dbo, sql) postaudit = db.query(dbo, "SELECT * FROM onlineform WHERE ID = %d" % formid) audit.edit(dbo, username, "onlineform", audit.map_diff(preaudit, postaudit))
def update_onlineformfield_from_form(dbo, username, post): """ Update an onlineformfield record from posted data """ formfieldid = post.integer("formfieldid") sql = db.make_update_sql("onlineformfield", "ID=%d" % formfieldid, ( ( "FieldName", post.db_string("fieldname")), ( "FieldType", post.db_integer("fieldtype")), ( "Label", post.db_string("label")), ( "DisplayIndex", post.db_integer("displayindex")), ( "Mandatory", post.db_boolean("mandatory")), ( "Lookups", post.db_string("lookups")), ( "Tooltip", post.db_string("tooltip")) )) preaudit = db.query(dbo, "SELECT * FROM onlineformfield WHERE ID = %d" % formfieldid) db.execute(dbo, sql) postaudit = db.query(dbo, "SELECT * FROM onlineformfield WHERE ID = %d" % formfieldid) audit.edit(dbo, username, "onlineformfield", audit.map_diff(preaudit, postaudit))
def update_onlineformfield_from_form(dbo, username, data): """ Update an onlineformfield record from posted data """ formfieldid = utils.df_ki(data, "formfieldid") sql = db.make_update_sql( "onlineformfield", "ID=%d" % formfieldid, (("FieldName", db.ds(utils.df_ks(data, "fieldname"))), ("FieldType", db.di(utils.df_ki(data, "fieldtype"))), ("Label", db.ds(utils.df_ks(data, "label"))), ("DisplayIndex", db.di(utils.df_ki(data, "displayindex"))), ("Lookups", db.ds(utils.df_ks(data, "lookups"))), ("Tooltip", db.ds(utils.df_ks(data, "tooltip"))))) preaudit = db.query( dbo, "SELECT * FROM onlineformfield WHERE ID = %d" % formfieldid) db.execute(dbo, sql) postaudit = db.query( dbo, "SELECT * FROM onlineformfield WHERE ID = %d" % formfieldid) audit.edit(dbo, username, "onlineformfield", audit.map_diff(preaudit, postaudit))
def update_user_settings(dbo, username, email="", realname="", locale="", theme=""): userid = db.query_int( dbo, "SELECT ID FROM users WHERE Username = '******'" % username) sql = db.make_update_sql("users", "ID=%d" % userid, (("RealName", db.ds(realname)), ("EmailAddress", db.ds(email)), ("ThemeOverride", db.ds(theme)), ("LocaleOverride", db.ds(locale)))) preaudit = db.query(dbo, "SELECT * FROM users WHERE ID = %d" % int(userid))[0] db.execute(dbo, sql) postaudit = db.query(dbo, "SELECT * FROM users WHERE ID = %d" % int(userid))[0] audit.edit(dbo, username, "users", audit.map_diff(preaudit, postaudit, [ "USERNAME", ]))
def update_field_from_form(dbo, username, post): """ Updates an additional field record. All aspects of an additional field can be changed after creation since only the ID ties things together. """ aid = post.integer("id") sql = db.make_update_sql( "additionalfield", "ID=%d" % aid, (("FieldName", post.db_string("name")), ("FieldLabel", post.db_string("label")), ("ToolTip", post.db_string("tooltip")), ("LookupValues", post.db_string("lookupvalues")), ("Mandatory", post.db_boolean("mandatory")), ("FieldType", post.db_integer("type")), ("LinkType", post.db_integer("link")), ("DisplayIndex", post.db_integer("displayindex")))) preaudit = db.query(dbo, "SELECT * FROM additionalfield WHERE ID = %d" % aid) db.execute(dbo, sql) postaudit = db.query(dbo, "SELECT * FROM additionalfield WHERE ID = %d" % aid) audit.edit(dbo, username, "additionalfield", audit.map_diff(preaudit, postaudit))