Source code for apis_core.utils.utils

from django.conf import settings


[docs] def access_for_all(self, viewtype="list"): if self.request.user.is_authenticated: return self.request.user.is_authenticated match viewtype: case "list": return getattr(settings, "APIS_LIST_VIEWS_ALLOWED", False) case "detail": return getattr(settings, "APIS_DETAIL_VIEWS_ALLOWED", False) return False
[docs] def access_for_all_function(user): if user.is_anonymous: return getattr(settings, "APIS_DETAIL_VIEWS_ALLOWED", False) else: return True
ENTITIES_DEFAULT_COLS = [ "start_date", "start_date_written", "end_date", "end_date_written", "text", "collection", "status", "source", "references", "notes", ]
[docs] def get_child_classes(objids, obclass, labels=False): """used to retrieve a list of primary keys of sub classes""" if labels: labels_lst = [] for obj in objids: obj = obclass.objects.get(pk=obj) p_class = list(obj.vocabsbaseclass_set.all()) p = p_class.pop() if len(p_class) > 0 else False while p: if p.pk not in objids: if labels: labels_lst.append((p.pk, p.label)) objids.append(p.pk) p_class += list(p.vocabsbaseclass_set.all()) p = p_class.pop() if len(p_class) > 0 else False if labels: return (objids, labels_lst) else: return objids
[docs] def get_python_safe_module_path(instance: object): """ return a python safe version of the full path of an object this can for example be used as a method name """ modulepath = get_module_path(instance) return modulepath.replace(".", "_")
[docs] def get_module_path(instance: object): """ return the full path to the class of an object """ instance_type = type(instance) module = instance_type.__module__ name = instance_type.__name__ return f"{module}.{name}"