relation view [doing]

This commit is contained in:
pycook 2019-11-28 21:17:06 +08:00
parent 38b4293a33
commit e351c7cf36
2 changed files with 7 additions and 5 deletions

View File

@ -114,8 +114,10 @@ class PreferenceManager(object):
def get_relation_view(): def get_relation_view():
views = PreferenceRelationView.get_by(to_dict=True) views = PreferenceRelationView.get_by(to_dict=True)
result = dict() result = dict()
name2id = list()
for view in views: for view in views:
result.setdefault(view['name'], []).extend(json.loads(view['cr_ids'])) result.setdefault(view['name'], []).extend(json.loads(view['cr_ids']))
name2id.append([view['name'], view['id']])
id2type = dict() id2type = dict()
for view_name in result: for view_name in result:
@ -129,7 +131,7 @@ class PreferenceManager(object):
for type_id in id2type: for type_id in id2type:
id2type[type_id] = CITypeCache.get(type_id).to_dict() id2type[type_id] = CITypeCache.get(type_id).to_dict()
return result, id2type return result, id2type, sorted(name2id, key=lambda x: x[1])
@classmethod @classmethod
def create_or_update_relation_view(cls, name, cr_ids): def create_or_update_relation_view(cls, name, cr_ids):

View File

@ -71,18 +71,18 @@ class PreferenceRelationApiView(APIView):
url_prefix = "/preference/relation/view" url_prefix = "/preference/relation/view"
def get(self): def get(self):
views, id2type = PreferenceManager.get_relation_view() views, id2type, name2id = PreferenceManager.get_relation_view()
return self.jsonify(views=views, id2type=id2type) return self.jsonify(views=views, id2type=id2type, name2id=name2id)
@role_required(RoleEnum.CONFIG) @role_required(RoleEnum.CONFIG)
@args_required("name") @args_required("name")
def post(self): def post(self):
name = request.values.get("name") name = request.values.get("name")
cr_ids = request.values.get("cr_ids") cr_ids = request.values.get("cr_ids")
views, id2type = PreferenceManager.create_or_update_relation_view(name, cr_ids) views, id2type, name2id = PreferenceManager.create_or_update_relation_view(name, cr_ids)
return self.jsonify(views, id2type) return self.jsonify(views=views, id2type=id2type, name2id=name2id)
def put(self): def put(self):
return self.post() return self.post()