Skip to main content
Join the official 2020 Python Developers SurveyStart the survey!

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 testpypi 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

Download files

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

Files for psu-base, version 0.2.8
Filename, size File type Python version Upload date Hashes
Filename, size psu_base-0.2.8-py2.py3-none-any.whl (101.2 kB) File type Wheel Python version py2.py3 Upload date Hashes View
Filename, size psu-base-0.2.8.tar.gz (66.2 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page