[ADD] lectures model, demonstrate date fields & options

This commit is contained in:
Xavier Morel 2014-01-30 15:07:23 +01:00
parent 8a73978063
commit 6d25d63981
3 changed files with 142 additions and 2 deletions

View File

@ -423,8 +423,30 @@ they can be moved around as necessary (cancelled/rescheduled), they can have
numerous pieces of data attached both intrinsic (lecture transcripts) and numerous pieces of data attached both intrinsic (lecture transcripts) and
extrinsic (attendance records, student discussions, etc…). extrinsic (attendance records, student discussions, etc…).
.. calendar model .. patch::
.. demo data for events dates
.. TODO:: ``-u`` did not work, not even ``-uall``, new data file does not get
installed
Note a new feature: ``t-field`` tags can take options through
``t-field-options``. The options must be a JSON_ object. Available options
depend on the field's type and potentially the display widget (some types
of fields can be displayed in multiple manners). In this case, the same
``date`` field is displayed using custom date formats, one being the generic
``long`` (which depends on the current user's locale) and the other being
an explicit format for `the weekday in short form
<http://babel.pocoo.org/docs/dates/#date-fields>`_.
.. note:: in edition mode, formatted date and datetime fields revert to a
canonical representation in order to provide all of the field's
information.
.. warning:: if you edit the course's dates, you will notice that the two
displays of the ``date`` field are unlinked, if one is edited
the second one will not change until the edition is saved. This
is a limitation of the current ``website`` but may be improved in
future releases.
.. access & formatting .. access & formatting
.. sending & storing comments (?) .. sending & storing comments (?)
@ -449,3 +471,5 @@ Administration and ERP Integration
.. _templates: http://en.wikipedia.org/wiki/Web_template .. _templates: http://en.wikipedia.org/wiki/Web_template
.. _your openerp: http://localhost:8069/ .. _your openerp: http://localhost:8069/
.. _JSON: http://www.json.org

View File

@ -0,0 +1,115 @@
# HG changeset patch
# Parent 65912bc56408d6bf61b2023a79a48e06a22fe9e2
diff --git a/__openerp__.py b/__openerp__.py
--- a/__openerp__.py
+++ b/__openerp__.py
@@ -6,5 +6,6 @@
'ir.model.access.csv',
'views/templates.xml',
'data/teaching_assistants.xml',
+ 'data/lectures.xml',
]
}
diff --git a/controllers.py b/controllers.py
--- a/controllers.py
+++ b/controllers.py
@@ -4,10 +4,15 @@ from openerp.addons.web.controllers impo
class Home(main.Home):
@http.route('/', auth='public')
def index(self):
+ cr, uid, context = http.request.cr, http.request.uid, http.request.context
+ Lectures = http.request.registry['academy.lectures']
tas = http.request.registry['academy.tas'].search_read(
http.request.cr, http.request.uid, context=http.request.context)
+ lectures = Lectures.browse(
+ cr, uid, Lectures.search(cr, uid, [], context=context), context=context)
return http.request.website.render('academy.index', {
'tas': tas,
+ 'lectures': lectures,
})
@http.route('/tas/<model("academy.tas"):ta>/', auth='public', website=True)
diff --git a/data/lectures.xml b/data/lectures.xml
new file mode 100644
--- /dev/null
+++ b/data/lectures.xml
@@ -0,0 +1,24 @@
+<openerp>
+ <data>
+ <record model="academy.lectures">
+ <field name="name">Lecture 1</field>
+ <field name="date">2014-01-06</field>
+ </record>
+ <record model="academy.lectures">
+ <field name="name">Lecture 2</field>
+ <field name="date">2014-01-08</field>
+ </record>
+ <record model="academy.lectures">
+ <field name="name">Lecture 3</field>
+ <field name="date">2014-01-10</field>
+ </record>
+ <record model="academy.lectures">
+ <field name="name">Lecture 4</field>
+ <field name="date">2014-01-13</field>
+ </record>
+ <record model="academy.lectures">
+ <field name="name">Lecture 5</field>
+ <field name="date">2014-01-15</field>
+ </record>
+ </data>
+</openerp>
diff --git a/ir.model.access.csv b/ir.model.access.csv
--- a/ir.model.access.csv
+++ b/ir.model.access.csv
@@ -1,2 +1,3 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_academy_tas,access_academy_tas,model_academy_tas,,1,0,0,0
+access_academy_lectures,access_academy_lectures,model_academy_lectures,,1,0,0,0
diff --git a/models.py b/models.py
--- a/models.py
+++ b/models.py
@@ -9,3 +9,12 @@ class TeachingAssistants(orm.Model):
'name': fields.char(),
'biography': fields.html(),
}
+
+class Lectures(orm.Model):
+ _name = 'academy.lectures'
+ _order = 'date ASC'
+
+ _columns = {
+ 'name': fields.char(required=True),
+ 'date': fields.date(required=True),
+ }
diff --git a/views/templates.xml b/views/templates.xml
--- a/views/templates.xml
+++ b/views/templates.xml
@@ -22,6 +22,27 @@
</a>
</li>
</ul>
+ <h2>Course Calendar</h2>
+ <table class="table table-condensed table-hover">
+ <tr>
+ <th>Date</th>
+ <th>Day</th>
+ <th>Topic</th>
+ </tr>
+ <tr t-foreach="lectures" t-as="lecture">
+ <td>
+ <span t-field="lecture.date"
+ t-field-options='{"format": "long"}'/>
+ </td>
+ <td>
+ <span t-field="lecture.date"
+ t-field-options='{"format": "EEE"}'/>
+ </td>
+ <td>
+ <span t-field="lecture.name"/>
+ </td>
+ </tr>
+ </table>
</div>
</div>
<div class="oe_structure"/>

View File

@ -13,3 +13,4 @@ ta-view-fix
ta-t-field ta-t-field
ta-html-biography ta-html-biography
ta-template-biography ta-template-biography
lectures-model-add