Coverage for lino/modlib/gfks/models.py : 56%

Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
# -*- coding: UTF-8 -*- # Copyright 2010-2015 Luc Saffre # License: BSD (see file COPYING for details)
Database models for `lino.modlib.gfks`.
See also unit test :doc:`/dev/gfks`.
.. autosummary::
"""
"""Default table for `django.contrib.ContentType`.
.. attribute:: base_classes
Display a clickable list of all MTI parents, i.e. base models
"""
id app_label model base_classes HelpTextsByModel BrokenGFKsByModel """
def base_classes(self, obj, ar): return ""
# : and cl._meta.managed: #~ logger.info("20120205 adding(%r)",cl) ct = ContentType.objects.get_for_model(cl) chunks.append( ar.obj2html(ct, str(cl._meta.verbose_name))) #~ add(obj.model_class()) # e.g. if database is nor synchronized
"""A custom help text to be displayed for a given field."""
verbose_name=_("Model"))
blank=True, null=True, format='plain')
+ self.content_type.model + '.' + self.field
def field_choices(cls, content_type): l = [] if content_type is not None: model = content_type.model_class() meta = model._meta for f in meta.fields: if not getattr(f, '_lino_babel_field', False): l.append(f.name) for f in meta.many_to_many: l.append(f.name) for f in meta.virtual_fields: l.append(f.name) for a in model.get_default_table().get_actions(): l.append(a.action.action_name) l.sort() return l
#~ def get_field_display(cls,fld): #~ return fld
def verbose_name(self, request): m = self.content_type.model_class() de = m.get_default_table().get_data_elem(self.field) if isinstance(de, models.Field): return "%s (%s)" % (str(de.verbose_name), str(_("database field"))) if isinstance(de, dd.VirtualField): return str(de.return_type.verbose_name) if isinstance(de, dd.Action): return str(de.label) return str(de)
"""Shows all database objects (model instances) who have a broken GeneriForeignKey field.
"""
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 database_object(self, obj, ar): return ar.obj2html(obj)
def message(self, obj, ar): return obj._message
def todo(self, obj, ar): return obj._todo
def database_model(self, obj, ar): ct = ContentType.objects.get_for_model(obj.__class__) return ar.obj2html(ct)
def get_data_rows(self, ar): mi = ar.master_instance f = settings.SITE.kernel.get_broken_generic_related if mi is not None: for obj in f(mi.model_class()): yield obj
def get_pk_field(self):
def get_row_by_pk(self, ar, pk): mi = ar.master_instance if mi is None: return None M = mi.model_class() try: return M.objects.get(pk=pk) except ValueError: return None except M.DoesNotExist: return None
def get_row_permission(cls, obj, ar, state, ba): return True
def my_pre_ui_build(sender, **kw): # dd.logger.info("20120629 %s.help_text", ht) except FieldDoesNotExist as e: #~ logger.debug("No help texts : %s",e) pass except DatabaseError as e: dd.logger.debug("No help texts : %s", e) pass
# cause `fab mm` to generate translatable strings from Django's # original module since those translations are not loaded. |