DOC.md 6.5 KB

Core — Django CMS Framework

A Django framework for building and managing websites with a built-in admin interface.


Installation

Prerequisites

pip install django==4.2.8
pip install django-crispy-forms
pip install django-tinymce  # WYSIWYG editor

Getting Started

python manage.py migrate
python manage.py runserver

Django admin is accessible at /admin/.


Architecture

Main URLs

URL View Description
/ index Home page (gen_page_sys 'bienvenus')
/page/<address> page Generic page by address
/admin/ Django admin Admin interface
/account/login p_login Login
/account/logout p_logout Logout
/account/registration p_registration Registration

Data Models

Page (main model)

Central model for creating web pages.

Main fields:

Field Type Description
p_titre CharField Page title
p_titre_slugify CharField Auto-generated slug (readonly)
p_adresse CharField URL path (e.g. /contact)
p_type Choice page, sys, lien, lien_ext
p_icone CharField FontAwesome icon code
p_contenu TextField Main content (TinyMCE)
p_right TextField Right panel content
p_publier Boolean Published / unpublished
p_proteger Boolean Auth required
p_groupe Boolean Show groups

Page types:

  • page — Standard page
  • sys — System page (uses p_titre_slugify for lookup)
  • lien — Internal link (address in p_adresse)
  • lien_ext — External link (new window)

Menu positions:

  • no — Not in menu
  • haut — Top horizontal menu
  • cote — Side menu (not implemented)
  • pied — Footer menu

Display options:

  • c_card_mp / c_card_rp : def, oui, non
  • p_see_title_and_des_in_templates : Show title/description in template
  • p_speedial : Enable speed dial

Groupe

Organization of pages and speed dials.

Field Description
g_nom Group name
g_description Description

Data

Key-value storage for dynamic configuration.

Field Description
d_titre Variable name
d_type Data type
d_variable Value

Used variables:

  • site-name — Site name
  • site-version — Displayed version
  • site-logo — FontAwesome logo class
  • background-color — Background color (navbar/footer)
  • background — Background image
  • background-logo — Overlay logo
  • login-menu — Show login menu (True/False)
  • includ-right-panel — Right panel
  • card-main-panel / card-right-panel — Card display

Speed_Dial

Quick shortcuts for speed dial page.

Field Description
sd_titre Shortcut title
sd_groupe FK to Groupe (optional)
sd_icone FontAwesome class
sd_color Color (primary, success, danger...)
sd_adresse Shortcut URL
sd_poid Sort order

Contact

Contact form / bug feedback.

Field Description
c_name Name
c_email Email
c_type contact, beug, plainte
c_description Message
c_statut non_lu, lu, archive

Fichier

File upload for reuse in pages.

Field Description
f_fichier FileField (upload_to=static/uploads/)
f_nom Slugified name (auto)
f_date Upload date

Main Views

index(request)

Home page. Loads system page bienvenus. If p_speedial=True, generates a speed dial.

page(request, p_url)

Loads a page by its p_adresse. Exact lookup.

p_login(request)

Standard Django login with next redirect.

p_logout(request)

Logout and redirect to home.

p_registration(request)

Registration, creates a Django User, auto-logs in.

contact(request)

Contact form. Saves Contact, shows confirmation.


Utility Functions

gen_menu(position)

Returns the menu for a position (haut, pied, cote). Filters on p_publier=True, orders by p_menu_parent.

gen_speeddial(grp)

Returns speed dials, optionally filtered by group.

get_data_value(name)

Returns the value of a Data variable. Returns "Blop" if not found.

gen_page_base()

Generates a base page object with site-wide data (name, logo, colors...).

gen_page_sys(p_titre_slugify)

Loads a system page by its slug. Returns a visual 404 if not found.


Configuration via Data

Create in admin /admin/core/data/add/:

d_titre: site-name
d_type: text
d_variable: My Site

Templates

Hierarchy

base.html          — Parent template (navbar, footer, Bootstrap 4 layout)
├── page.html      — Generic page
├── link.html      — Link page
├── login.html     — Login page
├── 404.html      — 404 error
└── base_no_card.html — Without card (unused)

Main blocks

Block Description
{% block title %} Page title
{% block main %} Main content
{% block left_panel %} Left panel
{% block right_panel %} Right panel
{% block script %} Additional JavaScript
{% block modals %} Bootstrap modals

Dependencies

  • Django 4.2.8 — Framework
  • django-crispy-forms — Styled forms
  • django-tinymce — WYSIWYG editor
  • Bootstrap 4.6 — CSS (CDN)
  • FontAwesome 7 — Icons (CDN)
  • jQuery 3.5 — JavaScript (CDN)

File Structure

core/
├── models.py          # All models
├── views.py           # Views and utility functions
├── admin.py           # Django admin configuration
├── apps.py            # Django app config
├── DOC.md             # This documentation
├── URL.md             # URL documentation
├── README.md          # Original README
├── templates/
│   ├── base.html       # Parent template
│   ├── page.html       # Page template
│   ├── link.html       # Link template
│   └── login.html      # Login template
├── static/
│   └── uploads/        # Uploaded files
└── migrations/

Useful Commands

# Apply migrations
python manage.py migrate

# Create superuser (admin access)
python manage.py createsuperuser

# Start dev server
python manage.py runserver

# Collect static files (production)
python manage.py collectstatic