Coverage for lino/api/dd.py : 98%

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 2011-2016 Luc Saffre # License: BSD (see file COPYING for details)
The :mod:`lino.api.dd` module is a shortcut to those parts of Lino which are used in your :xfile:`models.py` modules. The name ``dd`` stands for "Database Design".
Application:
- :attr:`plugins <lino.core.site.Site.plugins>` - :attr:`decfmt <lino.core.site.Site.decfmt>` - :attr:`str2kw <lino.core.site.Site.str2kw>` - :attr:`today <lino.core.site.Site.today>` - :attr:`strftime <lino.core.site.Site.strftime>` - :attr:`demo_date <lino.core.site.Site.demo_date>` - :attr:`is_abstract_model <lino.core.site.Site.is_abstract_model>` - :attr:`is_installed <lino.core.site.Site.is_installed>` - :attr:`add_welcome_handler <lino.core.site.Site.add_welcome_handler>` - :attr:`build_media_url <lino.core.site.Site.build_media_url>` - :attr:`get_default_language <lino.core.site.Site.get_default_language>`
Tables:
- :class:`Table <lino.core.dbtables.Table>` - :class:`VirtualTable` - :class:`VentilatingTable` - :class:`Frame <lino.core.frames.Frame>` - :class:`ChoiceList <lino.core.choicelists.ChoiceList>`
Extended Fields:
- :class:`CharField <fields.CharField>` - :class:`NullCharField <lino.core.fields.NullCharField>` - :class:`IncompleteDateField <lino.core.fields.IncompleteDateField>` - :class:`PasswordField <lino.core.fields.PasswordField>` - :class:`MonthField <lino.core.fields.MonthField>` - :class:`PercentageField <lino.core.fields.PercentageField>` - :class:`QuantityField <lino.core.fields.QuantityField>` - :class:`PriceField<lino.core.fields.PriceField>` - :class:`CustomField <lino.core.fields.CustomField>` - :class:`RecurrenceField <lino.core.fields.RecurrenceField>` - :class:`DummyField <lino.core.fields.DummyField>` - :func:`ForeignKey <lino.core.fields.ForeignKey>`
Virtual Fields:
- :class:`Constant <lino.core.fields.Constant>` and :class:`@constant <lino.core.fields.constant>` - :class:`DisplayField <lino.core.fields.DisplayField>` and :class:`@displayfield <lino.core.fields.displayfield>` - :class:`VirtualField <lino.core.fields.VirtualField>` and :class:`@virtualfield <lino.core.fields.virtualfield>` - :class:`HtmlBox <lino.core.fields.HtmlBox>`
Layouts:
- :class:`FormLayout <lino.core.layouts.FormLayout>` - :class:`Panel <lino.core.layouts.Panel>`
Utilities:
- :func:`obj2str <lino.core.utils.obj2str>` - :func:`obj2unicode <lino.core.utils.obj2unicode>` - :func:`range_filter <lino.core.utils.range_filter>`, :func:`inrange_filter <lino.core.utils.inrange_filter>` - :func:`full_model_name <lino.core.utils.full_model_name>` - :func:`fields_list <lino.core.fields.fields_list>` - :func:`chooser <lino.utils.choosers.chooser>` - :class: `ParameterPanel <lino.core.utils.ParameterPanel>`
Inter-app relations:
- :func:`resolve_field <lino.core.utils.resolve_field>` - :func:`resolve_model <lino.core.utils.resolve_model>` - :func:`resolve_app <lino.core.utils.resolve_app>` - :func:`update_field <lino.core.inject.update_field>` - :func:`inject_field <lino.core.inject.inject_field>` - :func:`inject_action <lino.core.inject.inject_action>` - :func:`update_model <lino.core.inject.update_model>`
- :func:`inject_quick_add_buttons <lino.core.inject.inject_quick_add_buttons>`
Signals:
- See :ref:`lino.signals`
Actions:
- :class:`Action <lino.core.actions.Action>` - :class:`ChangeStateAction <lino.core.workflows.ChangeStateAction>` - :class:`NotifyingAction <lino.core.actions.NotifyingAction>` - :class:`MergeAction <lino.core.merge.MergeAction>` - :class:`ShowSlaveTable <lino.core.actions.ShowSlaveTable>` - :class:`PrintTableAction <lino.utils.appy_pod.PrintTableAction>` - :class:`PrintLabelsAction <lino.utils.appy_pod.PrintLabelsAction>`
Permissions:
- :class:`UserGroups <lino.modlib.users.mixins.UserGroups>` - :class:`UserLevels <lino.modlib.users.mixins.UserLevels>` - :func:`add_user_group <lino.modlib.users.mixins.add_user_group>`
Workflows:
- :class:`Workflow <lino.core.workflows.Workflow>` - :class:`State <lino.core.workflows.State>`
"""
""" Shortcut to the main Lino logger. """
# logger.info("20140227 dd.py a")
"Shortcut to :class:`lino.core.model.Model`."
# 20140314 need a Dummy object to define a dummy module # from lino.core.layouts import BaseLayout as Dummy # 20140314 # from lino.core.actors import Actor as Dummy # 20140314
#~ from lino.core.fields import LinkedForeignKey
# from lino_xl.lib.appypod.mixins import PrintTableAction # from lino_xl.lib.appypod.mixins import PrintLabelsAction
#~ from lino.core import signals
#~ class Module(object): #~ pass
#from lino.modlib.users.choicelists import UserLevels, UserGroups #from lino.modlib.users.utils import add_user_group
""" Adds support for :class:`lino.fields.IncompleteDate`. """ return fds_(d.as_date())
# backward compatibility
# The following are not only shortcuts, they also are a preparation to # encapsulate the `settings.SITE` name. It is possible that after # Django 1.7 we no longer need a `settings.SITE`. So I plan to # deprecate direct access to settings.SITE in application code. I am # not yet 100% sure whether this will be possible and makes sense.
# make it serializable for Django migrations return settings.SITE.today(*args, **kwargs) # today = settings.SITE.today # get_db_overview_rst = settings.SITE.get_db_overview_rst
# `apps` is an alias for `plugins`. We recommend plugins since `apps` # is being used by Django 1.7
return plugins.get(app_label, None)
# deprecated aliases:
# logger.info("20140227 dd.py b %s", site)
|