Exemple #1
0
 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 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)
Exemple #3
0
    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)
Exemple #4
0
    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)
Exemple #5
0
    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)
Exemple #6
0
    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
Exemple #7
0
 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))
Exemple #8
0
 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
Exemple #9
0
    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
Exemple #10
0
    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)
Exemple #11
0
    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)
Exemple #12
0
    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))
Exemple #13
0
 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
Exemple #14
0
 def get_data_rows(self, ar):
     # user_type = ar.get_user().user_type
     for model in get_models():
         if True:
             # print model
             yield model
Exemple #15
0
 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
Exemple #16
0
 def get_data_rows(self, ar):
     # user_type = ar.get_user().user_type
     for model in get_models():
         if True:
             # print model
             yield model