Browse Source

create pages package and page class (for Mito to map to DB).

stable
Craig Oates 2 years ago
parent
commit
e4612d0711
  1. 48
      src/models/pages.lisp

48
src/models/pages.lisp

@ -0,0 +1,48 @@
(in-package #:cl-user)
(defpackage #:pages
(:use #:cl
#:ritherdon-archive.db
#:mito
#:app-constants)
(:export #:page))
(in-package #:pages)
(defclass page ()
((title
:documentation "The title of the page."
:col-type (or :text :null)
:initarg :title
:initform :title
:accessor title-of)
(slug
:documentation "The slugified version of the page `TITLE'. This is what is
used when constructing links and accessing the page from the browser."
:col-type (or :text :null)
:initarg :slug
:initform :null
:accessor slug-of)
(enable-nav-menu
:documentation
"Boolean value stating if `PAGE' should be included on site's nav. menu."
:col-type (or :integer :null)
:initarg :enable-nav-menu
:initform +false+ ;SQLite 0 -> false 1 -> true.
:accessor enable-nav-menu-p)
(can-delete
:documentation
"Specifies if the page can be deleted from the database. This is for
'hard-coded' pages such as the 'archive' and 'pages'. The user won't make
these pages they come as part of the website which the use can add to the
nav. menu."
:col-type (or :integer :null)
:initarg :can-delete
:initform +false+ ;SQLite 0 -> false 1 -> true.
:accessor can-delete-p))
(:documentation "`PAGE' represents the meta-data for the pages made by the
`USER' which are stored in the database. The actual pages are stored in the
/storage/pages directory.")
(:metaclass mito:dao-table-class))
Loading…
Cancel
Save