Processes

Site contents are stored in the database in both Markdown and HTML formats. Any changes must be saved to the database before they can be published as .html files.

Index

Homepage of DMCM. Lists all of the Pages, Lists and Blog Pages in the database in HTML tables.

Implemented by:

View: home.

Models: Page; List; Blog Page.

Pages

Table structure:
 
Title

Name of the Page.

Filename

Name of the .html and .txt files page contents are written to when Published. Also a link to Update the Page.

Parent

Parent Page in the site hierarchy.

Updated

When the Page was last saved to the database.

Lists

Table structure:
 
Title

Name of the List.

Update

Link to Update the List.

Parent

The Page whose content is this List.

Updated

When the List was last saved to the database.

Blog Entries

Table structure:
 
Date

Publication date of this Blog Page.

Title

Name of the Blog Page.

Update

Link to Update the Blog Page.

Updated

When the Blog Page was last saved to the database.

Example

DMCM Index

Add Blog Page

Creates a new Blog Page entry on the database.

Fields:
Date

Date that this Blog Page. was published.

Title

Name of the Blog Page.

Filename

Added to Date to give name of the .html and .txt files written when this Blog Page is published.

Body

Enter Blog Page contents in Markdown format.

Implemented by:

View: blog_add.

Model: BlogPage.

Form: BlogPageForm.

Example

DMCM Add Blog Page

Add Page

Creates a new Page entry on the database.

Fields:
Title

Name of the Page.

Parent

Parent Page in the site hierarchy. Chosen from existing pages on the database.

Directory Name

Name of the directory to which the .html, file representing this page, is written when the Page is published.

Filename

Name of the .html file, representing this page, which is written when the Page is published.

Body

Enter Page contents in Markdown format.

Implemented by:

View: page_add.

Model: Page.

Form: PageForm.

Example

DMCM Add Page

Add List

Creates a new List entry on the database.

Fields:
Title

Name of the List.

Parent

Parent Page in the site hierarchy. Chosen from existing pages on the database.

Prefix

Text which comes before the list items.

Template

Structure of single list item.

Delimiter

Separator character for each field in a list item.

Data

List item fields separated by delimiters. One list item per line.

Suffix

Text which comes after the list items.

Implemented by:

View: list_add.

Model: List.

Form: ListForm.

Example

DMCM Add List

Amend Options

Site-level settings.

Fields:
Deployment Directory

Directory on hosting server where .html files are to be written.

Source Directory

Sub-directory of Deployment Directory where Markdown version of pages are written.

Navigation Menu

Site Navigation Menu which appears on each page. Written in HTML.

Page Template

Django template which is used to provide the structure of all pages in the site. Written in HTML and using the Django template language.

Implemented by:

View: options.

Model: Option.

Form: OptionForm.

Publish All Pages

Option to write out all pages as .html to Deployment Directory and Markdown source to Source Directory. Useful after making a change which affects all of the site such as a change to the Navigation Menu which appears on each page.

Implemented by:View: publish_all.

Generate Site Map

Option to generate a site map. Sites have a tree structure where every page has one parent. Except for the topmost, root, page.

A List is created by traversing the tree and adding each page found to the list.

Implemented by:View: generate_site_map.

Blog Options

Options used to manage the Blog Entry Pages.

Fields:
Root page of blog

Page which contains most recent blog entries and a table containing a row for each Blog Page.

Blog summary size

Number of most recent blog entries duplicated on the root Page of the blog.

Deployment Directory

Directory on hosting server where .html files for blog entries are to be written.

Source Directory

Sub-directory of Deployment Directory where Markdown version of Blog Pages are written.

Example

DMCM Options

Update Page

Amend contents of a Page entry on the database.

Fields:
Save

Save the Page on the database.

Publish

Write the Page data to .html and .txt files.

Body

Page contents in Markdown format.

Title

Name of the Page.

Parent

Parent Page in the site hierarchy. Chosen from existing pages on the database.

Directory Name

Name of the directory to which the .html, file representing this page, is written when the Page is published.

Filename

Name of the .html file, representing this page, which is written when the Page is published.

Implemented by:

View: page_update.

Model: Page.

Form: PageForm.

List Replace

Replace contents of this Page with a List.

Option only appears if the current page is the parent of a List. Replaces contents of the Body field with the List.

Implemented by:

View: list_update.

Models: Page;

List.

Publish

Write the HTML data saved on the database for this Page as a .html file to the Deployment Directory.

Implemented by:

View: publish_page.

Model: Page.

Example

DMCM Update Page

Update List

Amend the contents of a List entry on the database.

Fields:
Title

Name of the List.

Parent

Parent Page in the site hierarchy. Chosen from existing pages on the database.

Prefix

Text which comes before the list items.

Template

Structure of single list item.

Delimiter

Separator character for each field in the Data.

Data

Field data separated by delimiters. One list item per line.

Suffix

Text which comes after the list items.

Implemented by:

View: list_update.

Model: List.

Form: ListForm.

Edit Parent

Link to the Edit Page process for the Parent Page of this List.

Example

DMCM Update List

Admin

Access to the automatic Django Admin interface.

Django keeps a history of the contents of the BlogPage, List, Option & Page models. The Admin interface can be used to revert to a previous version.