Basic features used in all PSU Django apps
Project description
PSU-Base
Reusable Django app specifically for PSU's custom-built web applications.
It encapsulates the common functionality that we would otherwise need to program into each application we build.
Features include:
- PSU Single Sign-On (SSO)
- Authentication and authorization features
- Feature toggles
- Template tags for our static content server
Quick Start
Dependencies
The following dependencies may be REQUIRED in your system:
libpq-dev
sudo apt install libpq-dev
Installation
pip install psu-base
Configuring Your App
-
Add PSU-Base and its two required apps to INSTALLED_APPS in
settings.py
:INSTALLED_APPS = [ ... 'django_cas_ng', 'crequest', 'psu_base', ]
-
Copy
docs/app_settings_template.py
to your app, name itapp_settings.py
and update the values as needed. -
Copy
docs/local_settings_template.py
to your app, name itlocal_settings.py
and update the values as needed. -
Import your app and local settings files at the end of your settings.py file:
settings.py
# Get app-specific settings
from .app_settings import *
# Override settings with values for the local environment
from .local_settings import *
-
Run
python manage.py migrate
to create the PSU-Base models in your development database -
Configure your app's top-level
urls.py
to include PSU URLs# my_app/urls.py from django.conf import settings from django.conf.urls import url from django.urls import path, include ... urlpatterns = [ ... # PSU and CAS views are defined in psu_base app url(settings.URL_CONTEXT+'/psu/', include(('psu_base.urls', 'psu_base'), namespace='psu')), url(settings.URL_CONTEXT+'/accounts/', include(('psu_base.urls', 'psu_base'), namespace='cas')), ]
Usage
Usage of the psu-base app is documented in Confluence.
For Developers
The version number must be updated for every PyPi release.
The version number is in psu_base/__init__.py
Document Changes
Record every change in docs/CHANGELOG.txt Document new features or significant changes to existing features in Confluence.
Publishing to PyPi
- Create accounts on PyPi and Test PyPi
- Create
~/.pypirc
[distutils] index-servers= pypi testpypi [testpypi] repository: https://test.pypi.org/legacy/ username: mikegostomski password: pa$$w0rd [pypi] username: mikegostomski password: pa$$w0rd
- Ask an existing developer to add you as a collaborator - test and/or prod
python setup.py sdist bdist_wheel --universal
twine upload --repository testpypi dist/*
twine upload dist/*
- Tag the release in Git. Don't forget to push the tag! Example:
git tag 0.1.2
git push origin 0.1.2
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.