# The hardcoded entries cannot be inferred from the models. To get rid of in the long run
# 

from .xosbase import XOSBase,XOSBaseManager,XOSBaseDeletionManager,PlModelMixIn,ModelLink
from .contenttype import ContentType
from .site import Site
from .dashboardview import DashboardView
from .user import User
from .user import UserDashboardView
from .journal import JournalEntry, journal_object

{% for m in proto.messages -%}
{% if not m.options.skip -%}
from .{{ m.name | lower }} import {{ m.name }} 
{% endif -%}
{% endfor -%}
