def getObjectDefaultView(context): """Get the id of an object's default view """ # courtesy of Producs.CacheSetup browserDefault = IBrowserDefault(context, None) if browserDefault is not None: try: return stripLeadingCharacters(browserDefault.defaultView()) except AttributeError: # Might happen if FTI didn't migrate yet. pass if not IDynamicType.providedBy(context): return None fti = context.getTypeInfo() try: # XXX: This isn't quite right since it assumes the action starts #with ${object_url} action = fti.getActionInfo('object/view')['url'].split('/')[-1] except ValueError: # If the action doesn't exist, stop return None # Try resolving method aliases because we need a real template_id here if action: action = fti.queryMethodID(action, default = action, context = context) else: action = fti.queryMethodID('(Default)', default = action, context = context) return stripLeadingCharacters(action)
def getObjectDefaultView(context): """Get the id of an object's default view """ # courtesy of Producs.CacheSetup browserDefault = IBrowserDefault(context, None) if browserDefault is not None: try: return browserDefault.defaultView() except AttributeError: # Might happen if FTI didn't migrate yet. pass if not IDynamicType.providedBy(context): return None fti = context.getTypeInfo() try: # XXX: This isn't quite right since it assumes the action starts with ${object_url} action = fti.getActionInfo('object/view')['url'].split('/')[-1] except ValueError: # If the action doesn't exist, stop return None # Try resolving method aliases because we need a real template_id here if action: action = fti.queryMethodID(action, default=action, context=context) else: action = fti.queryMethodID('(Default)', default=action, context=context) # Strip off leading / and/or @@ if action and action[0] == '/': action = action[1:] if action and action.startswith('@@'): action = action[2:] return action