1 | .. _documents: |
---|
2 | |
---|
3 | Public Documents :sup:`in progress` |
---|
4 | *********************************** |
---|
5 | |
---|
6 | The documents section of Kofa is a tiny built-in content management |
---|
7 | system (CMS), which has been developed mainly for publishing |
---|
8 | announcements, adverts, instructions or general information provided |
---|
9 | by the university to inform prospective students about application |
---|
10 | and registration procedures. |
---|
11 | |
---|
12 | Technically speaking, the documents section is a container of type |
---|
13 | `DocumentsContainer` with id ``documents``, which is located in the |
---|
14 | `IUniversity` instance and which contains documents. There are three |
---|
15 | types of public documents:: |
---|
16 | |
---|
17 | Public Documents (DocumentsContainer) |
---|
18 | | |
---|
19 | +---> PDFDocument |
---|
20 | | |
---|
21 | +---> HTMLDocument |
---|
22 | | |
---|
23 | +---> RESTDocument |
---|
24 | |
---|
25 | The first can be used to provide pdf files for download. The second |
---|
26 | and third can be used to create multilingual static html pages on |
---|
27 | the portal. HTML documents expect html coded text as input, REST |
---|
28 | documents expect reStructuredText which is transformed into html. |
---|
29 | |
---|
30 | Interfaces |
---|
31 | ========== |
---|
32 | |
---|
33 | The base for all three document interfaces is `IPublicDocument` |
---|
34 | which inherits from `IDocument`. All attributes are read-only |
---|
35 | properties, i.e. attributes with a getter method only. These |
---|
36 | properties are computed dynamically and can't be set. Only the |
---|
37 | document id and the title can be entered on form pages or can be |
---|
38 | imported. |
---|
39 | |
---|
40 | .. literalinclude:: ../../../src/waeup/kofa/documents/interfaces.py |
---|
41 | :pyobject: IDocument |
---|
42 | |
---|
43 | .. literalinclude:: ../../../src/waeup/kofa/documents/interfaces.py |
---|
44 | :pyobject: IPublicDocument |
---|
45 | |
---|
46 | A PDF Document further specifies which pdf files are connected to |
---|
47 | the object. Usually, only one filename is in the `filenames` tuple. |
---|
48 | |
---|
49 | .. literalinclude:: ../../../src/waeup/kofa/documents/interfaces.py |
---|
50 | :pyobject: IPDFDocument |
---|
51 | |
---|
52 | HTML and REST documents have a schema field for multi-lingual |
---|
53 | content in HTML or in REST format respectively, see :ref:`note |
---|
54 | <multilingual>`. The hidden `html_dict` attributes contain the same |
---|
55 | information after saving the form, but the sequence of language |
---|
56 | translations has been split up and copied into a dictionary for |
---|
57 | faster processing. |
---|
58 | |
---|
59 | .. literalinclude:: ../../../src/waeup/kofa/documents/interfaces.py |
---|
60 | :pyobject: IHTMLDocument |
---|
61 | |
---|
62 | .. literalinclude:: ../../../src/waeup/kofa/documents/interfaces.py |
---|
63 | :pyobject: IRESTDocument |
---|
64 | |
---|
65 | |
---|
66 | Workflow |
---|
67 | ======== |
---|
68 | |
---|
69 | Public documents have a publication workflow with two states: |
---|
70 | created and published. Only the content or attached files of |
---|
71 | published documents can be seen by anonymous users:: |
---|
72 | |
---|
73 | a |
---|
74 | created ----------- published |
---|
75 | |
---|
76 | a: publish |
---|
77 | -a: retract |
---|
78 | |
---|
79 | History & Logging |
---|
80 | ================= |
---|
81 | |
---|
82 | All transitions are automatically logged in ``main.log`` and the |
---|
83 | document's history. This is a sample history of public document:: |
---|
84 | |
---|
85 | 2015-07-05 07:31:32 UTC - Document created by Admin |
---|
86 | 2015-07-05 07:31:53 UTC - Document published by Admin |
---|
87 | 2015-07-05 07:31:57 UTC - Document retracted by Admin |
---|
88 | |
---|
89 | The corresponding logfile excerpt is as follows:: |
---|
90 | |
---|
91 | 2015-07-05 09:31:32,848 - INFO - admin - demodoc - Document created |
---|
92 | 2015-07-05 09:31:32,850 - INFO - admin - documents.browser.DocumentAddFormPage - added: HTML Document demodoc |
---|
93 | 2015-07-05 09:31:39,025 - INFO - admin - documents.browser.HTMLDocumentManageFormPage - demodoc - saved: html_multilingual |
---|
94 | 2015-07-05 09:31:43,279 - INFO - admin - documents.browser.HTMLDocumentManageFormPage - added: benny|waeup.local.DocumentManager |
---|
95 | 2015-07-05 09:31:53,152 - INFO - admin - demodoc - Document published |
---|
96 | 2015-07-05 09:31:57,216 - INFO - admin - demodoc - Document retracted |
---|
97 | 2015-07-05 09:32:46,679 - INFO - admin - documents.browser.DocumentsContainerManageFormPage - removed: demodoc |
---|
98 | |
---|
99 | |
---|
100 | Quick Guide |
---|
101 | =========== |
---|
102 | |
---|
103 | How to add and reference an HTML document |
---|
104 | ----------------------------------------- |
---|
105 | |
---|
106 | 1. Click *Documents > Manage > Add document*. |
---|
107 | 2. Select *HTML Document*, fill fields and press *Add document*. |
---|
108 | 3. Enter multilingual content in HTML format and press *Save*. |
---|
109 | 4. Click *View > Transition*. |
---|
110 | 5. Select *Publish document* and press *Save*. |
---|
111 | |
---|
112 | The document is now published and available to anonymous users. |
---|
113 | |
---|
114 | 6. Mark and copy the HTML Element provided on the page: |
---|
115 | ``<a href= ... /a>``. |
---|
116 | 7. Open another HTML document or a page with multilingual content |
---|
117 | and paste the element where needed. |
---|
118 | |
---|
119 | |
---|
120 | How to add and reference a PDF document |
---|
121 | --------------------------------------- |
---|
122 | |
---|
123 | 1. Click *Documents > Manage > Add document*. |
---|
124 | 2. Select *PDF Document*, fill fields and press *Add document*. |
---|
125 | 3. Select *Files* and upload a pdf file from your computer. |
---|
126 | 4. Click *View > Transition*. |
---|
127 | 5. Select *Publish document* and press *Save*. |
---|
128 | |
---|
129 | The document and the connected pdf file are now published and |
---|
130 | available to anonymous users. |
---|
131 | |
---|
132 | 6. Open the HTML source with your browser, search for the ``a`` |
---|
133 | element |
---|
134 | 7. Mark and copy the HTML element found: |
---|
135 | ``<a target="image" href= ... /a>``. |
---|
136 | 8. Open another HTML document or a page with multilingual content |
---|
137 | and paste the element where needed. |
---|