def data_rules_template(categoryid, templateid, userid=None): template = get_template_by_id(templateid) category = get_category_by_id(categoryid) if userid != None: user = get_user_by_id(userid) rules = get_rules(conflevel=confuser, template=template, category=category, user=user) else: rules = get_rules(template=template, category=category) ret = [] for tag in rules: ntag = tag['tag'].name for rule in tag['rules']: trule = {'name': rule['rule'].name, 'id': rule['rule'].id, 'tag': ntag} if rule['choice'].has_key('current'): trule['current-state'] = rule['choice']['current'].state trule['current-value'] = rule['choice']['current'].value if rule['choice'].has_key('herited'): trule['herited-state'] = rule['choice']['herited'].state trule['herited-value'] = rule['choice']['herited'].value ret.append(trule) return json.dumps(ret)
def render_POST(self, request): if request.postpath[0] == 'data_categories_paned': groupid = request.args['id'][0] groupname = request.args['name'][0] return data_categories_paned(groupname, groupid) elif request.postpath[0] == 'data_groups_tree': id = request.args['node'][0] if id == 'src': id = None elif id[0] == 't': #template tid=int(id[1:]) if tid == 0: tid=None return data_templates_tree(tid) elif id == '': id = None else: id = int(id) return data_groups_tree(id) elif request.postpath[0] == 'data_rules_group': userid = request.args['userid'][0] groupid = int(request.args['groupid'][0]) categoryid = int(request.args['categoryid'][0]) if userid == '': userid = None else: userid = int(userid) return data_rules_group(categoryid, groupid, userid) elif request.postpath[0] == 'data_rules_template': userid = request.args['userid'][0] templateid = int(request.args['templateid'][0]) categoryid = int(request.args['categoryid'][0]) if userid == '': userid = None else: userid = int(userid) return data_rules_template(categoryid, templateid, userid) elif request.postpath[0] == 'set_choice_group': userid = request.args['userid'][0] group = get_group_by_id(int(request.args['groupid'][0])) rule = get_rule_by_id(int(request.args['ruleid'][0])) state = unicode(request.args['state'][0]) value = unicode(request.args['value'][0]) if userid == '': user = None else: user = get_user_by_id(int(userid)) choice = set_choice(rule=rule, group=group, user=user, state=state, value=value) session.commit() session.flush() return 'ok' elif request.postpath[0] == 'set_choice_template': userid = request.args['userid'][0] template = get_template_by_id(int(request.args['templateid'][0])) rule = get_rule_by_id(int(request.args['ruleid'][0])) state = unicode(request.args['state'][0]) value = unicode(request.args['value'][0]) if userid == '': user = None else: user = get_user_by_id(int(userid)) choice = set_choice(rule=rule, template=template, user=user, state=state, value=value) session.commit() session.flush() return 'ok' else: return "hu?"