def sendmailUser_mask(req, id, err=0): v = getAdminStdVars(req) v["path"] = req.path[1:] if id in["execute", "execu"]: userid = req.params.get("userid") user = getUser(userid) if not user: path = req.path[1:].split("/") user = getExternalUser(userid, path[-1]) password = makeRandomPassword() user.resetPassword(password) text = req.params.get("text") text = text.replace("[wird eingesetzt]", password) try: mail.sendmail(req.params.get("from"), req.params.get("email"), req.params.get("subject"), text) except mail.SocketError: print "Socket error while sending mail" req.setStatus(httpstatus.HTTP_INTERNAL_SERVER_ERROR) return req.getTAL("web/admin/modules/user.html", v, macro="sendmailerror") return req.getTAL("web/admin/modules/user.html", v, macro="sendmaildone") user = getUser(id) if not user: path = req.path[1:].split("/") user = getExternalUser(id, path[-1]) collections = [] seen = {} access = acl.AccessData(user=user) for node in getAllCollections(): if access.hasReadAccess(node): if access.hasWriteAccess(node): collections.append(node.name + " (lesen/schreiben)") seen[node.id] = None for node in tree.getRoot("collections").getChildren(): if access.hasReadAccess(node) and node.id not in seen: collections.append(node.name + " (nur lesen)") x = {} x["name"] = "%s %s" % (user.getFirstName(), user.getLastName()) if(x["name"] == ""): x["name"] = user.getName() x["host"] = config.get("host.name") x["login"] = user.getName() x["isEditor"] = user.isEditor() x["collections"] = list() x["groups"] = user.getGroups() x["groups"].sort() x["language"] = lang(req) x["collections"] = collections x["collections"].sort() v["mailtext"] = req.getTAL("web/admin/modules/user.html", x, macro="emailtext").strip() v["email"] = user.getEmail() v["userid"] = user.getName() return req.getTAL("web/admin/modules/user.html", v, macro="sendmail")
def view(req, op): logfile = None name = "" pages = Overview(req, filelist) v = getAdminStdVars(req) v["filelist"] = filelist v["pages"] = pages text = req.getTAL("web/admin/modules/logfile.html", v, macro="view") # refresh part if "name" in req.params.keys(): name = req.params.get("name", "") # load file part for key in req.params.keys(): if key.startswith("view_"): name = key[5:-2] for file in filelist: if file.getName() == name: logfile = file # return form with file-content if logfile is not None: text += req.getTAL("web/admin/modules/logfile.html", {"logfile": logfile, "content": getFileContent(logfile.getPath())}, macro="detail") return text
def WorkflowDetail(req, id, err=0): v = getAdminStdVars(req) if err == 0 and id == "": # new workflow workflow = tree.Node("", type="workflow") v["original_name"] = "" elif id != "" and err == 0: # edit workflow workflow = getWorkflow(id) v["original_name"] = workflow.getName() else: # error workflow = tree.Node("", type="workflow") workflow.setName(req.params.get("name", "")) workflow.setDescription(req.params.get("description", "")) #workflow.setAccess("write", req.params.get("writeaccess", "")) v["original_name"] = req.params.get("orig_name", "") workflow.id = req.params.get("id") rule = {"read": str(workflow.getAccess("read") or "").split(","), "write": str(workflow.getAccess("write") or "").split(",")} v["acl_read"] = makeList(req, "read", removeEmptyStrings(rule["read"]), {}, overload=0, type="read") v["acl_write"] = makeList(req, "write", removeEmptyStrings(rule["write"]), {}, overload=0, type="write") v["workflow"] = workflow v["languages"] = config.get("i18n.languages", "en").split(",") v["error"] = err v["rules"] = getRuleList() v["actpage"] = req.params.get("actpage") return req.getTAL("web/admin/modules/workflows.html", v, macro="modify")
def editMappingField_mask(req, id, parent, err=0): if err == 0 and id == "": # new mapping field field = MappingField(u"") db.session.add(field) elif id != "": # edit mapping field field = q(Node).get(id) else: # error while filling values field = MappingField(u"") field.name = req.params.get("name", u"") field.setDescription(req.params.get("description", u"")) field.setExportFormat(req.params.get("exportformat", u"")) if "mandatory" in req.params.keys(): field.setMandatory("True") db.session.commit() v = getAdminStdVars(req) v["error"] = err v["field"] = field v["parent"] = parent v["actpage"] = req.params.get("actpage") v["csrf"] = req.csrf_token.current_token return req.getTAL("web/admin/modules/mapping.html", v, macro="modifyfield")
def view(req, op): logfile = None name = "" pages = Overview(req, filelist) v = getAdminStdVars(req) v["filelist"] = filelist v["pages"] = pages text = req.getTAL("web/admin/modules/logfile.html", v, macro="view") # refresh part if "name" in req.params.keys(): name = req.params.get("name", "") # load file part for key in req.params.keys(): if key.startswith("view_"): name = key[5:-2] for file in filelist: if file.getName() == name: logfile = file # return form with file-content if logfile is not None: text += req.getTAL("web/admin/modules/logfile.html", { "logfile": logfile, "content": getFileContent(logfile.getPath()) }, macro="detail") return text
def editMapping_mask(req, id, err=0): if err == 0 and id == "": # new mapping mapping = tree.Node("", type="mapping") elif id != "": # edit mapping mapping = getMapping(id) else: # error while filling values mapping = tree.Node("", type="mapping") mapping.setName(req.params.get("name", "")) mapping.setDescription(req.params.get("description", "")) mapping.setNamespace(req.params.get("namespace", "")) mapping.setNamespaceUrl(req.params.get("namespaceurl", "")) mapping.setHeader(req.params.get("header")) mapping.setFooter(req.params.get("footer")) mapping.setSeparator(req.params.get("separator")) mapping.setStandardFormat(req.params.get("standardformat")) v = getAdminStdVars(req) v["error"] = err v["mapping"] = mapping v["id"] = id v["actpage"] = req.params.get("actpage") v["mappingtypes"] = getMappingTypes() return req.getTAL("web/admin/modules/mapping.html", v, macro="modify")
def WorkflowStepList(req, wid): global _cssclass, _page workflow = getWorkflow(wid) workflowsteps = list(workflow.getSteps()) order = getSortCol(req) actfilter = getFilter(req) # filter if actfilter != "": if actfilter in ("all", "*", t(lang(req), "admin_filter_all")): None # all users elif actfilter == "0-9": num = re.compile(r'([0-9])') workflowsteps = filter(lambda x: num.match(x.name), workflowsteps) elif actfilter == "else" or actfilter == t(lang(req), "admin_filter_else"): all = re.compile(r'([a-z]|[A-Z]|[0-9])') workflowsteps = filter(lambda x: not all.match(x.name), workflowsteps) else: workflowsteps = filter(lambda x: x.name.lower().startswith(actfilter), workflowsteps) pages = Overview(req, workflowsteps) # sorting if order != "": if int(order[0]) == 0: workflowsteps.sort(lambda x, y: cmp(x.name.lower(), y.name.lower())) elif int(order[0]) == 1: workflowsteps.sort(lambda x, y: cmp(x.type, y.type)) elif int(order[0]) == 2: workflowsteps.sort(lambda x, y: cmp(x.getTrueId(), y.getTrueId())) elif int(order[0]) == 3: workflowsteps.sort(lambda x, y: cmp(x.getFalseId(), y.getFalseId())) elif int(order[0]) == 4: workflowsteps.sort(lambda x, y: cmp(len(x.get("description")), len(y.get("description")))) # elif int(order[0]) == 5: # workflowstep.sort(lambda x, y: cmp(x.getAccess("read"), y.getAccess("read"))) # elif int(order[0]) == 6: # workflowstep.sort(lambda x, y: cmp(x.getAccess("write"), y.getAccess("write"))) if int(order[1]) == 1: workflowsteps.reverse() else: workflowsteps.sort(lambda x, y: cmp(x.name.lower(), y.name.lower())) v = getAdminStdVars(req) v["sortcol"] = pages.OrderColHeader( [ t( lang(req), "admin_wfstep_col_1"), t( lang(req), "admin_wfstep_col_2"), t( lang(req), "admin_wfstep_col_3"), t( lang(req), "admin_wfstep_col_4"), t( lang(req), "admin_wfstep_col_5"), t( lang(req), "admin_wfstep_col_6"), t( lang(req), "admin_wfstep_col_7")]) v["workflow"] = workflow v["workflowsteps"] = workflowsteps v["pages"] = pages v["actfilter"] = actfilter v["csrf"] = req.csrf_token.current_token return req.getTAL("web/admin/modules/workflows.html", v, macro="view_step")
def MetatypeDetail(req, id, err=0): v = getAdminStdVars(req) if err == 0 and id == "": # new metadatatype metadatatype = Metadatatype(u"") db.session.commit() v["original_name"] = "" elif id != "" and err == 0: # edit metadatatype metadatatype = getMetaType(id) v["original_name"] = metadatatype.getName() else: # error metadatatype = Metadatatype(req.params["mname"]) metadatatype.set("description", req.params["description"]) metadatatype.set("longname", req.params["mlongname"]) metadatatype.set("active", "mactive" in req.params) metadatatype.set("datatypes", req.params.get("mdatatypes", "").replace(";", ", ")) metadatatype.set("bibtexmapping", req.params.get("mbibtex", "")) metadatatype.set("citeprocmapping", req.params.get("mciteproc", "")) db.session.commit() v["original_name"] = req.params["mname_orig"] d = Data() v["datatypes"] = d.get_all_datatypes() v["datatypes"].sort( lambda x, y: cmp(t(lang(req), x.__name__), t(lang(req), y.__name__))) v["metadatatype"] = metadatatype v["error"] = err v["bibtextypes"] = getAllBibTeXTypes() v["bibtexselected"] = metadatatype.get("bibtexmapping").split(";") v["citeproctypes"] = citeproc.TYPES v["citeprocselected"] = metadatatype.get("citeprocmapping").split(";") try: rules = [ r.ruleset_name for r in metadatatype.access_ruleset_assocs.filter_by( ruletype=u'read') ] except: rules = [] v["acl"] = makeList(req, "read", removeEmptyStrings(rules), {}, overload=0, type="read") v["filtertype"] = req.params.get("filtertype", "") v["actpage"] = req.params.get("actpage") v["csrf"] = req.csrf_token.current_token return req.getTAL("web/admin/modules/metatype.html", v, macro="modify_type")
def viewlist(req, id): mapping = getMapping(id) fields = list(mapping.getFields()) order = getSortCol(req) actfilter = getFilter(req) # filter if actfilter != "": if actfilter in ("all", "*", (lang(req), "admin_filter_all")): None # all mappings elif actfilter == "0-9": num = re.compile(r'([0-9])') fields = filter(lambda x: num.match(x.getName()), fields) elif actfilter == "else" or actfilter == t(lang(req), "admin_filter_else"): all = re.compile(r'([a-z]|[A-Z]|[0-9])') fields = filter(lambda x: not all.match(x.getName()), fields) else: fields = filter( lambda x: x.getName().lower().startswith(actfilter), fields) pages = Overview(req, fields) # sorting if order != "": if int(order[0:1]) == 0: fields.sort(lambda x, y: cmp(x.getName().lower(), y.getName().lower())) elif int(order[0:1]) == 1: fields.sort(lambda x, y: cmp(x.getDescription().lower(), y.getDescription().lower())) elif int(order[0:1]) == 2: fields.sort(lambda x, y: cmp(x.getMandatory(), y.getMandatory())) if int(order[1:]) == 1: fields.reverse() else: fields.sort(lambda x, y: cmp(x.getName().lower(), y.getName().lower())) v = getAdminStdVars(req) v["sortcol"] = pages.OrderColHeader([ t(lang(req), "admin_mappingfield_col_1"), t(lang(req), "admin_mappingfield_col_2"), t(lang(req), "admin_mappingfield_col_3") ], addparams="&detailof=" + str(mapping.id)) v["fields"] = fields v["mapping"] = mapping v["options"] = [] v["pages"] = pages v["actfilter"] = actfilter return req.getTAL("web/admin/modules/mapping.html", v, macro="viewlist")
def view(req): groups = list(loadGroupsFromDB()) order = getSortCol(req) actfilter = getFilter(req) # filter if actfilter != "": if actfilter in ("all", t(lang(req), "admin_filter_all"), "*"): None # all groups elif actfilter == "0-9": num = re.compile(r'([0-9])') groups = filter(lambda x: num.match(x.getName()), groups) elif actfilter == "else" or actfilter == t(lang(req), "admin_filter_else"): all = re.compile(r'([a-z]|[A-Z]|[0-9])') groups = filter(lambda x: not all.match(x.getName()), groups) else: groups = filter( lambda x: x.getName().lower().startswith(actfilter), groups) pages = Overview(req, groups) # sorting if order != "": if int(order[0:1]) == 0: groups.sort(lambda x, y: cmp(x.getName().lower(), y.getName().lower())) elif int(order[0:1]) == 1: groups.sort(lambda x, y: cmp(getNumUsers(x.getName()), getNumUsers(y.getName()))) elif int(order[0:1]) == 2: gl = {} for g in groups: gl[g.id] = g.getSchemas() groups.sort(lambda x, y: cmp(len(gl[x.id]), len(gl[y.id]))) elif int(order[0:1]) == 3: groups.sort(lambda x, y: cmp(x.getHideEdit() == "", y.getHideEdit() == "")) if int(order[1:]) == 1: groups.reverse() # else: # groups.sort(lambda x, y: cmp(x.getName().lower(),y.getName().lower())) v = getAdminStdVars(req) v["sortcol"] = pages.OrderColHeader([ t(lang(req), "admin_usergroup_col_1"), t(lang(req), "admin_usergroup_col_2"), t(lang(req), "admin_usergroup_col_3"), t(lang(req), "admin_usergroup_col_4") ]) v["options"] = list(groupoption) v["groups"] = groups v["pages"] = pages v["actfilter"] = actfilter return req.getTAL("/web/admin/modules/usergroup.html", v, macro="view")
def view(req, op): v = getAdminStdVars(req) v["msg"] = "" v["op"] = op if op == "db": v["msg"] = "admin_flush_data_cleared" # elif op == "all": # v["msg"] = "admin_flush_all_cleared" return req.getTAL("web/admin/modules/flush.html", v, macro="view")
def WorkflowDetail(req, id, err=0): v = getAdminStdVars(req) if err == 0 and id == "": # new workflow workflow = Workflow(u"") db.session.commit() v["original_name"] = "" elif id != "" and err == 0: # edit workflow workflow = getWorkflow(id) v["original_name"] = workflow.name else: # error workflow = Workflow(u"") workflow.name = req.params.get("name", "") workflow.set("description", req.params.get("description", "")) #workflow.setAccess("write", req.params.get("writeaccess", "")) v["original_name"] = req.params.get("orig_name", "") workflow.id = req.params.get("id") db.session.commit() try: rule = { "read": [ r.ruleset_name for r in workflow.access_ruleset_assocs.filter_by( ruletype='read') ], "write": [ r.ruleset_name for r in workflow.access_ruleset_assocs.filter_by( ruletype='write') ] } except: rule = {"read": [], "write": []} v["acl_read"] = makeList(req, "read", removeEmptyStrings(rule["read"]), {}, overload=0, type="read") v["acl_write"] = makeList(req, "write", removeEmptyStrings(rule["write"]), {}, overload=0, type="write") v["workflow"] = workflow v["languages"] = config.languages v["error"] = err v["actpage"] = req.params.get("actpage") v["csrf"] = req.csrf_token.current_token return req.getTAL("web/admin/modules/workflows.html", v, macro="modify")
def view(req): workflows = list(getWorkflowList()) order = getSortCol(req) actfilter = getFilter(req) # filter if actfilter != "": if actfilter in ("all", "*", t(lang(req), "admin_filter_all")): None # all users elif actfilter == "0-9": num = re.compile(r'([0-9])') workflows = filter(lambda x: num.match(x.getName()), workflows) elif actfilter == "else" or actfilter == t(lang(req), "admin_filter_else"): all = re.compile(r'([a-z]|[A-Z]|[0-9])') workflows = filter(lambda x: not all.match(x.getName()), workflows) else: workflows = filter( lambda x: x.getName().lower().startswith(actfilter), workflows) pages = Overview(req, workflows) # sorting if order != "": if int(order[0:1]) == 1: workflows.sort(lambda x, y: cmp(x.getName(), y.getName())) elif int(order[0:1]) == 2: workflows.sort( lambda x, y: cmp(x.getDescription(), y.getDescription())) elif int(order[0:1]) == 3: workflows.sort( lambda x, y: cmp(x.getAccess("read"), y.getAccess("read"))) elif int(order[0:1]) == 4: workflows.sort( lambda x, y: cmp(x.getAccess("write"), y.getAccess("write"))) if int(order[1:]) == 1: workflows.reverse() v = getAdminStdVars(req) v["sortcol"] = pages.OrderColHeader([ t(lang(req), "admin_wf_col_1"), t(lang(req), "admin_wf_col_2"), t(lang(req), "admin_wf_col_3"), t(lang(req), "admin_wf_col_4") ]) v["workflows"] = workflows v["pages"] = pages v["actfilter"] = actfilter return req.getTAL("web/admin/modules/workflows.html", v, macro="view")
def viewlist(req, id): mapping = getMapping(id) fields = list(mapping.getFields()) order = getSortCol(req) actfilter = getFilter(req) # filter if actfilter != "": if actfilter in ("all", "*", (lang(req), "admin_filter_all")): None # all mappings elif actfilter == "0-9": num = re.compile(r'([0-9])') fields = filter(lambda x: num.match(x.name), fields) elif actfilter == "else" or actfilter == t(lang(req), "admin_filter_else"): all = re.compile(r'([a-z]|[A-Z]|[0-9])') fields = filter(lambda x: not all.match(x.name), fields) else: fields = filter(lambda x: x.name.lower().startswith(actfilter), fields) pages = Overview(req, fields) # sorting if order != "": if int(order[0:1]) == 0: fields.sort(lambda x, y: cmp(x.name.lower(), y.name.lower())) elif int(order[0:1]) == 1: fields.sort(lambda x, y: cmp(x.getDescription().lower(), y.getDescription().lower())) elif int(order[0:1]) == 2: fields.sort(lambda x, y: cmp(x.getMandatory(), y.getMandatory())) if int(order[1:]) == 1: fields.reverse() else: fields.sort(lambda x, y: cmp(x.name.lower(), y.name.lower())) v = getAdminStdVars(req) v["sortcol"] = pages.OrderColHeader([t(lang(req), "admin_mappingfield_col_1"), t(lang(req), "admin_mappingfield_col_2"), t( lang(req), "admin_mappingfield_col_3")], addparams="&detailof=" + unicode(mapping.id)) v["fields"] = fields v["mapping"] = mapping v["options"] = [] v["pages"] = pages v["actfilter"] = actfilter v["csrf"] = req.csrf_token.current_token return req.getTAL("web/admin/modules/mapping.html", v, macro="viewlist")
def editUser_mask(req, id, err=0): ugroups = [] usertype = req.params.get("usertype", "intern") newuser = 0 if err == 0 and id == "": # new user user = tree.Node("", type="user") user.setOption("c") newuser = 1 elif err == 0 and id != "": # edit user if usertype == "intern": user = getUser(id) else: user = getExternalUser(id) else: # error while filling values option = "" for key in req.params.keys(): if key.startswith("option_"): option += key[7] for usergroup in req.params.get("usergroups", "").split(";"): ugroups += [usergroup] user = tree.Node("", type="user") user.setName(req.params.get("username", "")) user.setEmail(req.params.get("email", "")) user.setOption(option) user.setLastName(req.params.get("lastname", "")) user.setFirstName(req.params.get("firstname", "")) user.setTelephone(req.params.get("telephone", "")) user.setComment(req.params.get("comment", "")) user.setOrganisation(req.params.get("organisation", "")) v = getAdminStdVars(req) v["error"] = err v["user"] = user v["groups"] = loadGroupsFromDB() v["ugroups"] = ugroups v["useroption"] = useroption v["id"] = id v["usertype"] = usertype v["filtertype"] = req.params.get("filtertype", "") v["actpage"] = req.params.get("actpage") v["newuser"] = newuser v["usertypes"] = getExternalAuthentificators() return req.getTAL("web/admin/modules/user.html", v, macro="modify")
def view(req): rules = acl.getRuleList() actfilter = getFilter(req) order = getSortCol(req) # filter if actfilter != "": if actfilter in ("all", "*", t(lang(req), "admin_filter_all")): None # all users elif actfilter == "0-9": num = re.compile(r'([0-9])') rules = filter(lambda x: num.match(x.getName()), rules) elif actfilter == "else" or actfilter == t(lang(req), "admin_filter_else"): all = re.compile(r'([a-z]|[A-Z]|[0-9])') rules = filter(lambda x: not all.match(x.getName()), rules) else: rules = filter(lambda x: x.getName().lower().startswith(actfilter), rules) pages = Overview(req, rules) # sorting if order != "": if int(order[0:1]) == 0: rules.sort(lambda x, y: cmp(x.getName().lower(), y.getName().lower())) elif int(order[0:1]) == 1: rules.sort(lambda x, y: cmp(x.rulestr, y.rulestr)) elif int(order[0:1]) == 2: rules.sort(lambda x, y: cmp(x.description, y.description)) if int(order[1:]) == 1: rules.reverse() else: rules.sort(lambda x, y: cmp(x.getName().lower(), y.getName().lower())) v = getAdminStdVars(req) v["sortcol"] = pages.OrderColHeader([ t(lang(req), "admin_acl_col_1"), t(lang(req), "admin_acl_col_2"), t(lang(req), "admin_acl_col_3") ]) v["rules"] = rules v["pages"] = pages v["missing_rules"] = acl.getMissingRuleNames() v["actfilter"] = actfilter return req.getTAL("web/admin/modules/acls.html", v, macro="view")
def view(req): groups = list(loadGroupsFromDB()) order = getSortCol(req) actfilter = getFilter(req) # filter if actfilter != "": if actfilter in("all", t(lang(req), "admin_filter_all"), "*"): None # all groups elif actfilter == "0-9": num = re.compile(r'([0-9])') groups = filter(lambda x: num.match(x.getName()), groups) elif actfilter == "else" or actfilter == t(lang(req), "admin_filter_else"): all = re.compile(r'([a-z]|[A-Z]|[0-9])') groups = filter(lambda x: not all.match(x.getName()), groups) else: groups = filter(lambda x: x.getName().lower().startswith(actfilter), groups) pages = Overview(req, groups) # sorting if order != "": if int(order[0:1]) == 0: groups.sort(lambda x, y: cmp(x.getName().lower(), y.getName().lower())) elif int(order[0:1]) == 1: groups.sort(lambda x, y: cmp(getNumUsers(x.getName()), getNumUsers(y.getName()))) elif int(order[0:1]) == 2: gl = {} for g in groups: gl[g.id] = g.getSchemas() groups.sort(lambda x, y: cmp(len(gl[x.id]), len(gl[y.id]))) elif int(order[0:1]) == 3: groups.sort(lambda x, y: cmp(x.getHideEdit() == "", y.getHideEdit() == "")) if int(order[1:]) == 1: groups.reverse() # else: # groups.sort(lambda x, y: cmp(x.getName().lower(),y.getName().lower())) v = getAdminStdVars(req) v["sortcol"] = pages.OrderColHeader([t(lang(req), "admin_usergroup_col_1"), t(lang(req), "admin_usergroup_col_2"), t( lang(req), "admin_usergroup_col_3"), t(lang(req), "admin_usergroup_col_4")]) v["options"] = list(groupoption) v["groups"] = groups v["pages"] = pages v["actfilter"] = actfilter return req.getTAL("/web/admin/modules/usergroup.html", v, macro="view")
def MetatypeDetail(req, id, err=0): v = getAdminStdVars(req) if err == 0 and id == "": # new metadatatype metadatatype = tree.Node("", type="metadatatype") v["original_name"] = "" elif id != "" and err == 0: # edit metadatatype metadatatype = getMetaType(id) v["original_name"] = metadatatype.getName() else: # error metadatatype = tree.Node(req.params["mname"], type="metadatatype") metadatatype.setDescription(req.params["description"]) metadatatype.setLongName(req.params["mlongname"]) metadatatype.setActive("mactive" in req.params) metadatatype.setDatatypeString(req.params.get("mdatatypes", "").replace(";", ", ")) metadatatype.set("bibtexmapping", req.params.get("mbibtex", "")) metadatatype.set("citeprocmapping", req.params.get("mciteproc", "")) v["original_name"] = req.params["mname_orig"] v["datatypes"] = loadNonSystemTypes() v["datatypes"].sort(lambda x, y: cmp(t(lang(req), x.getLongName()), t(lang(req), y.getLongName()))) v["metadatatype"] = metadatatype v["error"] = err v["bibtextypes"] = getAllBibTeXTypes() v["bibtexselected"] = metadatatype.get("bibtexmapping").split(";") v["citeproctypes"] = citeproc.TYPES v["citeprocselected"] = metadatatype.get("citeprocmapping").split(";") rule = metadatatype.getAccess("read") if rule: rule = rule.split(",") else: rule = [] rights = removeEmptyStrings(rule) v["acl"] = makeList(req, "read", rights, {}, overload=0, type="read") v["filtertype"] = req.params.get("filtertype", "") v["actpage"] = req.params.get("actpage") return req.getTAL("web/admin/modules/metatype.html", v, macro="modify_type")
def MetatypeDetail(req, id, err=0): v = getAdminStdVars(req) if err == 0 and id == "": # new metadatatype metadatatype = Metadatatype(u"") db.session.commit() v["original_name"] = "" elif id != "" and err == 0: # edit metadatatype metadatatype = getMetaType(id) v["original_name"] = metadatatype.getName() else: # error metadatatype = Metadatatype(req.params["mname"]) metadatatype.set("description", req.params["description"]) metadatatype.set("longname", req.params["mlongname"]) metadatatype.set("active", "mactive" in req.params) metadatatype.set("datatypes", req.params.get("mdatatypes", "").replace(";", ", ")) metadatatype.set("bibtexmapping", req.params.get("mbibtex", "")) metadatatype.set("citeprocmapping", req.params.get("mciteproc", "")) db.session.commit() v["original_name"] = req.params["mname_orig"] d = Data() v["datatypes"] = d.get_all_datatypes() v["datatypes"].sort(lambda x, y: cmp(t(lang(req), x.__name__), t(lang(req), y.__name__))) v["metadatatype"] = metadatatype v["error"] = err v["bibtextypes"] = getAllBibTeXTypes() v["bibtexselected"] = metadatatype.get("bibtexmapping").split(";") v["citeproctypes"] = citeproc.TYPES v["citeprocselected"] = metadatatype.get("citeprocmapping").split(";") try: rules = [r.ruleset_name for r in metadatatype.access_ruleset_assocs.filter_by(ruletype=u'read')] except: rules = [] v["acl"] = makeList(req, "read", removeEmptyStrings(rules), {}, overload=0, type="read") v["filtertype"] = req.params.get("filtertype", "") v["actpage"] = req.params.get("actpage") v["csrf"] = req.csrf_token.current_token return req.getTAL("web/admin/modules/metatype.html", v, macro="modify_type")
def MaskDetails(req, pid, id, err=0): mtype = getMetaType(pid) if err == 0 and id == "": # new mask mask = Mask(u"") db.session.commit() elif id != "" and err == 0: # edit mask if id.isdigit(): mask = q(Mask).get(id) db.session.commit() else: mask = mtype.getMask(id) else: # error filling values mask = Mask(req.params.get("mname", "")) mask.setDescription(req.params.get("mdescription", "")) mask.setMasktype(req.params.get("mtype")) mask.setLanguage(req.params.get("mlanguage", "")) mask.setDefaultMask(req.params.get("mdefault", False)) db.session.commit() v = getAdminStdVars(req) v["mask"] = mask v["mappings"] = getMappings() v["mtype"] = mtype v["error"] = err v["pid"] = pid v["masktypes"] = getMaskTypes() v["id"] = id v["langs"] = config.languages v["actpage"] = req.params.get("actpage") try: rules = [r.ruleset_name for r in mask.access_ruleset_assocs.filter_by(ruletype=u'read')] except: rules = [] v["acl"] = makeList(req, "read", removeEmptyStrings(rules), {}, overload=0, type=u"read") v["csrf"] = req.csrf_token.current_token return req.getTAL("web/admin/modules/metatype_mask.html", v, macro="modify_mask")
def editGroup_mask(req, id, err=0): """edit/create usergroup""" newusergroup = 0 if err == 0 and id == "": # new usergroup group = tree.Node("", type="usergroup") newusergroup = 1 elif id != "": # edit usergroup group = getGroup(id) else: # error while filling values option = "" for key in req.params.keys(): if key.startswith("option_"): option += key[7] group = tree.Node("", type="usergroup") group.setName(req.params.get("groupname", "")) group.setDescription(req.params.get("description", "")) group.setHideEdit(req.params.get("leftmodule", "").split(';')) group.setOption(option) v = getAdminStdVars(req) v["error"] = err v["group"] = group v["groupoption"] = groupoption v["modulenames"] = getEditModuleNames() v["val_left"] = buildRawModuleLeft(group, lang(req)) v["val_right"] = buildRawModuleRight(group, lang(req)) v["valmeta_left"] = buildRawModuleMetaLeft(group) v["valmeta_right"] = buildRawModuleMetaRight(group) v["emails"] = ', '.join([u.get('email') for u in group.getChildren()]) v["actpage"] = req.params.get("actpage") v["newusergroup"] = newusergroup v["allow_dynamic_users"] = ALLOW_DYNAMIC_USERS # global flag v["allow_dynamic"] = group.get("allow_dynamic") # for checkbox v["dynamic_users"] = group.get("dynamic_users") return req.getTAL("/web/admin/modules/usergroup.html", v, macro="modify")
def MaskDetails(req, pid, id, err=0): mtype = getMetaType(pid) if err == 0 and id == "": # new mask mask = tree.Node("", type="mask") elif id != "" and err == 0: # edit mask if id.isdigit(): mask = tree.getNode(id) else: mask = mtype.getMask(id) else: # error filling values mask = tree.Node(req.params.get("mname", ""), type="mask") mask.setDescription(req.params.get("mdescription", "")) mask.setMasktype(req.params.get("mtype")) mask.setLanguage(req.params.get("mlanguage", "")) mask.setDefaultMask(req.params.get("mdefault", False)) v = getAdminStdVars(req) v["mask"] = mask v["mappings"] = getMappings() v["mtype"] = mtype v["error"] = err v["pid"] = pid v["masktypes"] = getMaskTypes() v["id"] = id v["langs"] = config.get("i18n.languages").split(",") v["actpage"] = req.params.get("actpage") rule = mask.getAccess("read") if rule: rule = rule.split(",") else: rule = [] rights = removeEmptyStrings(rule) v["acl"] = makeList(req, "read", rights, {}, overload=0, type="read") return req.getTAL("web/admin/modules/metatype_mask.html", v, macro="modify_mask")
def editRule_mask(req, id, err=0): if err == 0 and id == "": # new rule rule = AccessRule("", "( true )", "") elif id != "" and err == 0: # edit rule rule = acl.getRule(id) else: # error rule = AccessRule(req.params["rulename"], req.params["rule"], req.params["description"]) v = getAdminStdVars(req) v["error"] = err v["rule"] = rule v["actpage"] = req.params.get("actpage") return req.getTAL("web/admin/modules/acls.html", v, macro="modify")
def WorkflowDetail(req, id, err=0): v = getAdminStdVars(req) if err == 0 and id == "": # new workflow workflow = tree.Node("", type="workflow") v["original_name"] = "" elif id != "" and err == 0: # edit workflow workflow = getWorkflow(id) v["original_name"] = workflow.getName() else: # error workflow = tree.Node("", type="workflow") workflow.setName(req.params.get("name", "")) workflow.setDescription(req.params.get("description", "")) #workflow.setAccess("write", req.params.get("writeaccess", "")) v["original_name"] = req.params.get("orig_name", "") workflow.id = req.params.get("id") rule = { "read": str(workflow.getAccess("read") or "").split(","), "write": str(workflow.getAccess("write") or "").split(",") } v["acl_read"] = makeList(req, "read", removeEmptyStrings(rule["read"]), {}, overload=0, type="read") v["acl_write"] = makeList(req, "write", removeEmptyStrings(rule["write"]), {}, overload=0, type="write") v["workflow"] = workflow v["languages"] = config.get("i18n.languages", "en").split(",") v["error"] = err v["rules"] = getRuleList() v["actpage"] = req.params.get("actpage") return req.getTAL("web/admin/modules/workflows.html", v, macro="modify")
def view(req): workflows = list(getWorkflowList()) order = getSortCol(req) actfilter = getFilter(req) # filter if actfilter != "": if actfilter in ("all", "*", t(lang(req), "admin_filter_all")): None # all users elif actfilter == "0-9": num = re.compile(r'([0-9])') workflows = filter(lambda x: num.match(x.getName()), workflows) elif actfilter == "else" or actfilter == t(lang(req), "admin_filter_else"): all = re.compile(r'([a-z]|[A-Z]|[0-9])') workflows = filter(lambda x: not all.match(x.getName()), workflows) else: workflows = filter(lambda x: x.getName().lower().startswith(actfilter), workflows) pages = Overview(req, workflows) # sorting if order != "": if int(order[0:1]) == 1: workflows.sort(lambda x, y: cmp(x.getName(), y.getName())) elif int(order[0:1]) == 2: workflows.sort(lambda x, y: cmp(x.getDescription(), y.getDescription())) elif int(order[0:1]) == 3: workflows.sort(lambda x, y: cmp(x.getAccess("read"), y.getAccess("read"))) elif int(order[0:1]) == 4: workflows.sort(lambda x, y: cmp(x.getAccess("write"), y.getAccess("write"))) if int(order[1:]) == 1: workflows.reverse() v = getAdminStdVars(req) v["sortcol"] = pages.OrderColHeader( [t(lang(req), "admin_wf_col_1"), t(lang(req), "admin_wf_col_2"), t(lang(req), "admin_wf_col_3"), t(lang(req), "admin_wf_col_4")]) v["workflows"] = workflows v["pages"] = pages v["actfilter"] = actfilter return req.getTAL("web/admin/modules/workflows.html", v, macro="view")
def view(req): rules = acl.getRuleList() actfilter = getFilter(req) order = getSortCol(req) # filter if actfilter != "": if actfilter in ("all", "*", t(lang(req), "admin_filter_all")): None # all users elif actfilter == "0-9": num = re.compile(r'([0-9])') rules = filter(lambda x: num.match(x.getName()), rules) elif actfilter == "else" or actfilter == t(lang(req), "admin_filter_else"): all = re.compile(r'([a-z]|[A-Z]|[0-9])') rules = filter(lambda x: not all.match(x.getName()), rules) else: rules = filter(lambda x: x.getName().lower().startswith(actfilter), rules) pages = Overview(req, rules) # sorting if order != "": if int(order[0:1]) == 0: rules.sort(lambda x, y: cmp(x.getName().lower(), y.getName().lower())) elif int(order[0:1]) == 1: rules.sort(lambda x, y: cmp(x.rulestr, y.rulestr)) elif int(order[0:1]) == 2: rules.sort(lambda x, y: cmp(x.description, y.description)) if int(order[1:]) == 1: rules.reverse() else: rules.sort(lambda x, y: cmp(x.getName().lower(), y.getName().lower())) v = getAdminStdVars(req) v["sortcol"] = pages.OrderColHeader([t(lang(req), "admin_acl_col_1"), t(lang(req), "admin_acl_col_2"), t(lang(req), "admin_acl_col_3")]) v["rules"] = rules v["pages"] = pages v["missing_rules"] = acl.getMissingRuleNames() v["actfilter"] = actfilter return req.getTAL("web/admin/modules/acls.html", v, macro="view")
def editMappingField_mask(req, id, parent, err=0): if err == 0 and id == "": # new mapping field field = tree.Node("", type="mappingfield") elif id != "": # edit mapping field field = tree.getNode(id) else: # error while filling values field = tree.Node("", type="mappingfield") field.setName(req.params.get("name", "")) field.setDescription(req.params.get("description", "")) field.setExportFormat(req.params.get("exportformat", "")) if "mandatory" in req.params.keys(): field.setMandatory("True") v = getAdminStdVars(req) v["error"] = err v["field"] = field v["parent"] = parent v["actpage"] = req.params.get("actpage") return req.getTAL("web/admin/modules/mapping.html", v, macro="modifyfield")
def WorkflowDetail(req, id, err=0): v = getAdminStdVars(req) if err == 0 and id == "": # new workflow workflow = Workflow(u"") db.session.commit() v["original_name"] = "" elif id != "" and err == 0: # edit workflow workflow = getWorkflow(id) v["original_name"] = workflow.name else: # error workflow = Workflow(u"") workflow.name = req.params.get("name", "") workflow.set("description", req.params.get("description", "")) #workflow.setAccess("write", req.params.get("writeaccess", "")) v["original_name"] = req.params.get("orig_name", "") workflow.id = req.params.get("id") db.session.commit() try: rule = {"read": [r.ruleset_name for r in workflow.access_ruleset_assocs.filter_by(ruletype='read')], "write": [r.ruleset_name for r in workflow.access_ruleset_assocs.filter_by(ruletype='write')]} except: rule = {"read": [], "write": []} v["acl_read"] = makeList(req, "read", removeEmptyStrings(rule["read"]), {}, overload=0, type="read") v["acl_write"] = makeList(req, "write", removeEmptyStrings(rule["write"]), {}, overload=0, type="write") v["workflow"] = workflow v["languages"] = config.languages v["error"] = err v["actpage"] = req.params.get("actpage") v["csrf"] = req.csrf_token.current_token return req.getTAL("web/admin/modules/workflows.html", v, macro="modify")
def view(req): mtypes = q(Metadatatypes).one().children.order_by("name").all() actfilter = getFilter(req) # filter if actfilter != "": if actfilter in ("all", "*", t(lang(req), "admin_filter_all")): None # all users elif actfilter == "0-9": num = re.compile(r'([0-9])') if req.params.get("filtertype", "") == "id": mtypes = filter(lambda x: num.match(x.name), mtypes) else: mtypes = filter(lambda x: num.match(x.getLongName()), mtypes) elif actfilter == "else" or actfilter == t(lang(req), "admin_filter_else"): all = re.compile(r'([a-z]|[A-Z]|[0-9]|\.)') if req.params.get("filtertype", "") == "id": mtypes = filter(lambda x: not all.match(x.name), mtypes) else: mtypes = filter(lambda x: not all.match(x.getLongName()), mtypes) else: if req.params.get("filtertype", "") == "id": mtypes = filter(lambda x: x.name.lower().startswith(actfilter), mtypes) else: mtypes = filter( lambda x: x.getLongName().lower().startswith(actfilter), mtypes) pages = Overview(req, mtypes) order = getSortCol(req) # sorting if order != "": if int(order[0:1]) == 0: mtypes.sort(lambda x, y: cmp(x.name.lower(), y.name.lower())) elif int(order[0:1]) == 1: mtypes.sort(lambda x, y: cmp(x.getLongName().lower(), y.getLongName().lower())) elif int(order[0:1]) == 2: mtypes.sort(lambda x, y: cmp(x.getDescription().lower(), y.getDescription().lower())) elif int(order[0:1]) == 3: mtypes.sort(lambda x, y: cmp(x.getActive(), y.getActive())) elif int(order[0:1]) == 4: mtypes.sort(lambda x, y: cmp(x.getDatatypeString().lower(), y.getDatatypeString().lower())) if int(order[1:]) == 1: mtypes.reverse() else: mtypes.sort(lambda x, y: cmp(x.name.lower(), y.name.lower())) v = getAdminStdVars(req) v["sortcol"] = pages.OrderColHeader([ t(lang(req), "admin_meta_col_1"), t(lang(req), "admin_meta_col_2"), t(lang(req), "admin_meta_col_3"), t(lang(req), "admin_meta_col_4"), t(lang(req), "admin_meta_col_5"), t(lang(req), "admin_meta_col_6") ]) v["metadatatypes"] = mtypes v["get_classname_for_typestring"] = Node.get_classname_for_typestring v['dtypes'] = Node.__mapper__.polymorphic_map # is used to prevent missing plugins from causing error v["pages"] = pages v["actfilter"] = actfilter v["filterattrs"] = [("id", "admin_metatype_filter_id"), ("name", "admin_metatype_filter_name")] v["filterarg"] = req.params.get("filtertype", "id") v["csrf"] = req.csrf_token.current_token return req.getTAL("web/admin/modules/metatype.html", v, macro="view_type")
def FieldDetail(req, pid, id, err=0): _option = "" for key in req.params.keys(): if key.startswith("option_"): _option += key[7] if err == 0 and id == "": # new field field = tree.Node("", type="metafield") elif id != "": # edit field field = getMetaField(pid, id) else: # error filling values _fieldvalue = "" if req.params.get('mtype', '') + "_value" in req.params.keys(): _fieldvalue = str(req.params[req.params.get('mtype', '') + "_value"]) if (req.params.get("mname") == ""): field = tree.Node(req.params.get("orig_name"), type="metafield") else: field = tree.Node(req.params.get("mname"), type="metafield") field.setLabel(req.params.get("mlabel")) field.setOrderPos(req.params.get("orderpos")) field.setFieldtype(req.params.get("mtype")) field.setOption(_option) field.setValues(_fieldvalue) field.setDescription(req.params.get("mdescription")) attr = {} metadatatype = getMetaType(pid) for t in metadatatype.getDatatypes(): node = tree.Node(type=t) try: attr.update(node.getTechnAttributes()) except AttributeError: continue metafields = {} for fields in getFieldsForMeta(pid): if fields.getType() != "union": metafields[fields.getName()] = fields v = getAdminStdVars(req) v["metadatatype"] = metadatatype v["metafield"] = field v["error"] = err v["fieldtypes"] = getMetaFieldTypeNames() v["dateoptions"] = dateoption v["datatypes"] = attr v["requiredoptions"] = requiredoption v["fieldoptions"] = fieldoption v["metafields"] = metafields v["filtertype"] = req.params.get("filtertype", "") v["actpage"] = req.params.get("actpage") v["icons"] = {"externer Link": "/img/extlink.png", "Email": "/img/email.png"} v["url_targets"] = {"selbes Fenster": "same", "neues Fenster": "_blank"} v["valuelist"] = ("", "", "", "") if field.getFieldtype() == "url": v["valuelist"] = field.getValueList() while len(v["valuelist"]) != 4: v["valuelist"].append("") else: v["valuelist"] = field.getValueList() v["field"] = None if field.id: v["field"] = field v["adminfields"] = [] for t in getMetaFieldTypeNames(): f = getMetadataType(t) if 'attr_dict' in inspect.getargspec(f.getMaskEditorHTML).args: attr_dict = dict(field.items()) v["adminfields"] .append(f.getMaskEditorHTML(v["field"], metadatatype=metadatatype, language=lang(req), attr_dict=attr_dict)) else: v["adminfields"] .append(f.getMaskEditorHTML(v["field"], metadatatype=metadatatype, language=lang(req))) return req.getTAL("web/admin/modules/metatype_field.html", v, macro="modify_field")
def view(req): mappings = list(getMappings()) order = getSortCol(req) actfilter = getFilter(req) # filter if actfilter != "": if actfilter in ("all", "*", t(lang(req), "admin_filter_all")): None # all users elif actfilter == "0-9": num = re.compile(r'([0-9])') mappings = filter(lambda x: num.match(x.getName()), mappings) elif actfilter == "else" or actfilter == t(lang(req), "admin_filter_else"): all = re.compile(r'([a-z]|[A-Z]|[0-9])') mappings = filter(lambda x: not all.match(x.getName()), mappings) else: mappings = filter(lambda x: x.getName().lower().startswith(actfilter), mappings) pages = Overview(req, mappings) # sorting if order != "": if int(order[0:1]) == 0: mappings.sort(lambda x, y: cmp(x.getName().lower(), y.getName().lower())) elif int(order[0:1]) == 1: mappings.sort(lambda x, y: cmp(x.getNamespace().lower(), y.getNamespace().lower())) elif int(order[0:1]) == 2: mappings.sort(lambda x, y: cmp(x.getNamespaceUrl().lower(), y.getNamespaceUrl().lower())) elif int(order[0:1]) == 3: mappings.sort(lambda x, y: cmp(x.getDescription().lower(), y.getDescription().lower())) elif int(order[0:1]) == 4: mappings.sort(lambda x, y: cmp(len(x.getFields()), len(y.getFields()))) elif int(order[0:1]) == 5: mappings.sort(lambda x, y: cmp(x.getMappingType(), y.getMappingType())) elif int(order[0:1]) == 6: mappings.sort(lambda x, y: cmp(x.getActive(), y.getActive())) if int(order[1:]) == 1: mappings.reverse() else: mappings.sort(lambda x, y: cmp(x.getName().lower(), y.getName().lower())) v = getAdminStdVars(req) v["sortcol"] = pages.OrderColHeader( [ t( lang(req), "admin_mapping_col_1"), t( lang(req), "admin_mapping_col_2"), t( lang(req), "admin_mapping_col_3"), t( lang(req), "admin_mapping_col_4"), t( lang(req), "admin_mapping_col_5"), t( lang(req), "admin_mapping_col_6"), t( lang(req), "admin_mapping_col_7")]) v["mappings"] = mappings v["options"] = [] v["pages"] = pages v["actfilter"] = actfilter v["mappingtypes"] = "\n".join(getMappingTypes()) return req.getTAL("web/admin/modules/mapping.html", v, macro="view")
def view(req): mtypes = loadTypesFromDB() actfilter = getFilter(req) # filter if actfilter != "": if actfilter in ("all", "*", t(lang(req), "admin_filter_all")): None # all users elif actfilter == "0-9": num = re.compile(r'([0-9])') if req.params.get("filtertype", "") == "id": mtypes = filter(lambda x: num.match(x.getName()), mtypes) else: mtypes = filter(lambda x: num.match(x.getLongName()), mtypes) elif actfilter == "else" or actfilter == t(lang(req), "admin_filter_else"): all = re.compile(r'([a-z]|[A-Z]|[0-9]|\.)') if req.params.get("filtertype", "") == "id": mtypes = filter(lambda x: not all.match(x.getName()), mtypes) else: mtypes = filter(lambda x: not all.match(x.getLongName()), mtypes) else: if req.params.get("filtertype", "") == "id": mtypes = filter(lambda x: x.getName().lower().startswith(actfilter), mtypes) else: mtypes = filter(lambda x: x.getLongName().lower().startswith(actfilter), mtypes) pages = Overview(req, mtypes) order = getSortCol(req) # sorting if order != "": if int(order[0:1]) == 0: mtypes.sort(lambda x, y: cmp(x.getName().lower(), y.getName().lower())) elif int(order[0:1]) == 1: mtypes.sort(lambda x, y: cmp(x.getLongName().lower(), y.getLongName().lower())) elif int(order[0:1]) == 2: mtypes.sort(lambda x, y: cmp(x.getDescription().lower(), y.getDescription().lower())) elif int(order[0:1]) == 3: mtypes.sort(lambda x, y: cmp(x.getActive(), y.getActive())) elif int(order[0:1]) == 4: mtypes.sort(lambda x, y: cmp(x.getDatatypeString().lower(), y.getDatatypeString().lower())) elif int(order[0:1]) == 5: mtypes.sort(lambda x, y: cmp(x.metadatatype.getAccess("read"), y.metadatatype.getAccess("read"))) elif int(order[0:1]) == 6: mtypes.sort(lambda x, y: cmp(x.searchIndexCorrupt(), y.searchIndexCorrupt())) elif int(order[0:1]) == 7: mtypes.sort(lambda x, y: cmp(len(x.getAllItems()), len(y.getAllItems()))) if int(order[1:]) == 1: mtypes.reverse() else: mtypes.sort(lambda x, y: cmp(x.getName().lower(), y.getName().lower())) v = getAdminStdVars(req) v["sortcol"] = pages.OrderColHeader( [ t( lang(req), "admin_meta_col_1"), t( lang(req), "admin_meta_col_2"), t( lang(req), "admin_meta_col_3"), t( lang(req), "admin_meta_col_4"), t( lang(req), "admin_meta_col_5"), t( lang(req), "admin_meta_col_6")]) v["metadatatypes"] = mtypes v["datatypes"] = loadAllDatatypes() v["datatypes"].sort(lambda x, y: cmp(t(lang(req), x.getLongName()), t(lang(req), y.getLongName()))) v["pages"] = pages v["actfilter"] = actfilter v["filterattrs"] = [("id", "admin_metatype_filter_id"), ("name", "admin_metatype_filter_name")] v["filterarg"] = req.params.get("filtertype", "id") return req.getTAL("web/admin/modules/metatype.html", v, macro="view_type")
def showDetailList(req, id): metadatatype = getMetaType(id) metafields = metadatatype.getMetaFields() order = getSortCol(req) actfilter = getFilter(req) # resets filter to all if adding mask in /metatype view # if req.params.get('acttype') == 'mask' or req.params.get('acttype') == 'schema': # if req.path == '/metatype' and 'filterbutton' not in req.params: # actfilter = '*' # resets filter when going to a new view if 'filterbutton' not in req.params: actfilter = '*' # filter if actfilter != "": if actfilter in ("all", "*", t(lang(req), "admin_filter_all")): None # all users elif actfilter == "0-9": num = re.compile(r'([0-9])') if req.params.get("filtertype", "") == "name": metafields = filter(lambda x: num.match(x.getName()), metafields) else: metafields = filter(lambda x: num.match(x.getLabel()), metafields) elif actfilter == "else" or actfilter == t(lang(req), "admin_filter_else"): all = re.compile(r'([a-z]|[A-Z]|[0-9]|\.)') if req.params.get("filtertype", "") == "name": metafields = filter(lambda x: not all.match(x.getName()), metafields) else: metafields = filter(lambda x: not all.match(x.getLabel()), metafields) else: if req.params.get("filtertype", "") == "name": metafields = filter(lambda x: x.getName().lower().startswith(actfilter), metafields) else: metafields = filter(lambda x: x.getLabel().lower().startswith(actfilter), metafields) pages = Overview(req, metafields) # sorting if order != "": if int(order[0:1]) == 0: metafields.sort(lambda x, y: cmp(x.orderpos, y.orderpos)) elif int(order[0:1]) == 1: metafields.sort(lambda x, y: cmp(x.getName().lower(), y.getName().lower())) elif int(order[0:1]) == 2: metafields.sort(lambda x, y: cmp(x.getLabel().lower(), y.getLabel().lower())) elif int(order[0:1]) == 3: metafields.sort( lambda x, y: cmp(getMetaFieldTypeNames()[ustr(x.getFieldtype())], getMetaFieldTypeNames()[ustr(y.getFieldtype())])) if int(order[1:]) == 1: metafields.reverse() else: metafields.sort(lambda x, y: cmp(x.orderpos, y.orderpos)) v = getAdminStdVars(req) v["filterattrs"] = [("name", "admin_metafield_filter_name"), ("label", "admin_metafield_filter_label")] v["filterarg"] = req.params.get("filtertype", "name") v["sortcol"] = pages.OrderColHeader( ["", t(lang(req), "admin_metafield_col_1"), t(lang(req), "admin_metafield_col_2"), t(lang(req), "admin_metafield_col_3")]) v["metadatatype"] = metadatatype v["metafields"] = metafields v["fieldoptions"] = fieldoption v["fieldtypes"] = getMetaFieldTypeNames() v["pages"] = pages v["order"] = order v["actfilter"] = actfilter v["actpage"] = req.params.get("actpage") if ustr(req.params.get("page", "")).isdigit(): v["actpage"] = req.params.get("page") return req.getTAL("web/admin/modules/metatype_field.html", v, macro="view_field")
def FieldDetail(req, pid, id, err=0): _option = "" for key in req.params.keys(): if key.startswith("option_"): _option += key[7] if err == 0 and id == "": # new field field = Metafield(u"") db.session.commit() elif id != "": # edit field field = q(Metadatatype).get(pid).children.filter_by(name=id, type=u'metafield').scalar() else: # error filling values _fieldvalue = "" if req.params.get('mtype', '') + "_value" in req.params.keys(): _fieldvalue = ustr(req.params[req.params.get('mtype', '') + "_value"]) if (req.params.get("mname") == ""): field = Metafield(req.params.get("orig_name")) else: field = Metafield(req.params.get("mname")) field.setLabel(req.params.get("mlabel")) field.setOrderPos(req.params.get("orderpos")) field.setFieldtype(req.params.get("mtype")) field.setOption(_option) field.setValues(_fieldvalue) field.setDescription(req.params.get("mdescription")) db.session.commit() attr = {} metadatatype = getMetaType(pid) for t in metadatatype.getDatatypes(): content_class = Node.get_class_for_typestring(t) node = content_class(name=u'') try: attr.update(node.getTechnAttributes()) except AttributeError: logg.exception("attribute error in FieldDetail, continue") continue metafields = {} for fields in getFieldsForMeta(pid): if fields.getType() != "union": metafields[fields.name] = fields v = getAdminStdVars(req) v["metadatatype"] = metadatatype v["metafield"] = field v["error"] = err v["fieldtypes"] = getMetaFieldTypeNames() v["dateoptions"] = dateoption v["datatypes"] = attr v["requiredoptions"] = requiredoption v["fieldoptions"] = fieldoption v["metafields"] = metafields v["filtertype"] = req.params.get("filtertype", "") v["actpage"] = req.params.get("actpage") v["icons"] = {"externer Link": "/img/extlink.png", "Email": "/img/email.png"} v["url_targets"] = {"selbes Fenster": "same", "neues Fenster": "_blank"} v["valuelist"] = ("", "", "", "") if field.getFieldtype() == "url": v["valuelist"] = field.getValueList() while len(v["valuelist"]) != 4: v["valuelist"].append("") else: v["valuelist"] = field.getValueList() v["field"] = None if field.id: v["field"] = field v["adminfields"] = [] for t in getMetaFieldTypeNames(): f = getMetadataType(t) if 'attr_dict' in inspect.getargspec(f.getMaskEditorHTML).args: attr_dict = dict(field.attrs.items()) v["adminfields"] .append(f.getMaskEditorHTML(v["field"], metadatatype=metadatatype, language=lang(req), attr_dict=attr_dict)) else: v["adminfields"] .append(f.getMaskEditorHTML(v["field"], metadatatype=metadatatype, language=lang(req))) db.session.commit() return req.getTAL("web/admin/modules/metatype_field.html", v, macro="modify_field")
def showDetailList(req, id): metadatatype = getMetaType(id) metafields = metadatatype.getMetaFields() order = getSortCol(req) actfilter = getFilter(req) # resets filter to all if adding mask in /metatype view # if req.params.get('acttype') == 'mask' or req.params.get('acttype') == 'schema': # if req.path == '/metatype' and 'filterbutton' not in req.params: # actfilter = '*' # resets filter when going to a new view if 'filterbutton' not in req.params: actfilter = '*' # filter if actfilter != "": if actfilter in ("all", "*", t(lang(req), "admin_filter_all")): None # all users elif actfilter == "0-9": num = re.compile(r'([0-9])') if req.params.get("filtertype", "") == "name": metafields = filter(lambda x: num.match(x.getName()), metafields) else: metafields = filter(lambda x: num.match(x.getLabel()), metafields) elif actfilter == "else" or actfilter == t(lang(req), "admin_filter_else"): all = re.compile(r'([a-z]|[A-Z]|[0-9]|\.)') if req.params.get("filtertype", "") == "name": metafields = filter(lambda x: not all.match(x.getName()), metafields) else: metafields = filter(lambda x: not all.match(x.getLabel()), metafields) else: if req.params.get("filtertype", "") == "name": metafields = filter(lambda x: x.getName().lower().startswith(actfilter), metafields) else: metafields = filter(lambda x: x.getLabel().lower().startswith(actfilter), metafields) pages = Overview(req, metafields) # sorting if order != "": if int(order[0:1]) == 0: metafields.sort(lambda x, y: cmp(x.getOrderPos(), y.getOrderPos())) elif int(order[0:1]) == 1: metafields.sort(lambda x, y: cmp(x.getName().lower(), y.getName().lower())) elif int(order[0:1]) == 2: metafields.sort(lambda x, y: cmp(x.getLabel().lower(), y.getLabel().lower())) elif int(order[0:1]) == 3: metafields.sort( lambda x, y: cmp(getMetaFieldTypeNames()[str(x.getFieldtype())], getMetaFieldTypeNames()[str(y.getFieldtype())])) if int(order[1:]) == 1: metafields.reverse() else: metafields.sort(lambda x, y: cmp(x.getOrderPos(), y.getOrderPos())) v = getAdminStdVars(req) v["filterattrs"] = [("name", "admin_metafield_filter_name"), ("label", "admin_metafield_filter_label")] v["filterarg"] = req.params.get("filtertype", "name") v["sortcol"] = pages.OrderColHeader( ["", t(lang(req), "admin_metafield_col_1"), t(lang(req), "admin_metafield_col_2"), t(lang(req), "admin_metafield_col_3")]) v["metadatatype"] = metadatatype v["metafields"] = metafields v["fieldoptions"] = fieldoption v["fieldtypes"] = getMetaFieldTypeNames() v["pages"] = pages v["order"] = order v["actfilter"] = actfilter v["actpage"] = req.params.get("actpage") if str(req.params.get("page", "")).isdigit(): v["actpage"] = req.params.get("page") return req.getTAL("web/admin/modules/metatype_field.html", v, macro="view_field")
def WorkflowStepDetail(req, wid, wnid, err=0): workflow = getWorkflow(wid) nodelist = workflow.getSteps() v = getAdminStdVars(req) if err == 0 and wnid == "": # new workflowstep workflowstep = createWorkflowStep(name="", trueid="", falseid="", truelabel="", falselabel="", comment="") v["orig_name"] = req.params.get("orig_name", "") elif err == -1: # update steptype if req.params.get("stepid", ""): workflowstep = updateWorkflowStep( workflow, oldname=req.params.get("nname", ""), newname=req.params.get("nname", ""), type=req.params.get("ntype", "workflowstep"), trueid=req.params.get("ntrueid", ""), falseid=req.params.get("nfalseid", ""), truelabel=req.params.get("ntruelabel", ""), falselabel=req.params.get("nfalselabel", ""), comment=req.params.get("ncomment", "")) else: err = 0 workflowstep = createWorkflowStep( name=req.params.get("nname", ""), type=req.params.get("ntype", "workflowstep"), trueid=req.params.get("ntrueid", ""), falseid=req.params.get("nfalseid", ""), truelabel=req.params.get("ntruelabel", ""), falselabel=req.params.get("nfalselabel", ""), comment=req.params.get("ncomment", "")) v["orig_name"] = workflowstep.name elif wnid != "" and req.params.get("nname") != "": # edit field workflowstep = workflow.getStep(wnid) v["orig_name"] = workflowstep.name else: # error while filling values type = req.params.get("ntype", "workflowstep") if type == "": type = "workflowstep" workflowstep = createWorkflowStep( name=req.params.get("nname", ""), type=type, trueid=req.params.get("ntrueid", ""), falseid=req.params.get("nfalseid", ""), truelabel=req.params.get("ntruelabel", ""), falselabel=req.params.get("nfalselabel", ""), comment=req.params.get("ncomment", "")) v["orig_name"] = req.params.get("orig_name", "") if req.params.get("nytype", "") != "": workflowstep.setType(req.params.get("nytype", "")) v_part = {} v_part["fields"] = workflowstep.metaFields(lang(req)) or [] v_part["node"] = workflowstep v_part["hiddenvalues"] = {"wnodeid": workflowstep.name} try: rule = { "read": [ r.ruleset_name for r in workflowstep.access_ruleset_assocs.filter_by( ruletype='read') ], "write": [ r.ruleset_name for r in workflowstep.access_ruleset_assocs.filter_by( ruletype='write') ] } except: rule = {"read": [], "write": []} v["acl_read"] = makeList(req, "read", removeEmptyStrings(rule["read"]), {}, overload=0, type="read") v["acl_write"] = makeList(req, "write", removeEmptyStrings(rule["write"]), {}, overload=0, type="write") v["editor"] = req.getTAL("web/admin/modules/workflows.html", v_part, macro="view_editor") v["workflow"] = workflow v["workflowstep"] = workflowstep v["nodelist"] = nodelist v["workflowtypes"] = getWorkflowTypes() v["error"] = err v["update_type"] = req.params.get("ntype", u"") v["actpage"] = req.params.get("actpage") return req.getTAL("web/admin/modules/workflows.html", v, macro="modify_step")
def showMaskList(req, id): metadatatype = getMetaType(id) masks = metadatatype.getMasks() order = getSortCol(req) actfilter = getFilter(req) # resets filter to all if adding mask in /metatype view # if req.params.get('acttype') == 'mask' or req.params.get('acttype') == 'schema': # if req.path == '/metatype' and 'filterbutton' not in req.params: # actfilter = '*' # resets filter when going to a new view if 'filterbutton' not in req.params: actfilter = '*' # filter if actfilter != "": if actfilter in ("all", "*", t(lang(req), "admin_filter_all")): None # all users elif actfilter == "0-9": num = re.compile(r'([0-9])') masks = filter(lambda x: num.match(x.getName()), masks) elif actfilter == "else" or actfilter == t(lang(req), "admin_filter_else"): all = re.compile(r'([a-z]|[A-Z]|[0-9])') masks = filter(lambda x: not all.match(x.getName()), masks) else: masks = filter(lambda x: x.getName().lower().startswith(actfilter), masks) pages = Overview(req, masks) defaults = {} for mask in masks: if mask.getDefaultMask(): defaults[mask.getMasktype()] = mask.id # sorting if order != "": if int(order[0:1]) == 0: masks.sort(lambda x, y: cmp(x.getName().lower(), y.getName().lower())) elif int(order[0:1]) == 1: masks.sort(lambda x, y: cmp(x.getMasktype(), y.getMasktype())) elif int(order[0:1]) == 2: masks.sort(lambda x, y: cmp(x.getDescription(), y.getDescription())) elif int(order[0:1]) == 3: masks.sort(lambda x, y: cmp(x.getDefaultMask(), y.getDefaultMask())) elif int(order[0:1]) == 4: masks.sort(lambda x, y: cmp(x.getLanguage(), y.getLanguage())) if int(order[1:]) == 1: masks.reverse() else: masks.sort(lambda x, y: cmp(x.getOrderPos(), y.getOrderPos())) v = getAdminStdVars(req) v["filterattrs"] = [] v["filterarg"] = req.params.get("filtertype", "name") v["sortcol"] = pages.OrderColHeader( [ t( lang(req), "admin_mask_col_1"), t( lang(req), "admin_mask_col_2"), t( lang(req), "admin_mask_col_3"), t( lang(req), "admin_mask_col_4"), t( lang(req), "admin_mask_col_5"), t( lang(req), "admin_mask_col_6")]) v["metadatatype"] = metadatatype v["masktypes"] = getMaskTypes() v["lang_icons"] = {"de": "/img/flag_de.gif", "en": "/img/flag_en.gif", "no": "/img/emtyDot1Pix.gif"} v["masks"] = masks v["pages"] = pages v["order"] = order v["defaults"] = defaults v["order"] = order v["actfilter"] = actfilter return req.getTAL("web/admin/modules/metatype_mask.html", v, macro="view_mask")
def sendmailUser_mask(req, id, err=0): v = getAdminStdVars(req) v["path"] = req.path[1:] if id in ["execute", "execu"]: userid = req.params.get("userid") user = getUser(userid) if not user: path = req.path[1:].split("/") user = getExternalUser(userid, path[-1]) password = makeRandomPassword() user.resetPassword(password) text = req.params.get("text") text = text.replace("[wird eingesetzt]", password) try: mail.sendmail(req.params.get("from"), req.params.get("email"), req.params.get("subject"), text) except mail.SocketError: print "Socket error while sending mail" req.setStatus(httpstatus.HTTP_INTERNAL_SERVER_ERROR) return req.getTAL("web/admin/modules/user.html", v, macro="sendmailerror") return req.getTAL("web/admin/modules/user.html", v, macro="sendmaildone") user = getUser(id) if not user: path = req.path[1:].split("/") user = getExternalUser(id, path[-1]) collections = [] seen = {} access = acl.AccessData(user=user) for node in getAllCollections(): if access.hasReadAccess(node): if access.hasWriteAccess(node): collections.append(node.name + " (lesen/schreiben)") seen[node.id] = None for node in tree.getRoot("collections").getChildren(): if access.hasReadAccess(node) and node.id not in seen: collections.append(node.name + " (nur lesen)") x = {} x["name"] = "%s %s" % (user.getFirstName(), user.getLastName()) if (x["name"] == ""): x["name"] = user.getName() x["host"] = config.get("host.name") x["login"] = user.getName() x["isEditor"] = user.isEditor() x["collections"] = list() x["groups"] = user.getGroups() x["groups"].sort() x["language"] = lang(req) x["collections"] = collections x["collections"].sort() v["mailtext"] = req.getTAL("web/admin/modules/user.html", x, macro="emailtext").strip() v["email"] = user.getEmail() v["userid"] = user.getName() return req.getTAL("web/admin/modules/user.html", v, macro="sendmail")
def WorkflowStepDetail(req, wid, wnid, err=0): workflow = getWorkflow(wid) nodelist = workflow.getSteps() v = getAdminStdVars(req) if err == 0 and wnid == "": # new workflowstep workflowstep = createWorkflowStep(name="", trueid="", falseid="", truelabel="", falselabel="", comment="") workflowstep.id = "" v["orig_name"] = req.params.get("orig_name", "") elif err == -1: # update steptype if req.params.get("stepid", ""): workflowstep = updateWorkflowStep( workflow, oldname=req.params.get( "nname", ""), newname=req.params.get( "nname", ""), type=req.params.get( "ntype", "workflowstep"), trueid=req.params.get( "ntrueid", ""), falseid=req.params.get( "nfalseid", ""), truelabel=req.params.get( "ntruelabel", ""), falselabel=req.params.get( "nfalselabel", ""), comment=req.params.get( "ncomment", "")) else: err = 0 workflowstep = createWorkflowStep( name=req.params.get( "nname", ""), type=req.params.get( "ntype", "workflowstep"), trueid=req.params.get( "ntrueid", ""), falseid=req.params.get( "nfalseid", ""), truelabel=req.params.get( "ntruelabel", ""), falselabel=req.params.get( "nfalselabel", ""), comment=req.params.get( "ncomment", "")) if req.params.get("wnid", "") == "": workflowstep.id = "" v["orig_name"] = workflowstep.getName() elif wnid != "" and req.params.get("nname") != "": # edit field workflowstep = workflow.getStep(wnid) v["orig_name"] = workflowstep.getName() else: # error while filling values type = req.params.get("ntype", "workflowstep") if type == "": type = "workflowstep" workflowstep = createWorkflowStep( name=req.params.get( "nname", ""), type=type, trueid=req.params.get( "ntrueid", ""), falseid=req.params.get( "nfalseid", ""), truelabel=req.params.get( "ntruelabel", ""), falselabel=req.params.get( "nfalselabel", ""), comment=req.params.get( "ncomment", "")) v["orig_name"] = req.params.get("orig_name", "") if req.params.get("nytype", "") != "": workflowstep.setType(req.params.get("nytype", "")) v_part = {} v_part["fields"] = workflowstep.metaFields(lang(req)) or [] v_part["node"] = workflowstep v_part["hiddenvalues"] = {"wnodeid": workflowstep.name} rule = {"read": str(workflowstep.getAccess("read") or "").split(","), "write": str(workflowstep.getAccess("write") or "").split(",")} v["acl_read"] = makeList(req, "read", removeEmptyStrings(rule["read"]), {}, overload=0, type="read") v["acl_write"] = makeList(req, "write", removeEmptyStrings(rule["write"]), {}, overload=0, type="write") v["editor"] = req.getTAL("web/admin/modules/workflows.html", v_part, macro="view_editor") v["workflow"] = workflow v["workflowstep"] = workflowstep v["nodelist"] = nodelist v["workflowtypes"] = getWorkflowTypes() v["error"] = err v["update_type"] = req.params.get("ntype", "") v["actpage"] = req.params.get("actpage") return req.getTAL("web/admin/modules/workflows.html", v, macro="modify_step")
def WorkflowStepList(req, wid): global _cssclass, _page workflow = getWorkflow(wid) workflowsteps = list(workflow.getSteps()) order = getSortCol(req) actfilter = getFilter(req) # filter if actfilter != "": if actfilter in ("all", "*", t(lang(req), "admin_filter_all")): None # all users elif actfilter == "0-9": num = re.compile(r'([0-9])') workflowsteps = filter(lambda x: num.match(x.name), workflowsteps) elif actfilter == "else" or actfilter == t(lang(req), "admin_filter_else"): all = re.compile(r'([a-z]|[A-Z]|[0-9])') workflowsteps = filter(lambda x: not all.match(x.name), workflowsteps) else: workflowsteps = filter( lambda x: x.name.lower().startswith(actfilter), workflowsteps) pages = Overview(req, workflowsteps) # sorting if order != "": if int(order[0]) == 0: workflowsteps.sort( lambda x, y: cmp(x.name.lower(), y.name.lower())) elif int(order[0]) == 1: workflowsteps.sort(lambda x, y: cmp(x.type, y.type)) elif int(order[0]) == 2: workflowsteps.sort(lambda x, y: cmp(x.getTrueId(), y.getTrueId())) elif int(order[0]) == 3: workflowsteps.sort( lambda x, y: cmp(x.getFalseId(), y.getFalseId())) elif int(order[0]) == 4: workflowsteps.sort(lambda x, y: cmp(len(x.get("description")), len(y.get("description")))) # elif int(order[0]) == 5: # workflowstep.sort(lambda x, y: cmp(x.getAccess("read"), y.getAccess("read"))) # elif int(order[0]) == 6: # workflowstep.sort(lambda x, y: cmp(x.getAccess("write"), y.getAccess("write"))) if int(order[1]) == 1: workflowsteps.reverse() else: workflowsteps.sort(lambda x, y: cmp(x.name.lower(), y.name.lower())) v = getAdminStdVars(req) v["sortcol"] = pages.OrderColHeader([ t(lang(req), "admin_wfstep_col_1"), t(lang(req), "admin_wfstep_col_2"), t(lang(req), "admin_wfstep_col_3"), t(lang(req), "admin_wfstep_col_4"), t(lang(req), "admin_wfstep_col_5"), t(lang(req), "admin_wfstep_col_6"), t(lang(req), "admin_wfstep_col_7") ]) v["workflow"] = workflow v["workflowsteps"] = workflowsteps v["pages"] = pages v["actfilter"] = actfilter return req.getTAL("web/admin/modules/workflows.html", v, macro="view_step")
def view(req): mappings = list(getMappings()) order = getSortCol(req) actfilter = getFilter(req) # filter if actfilter != "": if actfilter in ("all", "*", t(lang(req), "admin_filter_all")): None # all users elif actfilter == "0-9": num = re.compile(r'([0-9])') mappings = filter(lambda x: num.match(x.getName()), mappings) elif actfilter == "else" or actfilter == t(lang(req), "admin_filter_else"): all = re.compile(r'([a-z]|[A-Z]|[0-9])') mappings = filter(lambda x: not all.match(x.getName()), mappings) else: mappings = filter( lambda x: x.getName().lower().startswith(actfilter), mappings) pages = Overview(req, mappings) # sorting if order != "": if int(order[0:1]) == 0: mappings.sort(lambda x, y: cmp(x.getName().lower(), y.getName().lower())) elif int(order[0:1]) == 1: mappings.sort(lambda x, y: cmp(x.getNamespace().lower(), y.getNamespace().lower())) elif int(order[0:1]) == 2: mappings.sort(lambda x, y: cmp(x.getNamespaceUrl().lower(), y.getNamespaceUrl().lower())) elif int(order[0:1]) == 3: mappings.sort(lambda x, y: cmp(x.getDescription().lower(), y.getDescription().lower())) elif int(order[0:1]) == 4: mappings.sort( lambda x, y: cmp(len(x.getFields()), len(y.getFields()))) elif int(order[0:1]) == 5: mappings.sort( lambda x, y: cmp(x.getMappingType(), y.getMappingType())) elif int(order[0:1]) == 6: mappings.sort(lambda x, y: cmp(x.getActive(), y.getActive())) if int(order[1:]) == 1: mappings.reverse() else: mappings.sort(lambda x, y: cmp(x.getName().lower(), y.getName().lower())) v = getAdminStdVars(req) v["sortcol"] = pages.OrderColHeader([ t(lang(req), "admin_mapping_col_1"), t(lang(req), "admin_mapping_col_2"), t(lang(req), "admin_mapping_col_3"), t(lang(req), "admin_mapping_col_4"), t(lang(req), "admin_mapping_col_5"), t(lang(req), "admin_mapping_col_6"), t(lang(req), "admin_mapping_col_7") ]) v["mappings"] = mappings v["options"] = [] v["pages"] = pages v["actfilter"] = actfilter v["mappingtypes"] = "\n".join(getMappingTypes()) return req.getTAL("web/admin/modules/mapping.html", v, macro="view")
def showMaskList(req, id): metadatatype = getMetaType(id) masks = metadatatype.getMasks() order = getSortCol(req) actfilter = getFilter(req) # resets filter to all if adding mask in /metatype view # if req.params.get('acttype') == 'mask' or req.params.get('acttype') == 'schema': # if req.path == '/metatype' and 'filterbutton' not in req.params: # actfilter = '*' # resets filter when going to a new view if 'filterbutton' not in req.params: actfilter = '*' # filter if actfilter != "": if actfilter in ("all", "*", t(lang(req), "admin_filter_all")): None # all users elif actfilter == "0-9": num = re.compile(r'([0-9])') masks = filter(lambda x: num.match(x.name), masks) elif actfilter == "else" or actfilter == t(lang(req), "admin_filter_else"): all = re.compile(r'([a-z]|[A-Z]|[0-9])') masks = filter(lambda x: not all.match(x.name), masks) else: masks = filter(lambda x: x.name.lower().startswith(actfilter), masks) pages = Overview(req, masks) defaults = {} for mask in masks: if mask.getDefaultMask(): defaults[mask.getMasktype()] = mask.id # sorting if order != "": if int(order[0:1]) == 0: masks.sort(lambda x, y: cmp(x.name.lower(), y.name.lower())) elif int(order[0:1]) == 1: masks.sort(lambda x, y: cmp(x.getMasktype(), y.getMasktype())) elif int(order[0:1]) == 2: masks.sort(lambda x, y: cmp(x.getDescription(), y.getDescription())) elif int(order[0:1]) == 3: masks.sort(lambda x, y: cmp(x.getDefaultMask(), y.getDefaultMask())) elif int(order[0:1]) == 4: masks.sort(lambda x, y: cmp(x.getLanguage(), y.getLanguage())) if int(order[1:]) == 1: masks.reverse() else: masks.sort(lambda x, y: cmp(x.getOrderPos(), y.getOrderPos())) v = getAdminStdVars(req) v["filterattrs"] = [] v["filterarg"] = req.params.get("filtertype", "name") v["sortcol"] = pages.OrderColHeader( [ t( lang(req), "admin_mask_col_1"), t( lang(req), "admin_mask_col_2"), t( lang(req), "admin_mask_col_3"), t( lang(req), "admin_mask_col_4"), t( lang(req), "admin_mask_col_5"), t( lang(req), "admin_mask_col_6")]) v["metadatatype"] = metadatatype v["masktypes"] = getMaskTypes() v["lang_icons"] = {"de": "/img/flag_de.gif", "en": "/img/flag_en.gif", "no": "/img/emtyDot1Pix.gif"} v["masks"] = masks v["pages"] = pages v["order"] = order v["defaults"] = defaults v["order"] = order v["actfilter"] = actfilter return req.getTAL("web/admin/modules/metatype_mask.html", v, macro="view_mask")
def view(req): mtypes = q(Metadatatypes).one().children.order_by("name").all() actfilter = getFilter(req) # filter if actfilter != "": if actfilter in ("all", "*", t(lang(req), "admin_filter_all")): None # all users elif actfilter == "0-9": num = re.compile(r'([0-9])') if req.params.get("filtertype", "") == "id": mtypes = filter(lambda x: num.match(x.name), mtypes) else: mtypes = filter(lambda x: num.match(x.getLongName()), mtypes) elif actfilter == "else" or actfilter == t(lang(req), "admin_filter_else"): all = re.compile(r'([a-z]|[A-Z]|[0-9]|\.)') if req.params.get("filtertype", "") == "id": mtypes = filter(lambda x: not all.match(x.name), mtypes) else: mtypes = filter(lambda x: not all.match(x.getLongName()), mtypes) else: if req.params.get("filtertype", "") == "id": mtypes = filter(lambda x: x.name.lower().startswith(actfilter), mtypes) else: mtypes = filter(lambda x: x.getLongName().lower().startswith(actfilter), mtypes) pages = Overview(req, mtypes) order = getSortCol(req) # sorting if order != "": if int(order[0:1]) == 0: mtypes.sort(lambda x, y: cmp(x.name.lower(), y.name.lower())) elif int(order[0:1]) == 1: mtypes.sort(lambda x, y: cmp(x.getLongName().lower(), y.getLongName().lower())) elif int(order[0:1]) == 2: mtypes.sort(lambda x, y: cmp(x.getDescription().lower(), y.getDescription().lower())) elif int(order[0:1]) == 3: mtypes.sort(lambda x, y: cmp(x.getActive(), y.getActive())) elif int(order[0:1]) == 4: mtypes.sort(lambda x, y: cmp(x.getDatatypeString().lower(), y.getDatatypeString().lower())) if int(order[1:]) == 1: mtypes.reverse() else: mtypes.sort(lambda x, y: cmp(x.name.lower(), y.name.lower())) v = getAdminStdVars(req) v["sortcol"] = pages.OrderColHeader( [ t( lang(req), "admin_meta_col_1"), t( lang(req), "admin_meta_col_2"), t( lang(req), "admin_meta_col_3"), t( lang(req), "admin_meta_col_4"), t( lang(req), "admin_meta_col_5"), t( lang(req), "admin_meta_col_6")]) v["metadatatypes"] = mtypes v["get_classname_for_typestring"] = Node.get_classname_for_typestring v['dtypes'] = Node.__mapper__.polymorphic_map # is used to prevent missing plugins from causing error v["pages"] = pages v["actfilter"] = actfilter v["filterattrs"] = [("id", "admin_metatype_filter_id"), ("name", "admin_metatype_filter_name")] v["filterarg"] = req.params.get("filtertype", "id") v["csrf"] = req.csrf_token.current_token return req.getTAL("web/admin/modules/metatype.html", v, macro="view_type")