def get_model_class(self): model = self.Meta.model if self.Meta.model else self.current.input[ 'model'] if isinstance(model, Model): return model else: return model_registry.get_model(model)
def _add_crud(self, model_data, object_type, results): """ Creates a menu entry for given model data. Updates results in place. Args: model_data: Model data. object_type: Relation name. results: Results dict. """ model = model_registry.get_model(model_data['name']) field_name = model_data.get('field') verbose_name = model_data.get('verbose_name', model.Meta.verbose_name_plural) category = model_data.get('category', settings.DEFAULT_OBJECT_CATEGORY_NAME) wf_dict = { "text": verbose_name, "wf": model_data.get('wf', "crud"), "model": model_data['name'], "kategori": category } if field_name: wf_dict['param'] = field_name results[object_type].append(wf_dict) self._add_to_quick_menu(wf_dict['model'], wf_dict)
def get_pool_context(self): # TODO: Add in-process caching context = {self.current.lane_name: self.current.user, 'self': self.current.user} if self.current.lane_owners: model_name = self.current.lane_owners.split('.')[0] context[model_name] = model_registry.get_model(model_name).objects for lane_name, role_id in self.current.pool.items(): if role_id: context[lane_name] = lazy_object_proxy.Proxy( lambda: self.role_model(super_context).objects.get(role_id)) return context
def add_crud(self, model_data, user_type, results): model = model_registry.get_model(model_data['name']) field_name = model_data.get('field') verbose_name = model_data.get('verbose_name', model.Meta.verbose_name_plural) category = model_data.get('category', settings.DEFAULT_OBJECT_CATEGORY_NAME) wf_dict = {"text": verbose_name, "wf": model_data.get('wf', "crud"), "model": model_data['name'], "kategori": category} if field_name: wf_dict['param'] = field_name results[user_type].append(wf_dict) self.add_to_quick_menu(wf_dict['model'], wf_dict)
def get_pool_context(self): # TODO: Add in-process caching context = { self.current.lane_name: self.current.user, 'self': self.current.user } if self.current.lane_owners: model_name = self.current.lane_owners.split('.')[0] context[model_name] = model_registry.get_model(model_name).objects for lane_name, role_id in self.current.pool.items(): if role_id: context[lane_name] = lazy_object_proxy.Proxy( lambda: self.role_model(super_context).objects.get(role_id )) return context
def add_crud(self, model_data, user_type, results): model = model_registry.get_model(model_data['name']) field_name = model_data.get('field') verbose_name = model_data.get('verbose_name', model.Meta.verbose_name_plural) category = model_data.get('category', settings.DEFAULT_OBJECT_CATEGORY_NAME) wf_dict = { "text": verbose_name, "wf": model_data.get('wf', "crud"), "model": model_data['name'], "kategori": category } if field_name: wf_dict['param'] = field_name results[user_type].append(wf_dict) self.add_to_quick_menu(wf_dict['model'], wf_dict)
def get_crud_menus(self): results = defaultdict(list) for user_type in settings.CRUD_MENUS: for model_data in settings.CRUD_MENUS[user_type]: if self.current.has_permission(model_data['name']): model = model_registry.get_model(model_data['name']) field_name = model_data.get('field', user_type + '_id') verbose_name = (model_data['verbose_name'] if 'verbose_name' in model_data else model.Meta.verbose_name_plural) crud_path = 'crud/%s' % model_data['name'] category = model_data.get('category', DEFAULT_CATEGORY) results[user_type].append({"text": verbose_name, "url": crud_path, "wf": "crud", "model": model_data['name'], "kategori": category, "param": field_name}) # else: # print("NONONONON PERM FOR CRUD PERM %s" % model_data['name']) # print(self.current.get_permissions()) return results
def get_model_class(self): """ Looks for the default model of this view from :py:attr:`Meta.model`. If it's not set, tries to get model name from ``current.input['model']``. Can be overridden to implement different model selection mechanism. Returns: :py:attr:`~pyoko.models.Model` class. """ try: model = self.Meta.model if self.Meta.model else self.current.input[ 'model'] if isinstance(model, Model): return model else: return model_registry.get_model(model) except: log.debug('No "model" given for CrudView') return None
def __call__(self, current): current.log.info("CRUD CALL") self.set_current(current) if 'model' not in current.input: self.list_models() else: self.model_class = model_registry.get_model(current.input['model']) self.object_id = self.input.get('object_id') if self.object_id: try: self.object = self.model_class(current).objects.get(self.object_id) if self.object.deleted: raise HTTPNotFound() except: raise HTTPNotFound() else: self.object = self.model_class(current) current.log.info('Calling %s_view of %s' % ( (self.cmd or 'list'), self.model_class.__name__)) self.form = JsonForm(self.object, all=True) self.__class__.__dict__['%s_view' % (self.cmd or 'list')](self)
def get_model_class(self): model = self.Meta.model if self.Meta.model else self.current.input['model'] if isinstance(model, Model): return model else: return model_registry.get_model(model)