def ulakbus_permissions(): """Bu metot Ulakbus'e ait tüm yetkileri birleştirerek döner. Returns: list: Ulakbus'e ait tüm yetkiler """ from ulakbus.views.reports import ReporterRegistry from pyoko.model import model_registry from ulakbus.views.personel.crud_hitap import CrudHitap default_perms = get_all_permissions() hitap_generic_commands = CrudHitap().VIEW_METHODS.keys() hitap_permissions = [] enabled_models = _get_object_menu_models() for model in model_registry.get_base_models(): model_name = model.__name__ if model_name in enabled_models: # no matter if it's available as CRUD or not, # we may need a ListBox for any model for cmd in hitap_generic_commands: if cmd in ['do']: continue hitap_permissions.append(("%s.%s" % (model_name, cmd), "Can %s %s" % (cmd, model_name), "")) continue report_perms = ReporterRegistry.get_permissions() return default_perms + report_perms + hitap_permissions
def list_models(self): self.output["models"] = [(m.Meta.verbose_name_plural, m.__name__) for m in model_registry.get_base_models()] self.output["app_models"] = [(app, [(m.Meta.verbose_name_plural, m.__name__) for m in models]) for app, models in model_registry.get_models_by_apps()]
def simple_crud(self): results = defaultdict(list) for mdl in model_registry.get_base_models(): results['other'].append({"text": mdl.Meta.verbose_name_plural, "wf": 'crud', "model": mdl.__name__, "kategori": settings.DEFAULT_OBJECT_CATEGORY_NAME}) return results
def simple_crud(self): results = defaultdict(list) for mdl in model_registry.get_base_models(): results['other'].append({ "text": mdl.Meta.verbose_name_plural, "wf": 'crud', "model": mdl.__name__, "kategori": settings.DEFAULT_OBJECT_CATEGORY_NAME }) return results
def get_model_permissions(permission_list=None): from pyoko.model import model_registry from zengine.views.crud import CrudView generic_commands = CrudView().VIEW_METHODS.keys() permissions = permission_list or [] for model in model_registry.get_base_models(): model_name = model.__name__ permissions.append((model_name, model_name, "")) for cmd in generic_commands: if cmd in ['do']: continue permissions.append(("%s.%s" % (model_name, cmd), "Can %s %s" % (cmd, model_name), "")) return permissions
def get_model_permissions(permission_list=None): from pyoko.model import model_registry from zengine.engine import ALLOWED_CLIENT_COMMANDS permissions = permission_list or [] for model in model_registry.get_base_models(): model_name = model.__name__ permissions.append((model_name, model_name, "")) for cmd in ALLOWED_CLIENT_COMMANDS: if cmd in ['do']: continue permissions.append(("%s.%s" % (model_name, cmd), "Can %s %s" % (cmd, model_name), "")) return permissions
def test_list_search_add_delete_with_user_model(self): # setup workflow self.prepare_client('crud') # calling the crud view without any model should list available models resp = self.client.post() resp.raw() assert resp.json['models'] == [[m.Meta.verbose_name_plural, m.__name__] for m in model_registry.get_base_models()] model_name = 'User' # calling with just model name (without any cmd) equals to cmd="list" resp = self.client.post(model=model_name, filters={"username": username}) assert 'objects' in resp.json list_objects = resp.json['objects'] if list_objects: assert list_objects[0]['data']['username'] == username resp = self.client.post(model=model_name) # count number of records num_of_objects = len(resp.json['objects']) # add a new employee record, then go to list view (do_list subcmd) self.client.post(model=model_name, cmd='add') resp = self.client.post(model=model_name, cmd='add', subcmd="do_list", form=dict(username="******", password="******")) # we should have 1 more object relative to previous listing assert num_of_objects + 1 == len(resp.json['objects']) # since we are searching for a just created record, we have to wait sleep(1) resp = self.client.post(model=model_name, filters={"username": "******"}) # delete the first object then go to list view resp = self.client.post(model=model_name, cmd='delete', subcmd="do_list", object_id=resp.json['objects'][0]['key']) # number of objects should be equal to starting point assert num_of_objects == len(resp.json['objects'])
def _get_model_permissions(permission_list=None): from pyoko.model import model_registry from zengine.views.crud import CrudView generic_commands = CrudView().VIEW_METHODS.keys() permissions = permission_list or [] enabled_models = _get_object_menu_models() for model in model_registry.get_base_models(): model_name = model.__name__ permissions.append((model_name, model_name, "")) if model_name not in enabled_models: # no matter if it's available as CRUD or not, # we may need a ListBox for any model permissions.append(("%s.select_list" % model_name, "Listbox for %s" % model_name, "")) continue for cmd in generic_commands: if cmd in ['do']: continue permissions.append(("%s.%s" % (model_name, cmd), "Can %s %s" % (cmd, model_name), "")) return permissions
def test_list_add_delete_with_employee_model(self): # setup workflow self.prepare_client('crud') # calling the crud view without any model should list available models resp = self.client.post() assert resp.json['models'] == [m.__name__ for m in model_registry.get_base_models()] # calling with just model name (without any cmd) equals to cmd="list" resp = self.client.post(model='Employee') assert 'objects' in resp.json list_objects = resp.json['objects'] if list_objects: assert list_objects[0]['data']['first_name'] == 'Em1' # count number of records num_of_objects = len(resp.json['objects']) # add a new employee record, then go to list view (do_list subcmd) self.client.post(model='Employee', cmd='add') resp = self.client.post(model='Employee', cmd='add', subcmd="do_list", form=dict(first_name="Em1", pno="12323121443")) # we should have 1 more object relative to previous listing assert num_of_objects + 1 == len(resp.json['objects']) # delete the first object then go to list view resp = self.client.post(model='Employee', cmd='delete', subcmd="do_list", object_id=resp.json['objects'][0]['key']) # number of objects should be equal to starting point assert num_of_objects == len(resp.json['objects'])
def simple_crud(): """ Prepares menu entries for auto-generated model CRUD views. This is simple version of :attr:`get_crud_menus()` without Category support and permission control. Just for development purposes. Returns: Dict of list of dicts (``{'':[{}],}``). Menu entries. """ results = defaultdict(list) for mdl in model_registry.get_base_models(): results['other'].append({ "text": mdl.Meta.verbose_name_plural, "wf": 'crud', "model": mdl.__name__, "kategori": settings.DEFAULT_OBJECT_CATEGORY_NAME }) return results
def list_models(self): self.output["models"] = [m.__name__ for m in model_registry.get_base_models()]