Skip to main content

A reusable Django app for a phone directory system.

Project description

django_phonedir

A reusable Django app for a phone directory system.

Tested and known to work with Django 5.2 and newer. Tested with Python 3.12 and newer.

Requirements

  • Python >= 3.12
  • daisyUI (only for provided templates)
  • Django >= 5.2
  • django-phonenumber-field >= 8.4.0
  • phonenumberslite >= 9.0.26

Installation

Install via pip.

pip install django-phonedir

Add to Django settings INSTALLED_APPS like so...

INSTALLED_APPS = [
    ...
    "django-phonedir",
    ...
]

URL Paths

By default, there are certain URL paths that are provided to help get you started. The built-in URL paths and templates can be utilized by adding django_phonedir.urls to your main list of urlpatterns in a urls.py file like so...

from django.urls import include, path

urlspatterns = [
    ...
    path("", include("django_phonedir.urls")),
    ...
]

You don't have to use these URL paths and associated templates. Below is a listing of the paths with the associated views and template names.

  • Path: departments
    • View: DepartmentListView
    • Template Name: department_list
    • Template File: django_phonedir/department_listing.html
  • Path: department/<slug:short_name>/
    • View: DepartmentDetailView
    • Template Name: department_detail
    • Template File: django_phonedir/department_detail.html
  • Path: search?q=<query>
    • View: SearchResultsView
    • Template Name: search_results
    • Template File: django_phonedir/search_contact_results.html

Templates

The templates that are provided require daisyUI version 5.5 or newer, Tailwind version 4 or newer, and Font Awesome version 7.0.1 or newer. You can copy the below and add to your base template file to get started quickly.

<!-- DaisyUI + Tailwind CSS -->
<link href="https://cdn.jsdelivr.net/npm/daisyui@5"
      rel="stylesheet"
      type="text/css" />
<script src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4"></script>
<!-- Font Awesome for Icons -->
<link rel="stylesheet"
      href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/7.0.1/css/all.min.css">
<style>

Templates are extending from "base.html" and there is structured like so.

{% extends "base.html" %}
{% block title %}
Title to be used by base.html
{% endblock title %}
{% block content %}
<div>Content on the page in base.html</div>
{% endblock content %}

Views can still be utilized from this library and templates can be overriden in your Django application by creating a folder in a templates folder called django_phonedir and creating your own HTML files with the same name of the template that is used by that particular view. This way you can still utilize the views in this library and override the templates to change how the data is displayed.

Models

To use a model, import from django_phonedir.models like so...

from django_phonedir.models import Department, FaxNumber, Contact

Below is a listing of each model, their attributes, and description for each attribute..

Department

  • name : Name of the department.
  • short_name : Short name that is used in the URL.
  • supervisor : Foreign key that points to a user (typically the supervisor).

FaxNumber

  • department : Foreign key that points to a Department model.
  • description : Description of the fax number.
  • phone : PhoneNumberField
  • location: Location of fax number.

Contact

  • department : Foreign key that points to a Department model.
  • first_name : First name.
  • last_name : Last name.
  • title : Job title.
  • extension : Phone extension.
  • location : location of the contact.
  • phone : PhoneNumberField (can be blank.)

Development

This project is under active development by myself.

I will develop better documentation at a later date.

Setup

Use pipenv for managing the package requirements for development.

pipenv install --dev

Testing

Tests can be run using the command below.

pipenv run test

Project details


Download files

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

Source Distribution

django_phonedir-0.4.tar.gz (27.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_phonedir-0.4-py3-none-any.whl (21.0 kB view details)

Uploaded Python 3

File details

Details for the file django_phonedir-0.4.tar.gz.

File metadata

  • Download URL: django_phonedir-0.4.tar.gz
  • Upload date:
  • Size: 27.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for django_phonedir-0.4.tar.gz
Algorithm Hash digest
SHA256 e03e74b3a83483fb6db0a6c836bf967aad86d40fdd95188332a1e6c60a84ebb6
MD5 549d76c250f1bfe6bc6299008d43a0fa
BLAKE2b-256 ea8e8a9262ff0d7c92e8516ac000f218733ea4316fdf4bcdba9b12aefa8721ee

See more details on using hashes here.

File details

Details for the file django_phonedir-0.4-py3-none-any.whl.

File metadata

  • Download URL: django_phonedir-0.4-py3-none-any.whl
  • Upload date:
  • Size: 21.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for django_phonedir-0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 182ad16872b01a86f2fccf6555ce661d024a3a3b42e650808a2fc26d5745e8a3
MD5 44744a7a2d0926b67a14cae16d597cd8
BLAKE2b-256 66522887605ec67efeba94130fc810a6dda0b151ff904ca9f439498137765831

See more details on using hashes here.

Supported by

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