Skip to main content

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

  1. Add PSU-Base and its two required apps to INSTALLED_APPS in settings.py:

    INSTALLED_APPS = [
       ...
       'django_cas_ng',
       'crequest',
       'psu_base',
    ]
    
  2. Copy docs/app_settings_template.py to your app, name it app_settings.py and update the values as needed.

  3. Copy docs/local_settings_template.py to your app, name it local_settings.py and update the values as needed.

  4. 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 *
  1. Run python manage.py migrate to create the PSU-Base models in your development database

  2. 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

  1. Create accounts on PyPi and Test PyPi
  2. 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
    
  3. Ask an existing developer to add you as a collaborator - test and/or prod
  4. python setup.py sdist bdist_wheel --universal
  5. twine upload --repository-url https://test.pypi.org/legacy/ dist/*
  6. twine upload dist/*
  7. 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

This version

0.2.4

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

psu_base-0.2.4-py3-none-any.whl (176.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page