Django integration middleware for EEA Zope websites.
pip install eea.frame
In your project's settings.py
add:
INSTALLED_APPS = ( ... # django apps 'frame' ... # your project's apps ) MIDDLEWARE_CLASSES = ( 'frame.middleware.RequestMiddleware', 'frame.middleware.UserMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ) TEMPLATE_LOADERS = ( 'frame.middleware.Loader', 'django.template.loaders.filesystem.Loader', 'django.template.loaders.app_directories.Loader', )
Also, usually in local_settings.py
you need to define: FRAME_URL
to an
url pointing to a Zope frame instance, and
FRAME_COOKIES = ['__ac', '_ZopeId', '__ginger_snap']
.
You can skip https with FRAME_VERIFY_SSL = False
.
Your layout.html
must extend "frame.html"
in order to use the frame.
You can set FRAME_EXTRA_SUBSTITUTIONS
to a list of pairs to be replaced
in the frame html.
If you want to use the Django groups and permissions settings with users from _eea.frame_, you need to set:
MIDDLEWARE_CLASSES = ( ... 'django.contrib.auth.middleware.RemoteUserMiddleware', ... ) AUTHENTICATION_BACKENDS = ( 'django.contrib.auth.backends.ModelBackend', 'frame.backends.FrameUserBackend', )
For each user that is authenticated on eea.frame, a
django.contrib.auth.models.User
instance is created.
For each of the roles the user has in eea.frame, a
django.contrib.auth.models.Group
instance is created, and you can assign
permissions to that group.
Use the seen middleware to keep for each user the datetime of the last visit to the application.
Set (at the end of the middleware classes setting):
MIDDLEWARE_CLASSES = ( ... 'frame.middleware.SeenMiddleware', )
If you want to use the default view, add
frame.utils.get_objects_from_last_seen_count
to your url patterns, in a
location such as ^/_lastseen/$
, then set the FRAME_SEEN_MODELS
to a
list of pairs (model, field) for the objects to be counted.
You should exclude this view using FRAME_SEEN_EXCLUDE
config setting.
You need to obtain maintainers rights on https://pypi.org/project/eea.frame/. Those rights can only be set by an owner on Pypi.
After bumping to a new version, follow the steps below:
cd eea.frame # You can use a virtualenv to isolate the packages needed python -m pip install --user --upgrade setuptools wheel python -m pip install --user --upgrade twine python setup.py sdist bdist_wheel python -m twine upload dist/* # You will need to provide your PYPI API token