def showFieldOverview(req): path = req.path[1:].split("/") fields = getFieldsForMeta(path[1]) fields.sort(lambda x, y: cmp(x.getOrderPos(), y.getOrderPos())) v = {} v["metadatatype"] = getMetaType(path[1]) v["metafields"] = fields v["fieldoptions"] = fieldoption v["fieldtypes"] = getMetaFieldTypeNames() return req.getTAL("web/admin/modules/metatype.html", v, macro="show_fieldoverview")
def showFieldOverview(req): path = req.path[1:].split("/") fields = getFieldsForMeta(path[1]) fields.sort(lambda x, y: cmp(x.orderpos, y.orderpos)) v = {} v["metadatatype"] = getMetaType(path[1]) v["metafields"] = fields v["fieldoptions"] = fieldoption v["fieldtypes"] = getMetaFieldTypeNames() v["csrf"] = req.csrf_token.current_token return req.getTAL("web/admin/modules/metatype.html", v, macro="show_fieldoverview")
def getMetaEditor(self, item, req): """ editor mask for field definition """ attr = {} fields = [] pidnode = None if "pid" not in req.params.keys(): for p in item.getParents(): try: if p.getMasktype() == "export": pidnode = p break except: continue metadatatype = req.params.get("metadatatype") for t in metadatatype.getDatatypes(): node = tree.Node(type=t) attr.update(node.getTechnAttributes()) if req.params.get("op", "") == "new": pidnode = tree.getNode(req.params.get("pid")) if hasattr(pidnode, 'getMasktype') and pidnode.getMasktype() in ("vgroup", "hgroup"): for field in pidnode.getAllChildren(): if field.getType().getName( ) == "maskitem" and field.id != pidnode.id: fields.append(field) else: for m in metadatatype.getMasks(): if str(m.id) == str(req.params.get("pid")): for field in m.getChildren(): fields.append(field) fields.sort(lambda x, y: cmp(x.getOrderPos(), y.getOrderPos())) add_values = [] val = "" if item.getField(): val = item.getField().getValues() for t in getMetaFieldTypeNames(): f = getMetadataType(t) add_values.append( f.getMaskEditorHTML(val, metadatatype=metadatatype, language=lang(req))) metafields = metadatatype.getMetaFields() metafields.sort(lambda x, y: cmp(x.getName().lower(), y.getName().lower())) metafieldtypes = getMetaFieldTypes().values() metafieldtypes.sort(lambda x, y: cmp( translate(x.getName(), request=req).lower(), translate(y.getName(), request=req).lower())) v = {} v["op"] = req.params.get("op", "") v["pid"] = req.params.get("pid", "") v["item"] = item v["metafields"] = metafields v["fields"] = fields v["fieldtypes"] = metafieldtypes v["dateoption"] = dateoption v["t_attrs"] = attr v["icons"] = { "externer Link": "/img/extlink.png", "Email": "/img/email.png" } v["add_values"] = add_values v["translate"] = translate v["language"] = lang(req) if pidnode and hasattr( pidnode, 'getMasktype') and pidnode.getMasktype() == "export": v["mappings"] = [] for m in pidnode.getExportMapping(): v["mappings"].append(tree.getNode(m)) return req.getTAL("schema/mask/field.html", v, macro="metaeditor_" + pidnode.getMasktype()) else: return req.getTAL("schema/mask/field.html", v, macro="metaeditor")
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 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 getMetaEditor(self, item, req): """ editor mask for field definition """ attr = {} fields = [] pidnode = None if "pid" not in req.params.keys(): for p in item.getParents(): try: if p.getMasktype() == "export": pidnode = p break except: continue metadatatype = req.params.get("metadatatype") for t in metadatatype.getDatatypes(): content_class = Node.get_class_for_typestring(t) node = content_class(name=u'') attr.update(node.getTechnAttributes()) if req.params.get("op", "") == "new": pidnode = q(Node).get(req.params.get("pid")) if hasattr(pidnode, 'getMasktype') and pidnode.getMasktype() in ("vgroup", "hgroup"): # XXX: getAllChildren does not exist anymore, is this dead code? for field in pidnode.getAllChildren(): if field.getType().getName( ) == "maskitem" and field.id != pidnode.id: fields.append(field) else: for m in metadatatype.getMasks(): if ustr(m.id) == ustr(req.params.get("pid")): for field in m.getChildren(): fields.append(field) fields.sort(lambda x, y: cmp(x.getOrderPos(), y.getOrderPos())) add_values = [] val = u"" if item.getField(): val = item.getField().getValues() db.session.commit() for t in getMetaFieldTypeNames(): f = getMetadataType(t) add_values.append( f.getMaskEditorHTML(val, metadatatype=metadatatype, language=lang(req))) metafields = metadatatype.getMetaFields() metafields.sort(lambda x, y: cmp(x.getName().lower(), y.getName().lower())) metafieldtypes = getMetaFieldTypes().values() metafieldtypes.sort(lambda x, y: cmp( translate(x.getName(), request=req).lower(), translate(y.getName(), request=req).lower())) add_descriptions = [] for metafield in metafields: add_descriptions.append( '<div style="display:none" id="div_%d" name="%s" description="%s"/>' % (metafield.id, metafield.name, metafield.getDescription())) v = {} v["op"] = req.params.get("op", "") v["pid"] = req.params.get("pid", "") v["item"] = item v["metafields"] = metafields v["fields"] = fields v["fieldtypes"] = metafieldtypes v["dateoption"] = dateoption v["t_attrs"] = attr v["icons"] = { "externer Link": "/img/extlink.png", "Email": "/img/email.png" } v["add_values"] = add_values v["add_descriptions"] = add_descriptions v["translate"] = translate v["language"] = lang(req) if pidnode and hasattr( pidnode, 'getMasktype') and pidnode.getMasktype() == "export": v["mappings"] = [] for m in pidnode.getExportMapping(): v["mappings"].append(q(Node).get(m)) return req.getTAL("schema/mask/field.html", v, macro="metaeditor_" + pidnode.getMasktype()) else: return req.getTAL("schema/mask/field.html", v, macro="metaeditor")
def getMetaEditor(self, item, req): """ editor mask for field definition """ attr = {} fields = [] pidnode = None if "pid" not in req.params.keys(): for p in item.getParents(): try: if p.getMasktype() == "export": pidnode = p break except: continue metadatatype = req.params.get("metadatatype") for t in metadatatype.getDatatypes(): content_class = Node.get_class_for_typestring(t) node = content_class(name=u'') attr.update(node.getTechnAttributes()) if req.params.get("op", "") == "new": pidnode = q(Node).get(req.params.get("pid")) if hasattr(pidnode, 'getMasktype') and pidnode.getMasktype() in ("vgroup", "hgroup"): # XXX: getAllChildren does not exist anymore, is this dead code? for field in pidnode.getAllChildren(): if field.getType().getName() == "maskitem" and field.id != pidnode.id: fields.append(field) else: for m in metadatatype.getMasks(): if ustr(m.id) == ustr(req.params.get("pid")): for field in m.getChildren(): fields.append(field) fields.sort(lambda x, y: cmp(x.getOrderPos(), y.getOrderPos())) add_values = [] val = u"" if item.getField(): val = item.getField().getValues() db.session.commit() for t in getMetaFieldTypeNames(): f = getMetadataType(t) add_values.append(f.getMaskEditorHTML(val, metadatatype=metadatatype, language=lang(req))) metafields = metadatatype.getMetaFields() metafields.sort(lambda x, y: cmp(x.getName().lower(), y.getName().lower())) metafieldtypes = getMetaFieldTypes().values() metafieldtypes.sort(lambda x, y: cmp(translate(x.getName(), request=req).lower(), translate(y.getName(), request=req).lower())) add_descriptions = [] for metafield in metafields: add_descriptions.append('<div style="display:none" id="div_%d" name="%s" description="%s"/>' % (metafield.id, metafield.name, metafield.getDescription())) v = {} v["op"] = req.params.get("op", "") v["pid"] = req.params.get("pid", "") v["item"] = item v["metafields"] = metafields v["fields"] = fields v["fieldtypes"] = metafieldtypes v["dateoption"] = dateoption v["t_attrs"] = attr v["icons"] = {"externer Link": "/img/extlink.png", "Email": "/img/email.png"} v["add_values"] = add_values v["add_descriptions"] = add_descriptions v["translate"] = translate v["language"] = lang(req) if pidnode and hasattr(pidnode, 'getMasktype') and pidnode.getMasktype() == "export": v["mappings"] = [] for m in pidnode.getExportMapping(): v["mappings"].append(q(Node).get(m)) return req.getTAL("schema/mask/field.html", v, macro="metaeditor_" + pidnode.getMasktype()) else: return req.getTAL("schema/mask/field.html", v, macro="metaeditor")
def getMetaEditor(self, item, req): """ editor mask for field definition """ attr = {} fields = [] pidnode = None if "pid" not in req.params.keys(): for p in item.getParents(): try: if p.getMasktype() == "export": pidnode = p break except: continue metadatatype = req.params.get("metadatatype") for t in metadatatype.getDatatypes(): node = tree.Node(type=t) attr.update(node.getTechnAttributes()) if req.params.get("op", "") == "new": pidnode = tree.getNode(req.params.get("pid")) if hasattr(pidnode, 'getMasktype') and pidnode.getMasktype() in ("vgroup", "hgroup"): for field in pidnode.getAllChildren(): if field.getType().getName() == "maskitem" and field.id != pidnode.id: fields.append(field) else: for m in metadatatype.getMasks(): if str(m.id) == str(req.params.get("pid")): for field in m.getChildren(): fields.append(field) fields.sort(lambda x, y: cmp(x.getOrderPos(), y.getOrderPos())) add_values = [] val = "" if item.getField(): val = item.getField().getValues() for t in getMetaFieldTypeNames(): f = getMetadataType(t) add_values.append(f.getMaskEditorHTML(val, metadatatype=metadatatype, language=lang(req))) metafields = metadatatype.getMetaFields() metafields.sort(lambda x, y: cmp(x.getName().lower(), y.getName().lower())) metafieldtypes = getMetaFieldTypes().values() metafieldtypes.sort(lambda x, y: cmp(translate(x.getName(), request=req).lower(), translate(y.getName(), request=req).lower())) v = {} v["op"] = req.params.get("op", "") v["pid"] = req.params.get("pid", "") v["item"] = item v["metafields"] = metafields v["fields"] = fields v["fieldtypes"] = metafieldtypes v["dateoption"] = dateoption v["t_attrs"] = attr v["icons"] = {"externer Link": "/img/extlink.png", "Email": "/img/email.png"} v["add_values"] = add_values v["translate"] = translate v["language"] = lang(req) if pidnode and hasattr(pidnode, 'getMasktype') and pidnode.getMasktype() == "export": v["mappings"] = [] for m in pidnode.getExportMapping(): v["mappings"].append(tree.getNode(m)) return req.getTAL("schema/mask/field.html", v, macro="metaeditor_" + pidnode.getMasktype()) else: return req.getTAL("schema/mask/field.html", v, macro="metaeditor")
def showInfo(req): return req.getTAL("web/admin/modules/metatype.html", { "fieldtypes": getMetaFieldTypeNames(), "csrf": req.csrf_token.current_token }, macro="show_info")
def showInfo(req): return req.getTAL("web/admin/modules/metatype.html", {"fieldtypes": getMetaFieldTypeNames()}, macro="show_info")
def showInfo(req): return req.getTAL("web/admin/modules/metatype.html", {"fieldtypes": getMetaFieldTypeNames(), "csrf": req.csrf_token.current_token}, macro="show_info")