def handle(self, *args, **options): using = options.get('database', DEFAULT_DB_ALIAS) conn = connections[using] lst = get_models(include_auto_created=True) cursor = conn.cursor() for sql in conn.ops.sequence_reset_sql(no_style(), lst): cursor.execute(sql)
def show_database_structure(self): """Show a bullet list of all models and their fields.""" self.analyze() items = [] for model in get_models(): names = [] # for f, m in model._meta.get_fields_with_model(): for f in model._meta.concrete_fields: names.append(f.name) items.append("{0} : {1}".format(fmn(model), ', '.join(names))) items = sorted(items) return rstgen.ul(items)
def show_database_structure(self): """Show a bullet list of all models and their fields.""" self.analyze() items = [] for model in get_models(): names = [] # for f, m in model._meta.get_fields_with_model(): for f in model._meta.concrete_fields: names.append(f.name) items.append( "{0} : {1}".format(fmn(model), ', '.join(names))) items = sorted(items) return rstgen.ul(items)
def show_complexity_factors(self): self.analyze() items = [] items.append("{0} plugins".format(len(dd.plugins))) items.append("{0} models".format(len(get_models()))) items.append("{0} views".format(len(actors.actors_list))) items.append("{0} user types".format(len(UserTypes.objects()))) dialog_actions = [ ba for ba in analyzer.custom_actions + analyzer.window_actions if ba.action.parameters ] items.append("{0} dialog actions".format(len(dialog_actions))) return rstgen.ul(items)
def get_data_rows(cls, ar): if ar.quick_search is None or len(ar.quick_search) < 2: return user_type = ar.get_user().user_type # for model in rt.models_by_base(Searchable): for model in get_models(): # if model not in cls.disabled_models: if model.show_in_site_search: t = model.get_default_table() # for t in cls._site_search_tables: if not t.get_view_permission(user_type): continue sar = t.request(parent=ar, quick_search=ar.quick_search) for obj in sar: yield obj
def get_complexity_factors(self, today=None): self.analyze() yield "{0} plugins".format(len(dd.plugins)) yield "{0} models".format(len(get_models())) User = settings.SITE.user_model if today and User: qs = User.objects.filter(username__isnull=False) qs = PeriodEvents.active.add_filter(qs, today) yield "{0} users".format(qs.count()) yield "{0} user roles".format(len(settings.SITE.user_roles)) yield "{0} user types".format(len(UserTypes.objects())) yield "{0} views".format(len( [a for a in actors.actors_list if not a.abstract])) dialog_actions = [ba for ba in analyzer.custom_actions + analyzer.window_actions if ba.action.parameters] yield "{0} dialog actions".format(len(dialog_actions))
def get_data_rows(cls, ar): if ar.quick_search is None or len(ar.quick_search) < 2: return user_type = ar.get_user().user_type # for model in rt.models_by_base(Searchable): for model in get_models(): # if model not in cls.disabled_models: if model.show_in_site_search: t = model.get_default_table() # for t in cls._site_search_tables: if not t.get_view_permission(user_type): continue sar = t.request( parent=ar, quick_search=ar.quick_search) for obj in sar: yield obj
def get_data_rows(cls, ar): if ar.quick_search is None or len(ar.quick_search) < 2: return user_type = ar.get_user().user_type # for model in rt.models_by_base(Searchable): for model in get_models(): if model._meta.app_label in cls.private_apps: continue if model.show_in_site_search: t = model.get_default_table() # for t in cls._site_search_tables: if not t.get_view_permission(user_type): continue sar = t.request(parent=ar, quick_search=ar.quick_search) for obj in sar: if obj.show_in_site_search: # don't show calview.HeaderRow yield obj
def show_foreign_keys(self): """Return a list that shows how database objects are being referred to by some other database object. This information is important (1) before deleting objects and (2) when merging them. For every model we see a list of "delete handlers" and a list of fields from other models that point to this model using that delete handler. Delete handlers are: - PROTECT : refuse to delete when other objects refer to this object - CASCADE : delete objects refering to this object - set_on_delete : make other objects point to something else (or set their pointer to None) """ self.analyze() tdp = dict() # target model -> delete handler -> pointer list for target in get_models(): dp = tdp.setdefault(target, dict()) for m, fk in target._lino_ddh.fklist: k = fk.remote_field.on_delete p = dp.setdefault(k, []) p.append((m, fk)) def fk2str(mfk): return "{0}.{1}".format(fmn(mfk[0]), mfk[1].name) items1 = [] for target, dp in list(tdp.items()): items2 = [] for dh, pl in list(dp.items()): items2.append( "{0} : {1}".format( dh.__name__, ', '.join([fk2str(mfk) for mfk in pl]))) if len(items2): items2 = sorted(items2) items1.append("{0} :\n{1}".format( fmn(target), rstgen.ul(items2))) items1 = sorted(items1) return rstgen.ul(items1)
def show_foreign_keys(self): """Return a list that shows how database objects are being referred to by some other database object. This information is important (1) before deleting objects and (2) when merging them. For every model we see a list of "delete handlers" and a list of fields from other models that point to this model using that delete handler. Delete handlers are: - PROTECT : refuse to delete when other objects refer to this object - CASCADE : delete objects refering to this object - set_on_delete : make other objects point to something else (or set their pointer to None) """ self.analyze() tdp = dict() # target model -> delete handler -> pointer list for target in get_models(): dp = tdp.setdefault(target, dict()) for m, fk in target._lino_ddh.fklist: k = fk.rel.on_delete p = dp.setdefault(k, []) p.append((m, fk)) def fk2str(mfk): return "{0}.{1}".format(fmn(mfk[0]), mfk[1].name) items1 = [] for target, dp in list(tdp.items()): items2 = [] for dh, pl in list(dp.items()): items2.append( "{0} : {1}".format( dh.__name__, ', '.join([fk2str(mfk) for mfk in pl]))) if len(items2): items2 = sorted(items2) items1.append("{0} :\n{1}".format( fmn(target), rstgen.ul(items2))) items1 = sorted(items1) return rstgen.ul(items1)
def get_complexity_factors(self, today=None): """ Yield a series of plain text lines that describe the complexity factors of this application. """ self.analyze() yield "{0} plugins".format(len(dd.plugins)) yield "{0} models".format(len(get_models())) User = settings.SITE.user_model if today and User: qs = User.objects.filter(username__isnull=False) qs = PeriodEvents.active.add_filter(qs, today) yield "{0} users".format(qs.count()) # yield "{0} user roles".format(len(settings.SITE.user_roles)) yield "{0} user types".format(len(UserTypes.objects())) yield "{0} views".format( len([a for a in actors.actors_list if not a.abstract])) dialog_actions = [ ba for ba in analyzer.custom_actions + analyzer.window_actions if ba.action.parameters and not ba.action.no_params_window ] yield "{0} dialog actions".format(len(dialog_actions))
def get_data_rows(self, ar): f = settings.SITE.kernel.get_broken_generic_related for model in get_models(include_auto_created=True): for obj in f(model): yield obj
def get_data_rows(self, ar): # user_type = ar.get_user().user_type for model in get_models(): if True: # print model yield model