Skip to content

Commit

Permalink
Swagger-UI (PoC) implement metaobj_manager
Browse files Browse the repository at this point in the history
  • Loading branch information
zmsdev committed Jul 17, 2023
1 parent c516c13 commit 7eb1c3d
Show file tree
Hide file tree
Showing 6 changed files with 24 additions and 9 deletions.
2 changes: 1 addition & 1 deletion Products/zms/ZMSItem.py
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@ def display_icon(self, REQUEST, meta_type=None, key='icon', zpt=None):
if meta_type is None:
return self.icon
else:
return self.aq_parent.display_icon( REQUEST, meta_type, key, zpt)
return self.aq_parent.display_icon( REQUEST, meta_type, key)


# --------------------------------------------------------------------------
Expand Down
6 changes: 6 additions & 0 deletions Products/zms/rest_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,12 @@ def __call__(self, REQUEST=None, **kw):
q = {k:v for k,v in REQUEST.form.items()}
l = catalog(REQUEST.form)
data = [{item_name:r[item_name] for item_name in catalog.schema()} for r in l]
elif context.meta_type == 'ZMSMetamodelProvider':
data = {}
for id in context.getMetaobjIds():
d = {}
d['icon_clazz'] = context.aq_parent.zmi_icon(name=id)
data[id] = d
else:
if self.ids == ['get_body_content']:
REQUEST.RESPONSE.setHeader('Content-Type','text/html')
Expand Down
4 changes: 2 additions & 2 deletions Products/zms/zmslinkelement.py
Original file line number Diff line number Diff line change
Expand Up @@ -339,13 +339,13 @@ def getTitle(self, REQUEST):
# --------------------------------------------------------------------------
# ZMSLinkElement.display_icon:
# --------------------------------------------------------------------------
def display_icon(self, REQUEST, meta_type=None, key='icon', zpt=True):
def display_icon(self, REQUEST=None, meta_type=None):
context = self
if self.isEmbedded(REQUEST):
ref_obj = self.getRefObj()
if ref_obj is not None:
context = ref_obj
return zmsobject.ZMSObject.display_icon(context, REQUEST=REQUEST, meta_type=meta_type, key=key, zpt=zpt)
return zmsobject.ZMSObject.display_icon(context, REQUEST=REQUEST, meta_type=meta_type)


# --------------------------------------------------------------------------
Expand Down
3 changes: 1 addition & 2 deletions Products/zms/zmsobject.py
Original file line number Diff line number Diff line change
Expand Up @@ -592,7 +592,7 @@ def zmi_icon(self,*args, **kwargs):
# @param REQUEST
# @deprecated
# --------------------------------------------------------------------------
def display_icon(self, REQUEST={}, meta_type=None, key='icon', zpt=True):
def display_icon(self, REQUEST=None, meta_type=None):
""" ZMSObject.display_icon """
id = standard.nvl(meta_type, self.meta_id)
name = 'fas fa-exclamation-triangle'
Expand All @@ -601,7 +601,6 @@ def display_icon(self, REQUEST={}, meta_type=None, key='icon', zpt=True):
if id in self.getMetaobjIds( sort=0) + ['ZMSTrashcan']:
name = self.evalMetaobjAttr( '%s.%s'%(id, 'icon_clazz'))
if not name:
metaObj = self.getMetaobj(id)
names = {'ZMSResource':'fas fa-asterisk icon-asterisk','ZMSLibrary':'fas fa-flask icon-beaker','ZMSPackage':'fas fa-suitcase icon-suitcase','ZMSRecordSet':'far fa-list-alt icon-list','ZMSReference':'fas fa-link icon-link','ZMSTrashcan':'fas fa-trash'}
name = names.get(id, 'fas fa-file-alt icon-file-alt')
if meta_type is None:
Expand Down
5 changes: 2 additions & 3 deletions Products/zms/zmsproxyobject.py
Original file line number Diff line number Diff line change
Expand Up @@ -404,10 +404,9 @@ def getBodyContent(self, REQUEST, forced=False):
# --------------------------------------------------------------------------
# ZMSProxyObject.display_icon:
# --------------------------------------------------------------------------
def display_icon(self, REQUEST, meta_type=None, key='icon', zpt=None):
def display_icon(self, REQUEST=None, meta_type=None):
proxy = self.proxy
req = self.__request__( REQUEST)
rtn = proxy.display_icon( req, meta_type, key, zpt)
rtn = proxy.display_icon( REQUEST, meta_type)
return rtn


Expand Down
13 changes: 12 additions & 1 deletion tests/test_rest_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,18 @@ def test_zmsindex(self):
self.assertEqual( len(actual), 15)


def __test_get(self):
def test_metaobj_manager(self):
name = '++rest_api'
path_to_handle = [name, 'metaobj_manager']
request = MockHTTPRequest({'REQUEST_METHOD':'GET','TraversalRequestNameStack':path_to_handle,'path_to_handle':path_to_handle})
print("path_to_handle", request.get('path_to_handle'))
actual = json.loads( self.context.__bobo_traverse__(request, name)(request))
print(json.dumps(actual))
self.assertTrue(isinstance(actual, dict))
self.assertEqual( len(actual), 38)


def test_get(self):
count = 0
for document in self.context.getTreeNodes(MockHTTPRequest(), 'ZMSDocument'):
name = '++rest_api'
Expand Down

0 comments on commit 7eb1c3d

Please sign in to comment.