summaryrefslogtreecommitdiff
path: root/addons/website_project
diff options
context:
space:
mode:
authorAntony Lesuisse <al@openerp.com>2014-01-31 01:51:57 +0100
committerAntony Lesuisse <al@openerp.com>2014-01-31 01:51:57 +0100
commit4b30f1fcbd8701f82dbbe4e5c8386ee432b063ac (patch)
tree93b17a03b45927c20fbb045cda8c8aa09d853409 /addons/website_project
parentba2d4c90307661a79d78e6ce3b274b76b4c62717 (diff)
parent1c283ddf242f0681c1d060f3b8658efa3fcaa0a8 (diff)
[MERGE] trunk-website-al
bzr revid: al@openerp.com-20140131005157-jkf8hz6fh2buml2c
Diffstat (limited to 'addons/website_project')
-rw-r--r--addons/website_project/__init__.py2
-rw-r--r--addons/website_project/__openerp__.py19
-rw-r--r--addons/website_project/controllers/__init__.py1
-rw-r--r--addons/website_project/controllers/main.py50
-rw-r--r--addons/website_project/models/__init__.py1
-rw-r--r--addons/website_project/models/website_project.py9
-rw-r--r--addons/website_project/views/website_project.xml54
7 files changed, 136 insertions, 0 deletions
diff --git a/addons/website_project/__init__.py b/addons/website_project/__init__.py
new file mode 100644
index 00000000000..d3e4f782456
--- /dev/null
+++ b/addons/website_project/__init__.py
@@ -0,0 +1,2 @@
+import models
+import controllers \ No newline at end of file
diff --git a/addons/website_project/__openerp__.py b/addons/website_project/__openerp__.py
new file mode 100644
index 00000000000..81d64cd8d3f
--- /dev/null
+++ b/addons/website_project/__openerp__.py
@@ -0,0 +1,19 @@
+
+{
+ 'name': 'Public Projects',
+ 'category': 'Website',
+ 'summary': 'Publish Your Public Projects',
+ 'version': '1.0',
+ 'description': """
+OpenERP Projects
+================
+
+ """,
+ 'author': 'OpenERP SA',
+ 'depends': ['website_mail', 'project'],
+ 'data': [
+ 'views/website_project.xml',
+ ],
+ 'qweb': ['static/src/xml/*.xml'],
+ 'installable': True,
+}
diff --git a/addons/website_project/controllers/__init__.py b/addons/website_project/controllers/__init__.py
new file mode 100644
index 00000000000..8ee9bae18d9
--- /dev/null
+++ b/addons/website_project/controllers/__init__.py
@@ -0,0 +1 @@
+import main
diff --git a/addons/website_project/controllers/main.py b/addons/website_project/controllers/main.py
new file mode 100644
index 00000000000..4940a521072
--- /dev/null
+++ b/addons/website_project/controllers/main.py
@@ -0,0 +1,50 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2013-Today OpenERP SA (<http://www.openerp.com>).
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+from openerp.addons.web import http
+from openerp.addons.web.http import request
+from openerp.osv import osv
+
+
+class Website(osv.Model):
+ _inherit = "website"
+
+ def preprocess_request(self, cr, uid, ids, request, context=None):
+ project_obj = request.registry['project.project']
+ project_ids = project_obj.search(cr, uid, [('privacy_visibility', "=", "public")], context=request.context)
+
+ request.context.update({
+ 'website_project_ids': project_obj.browse(cr, uid, project_ids, context=request.context)
+ })
+
+ return super(Website, self).preprocess_request(cr, uid, ids, request, context=None)
+
+
+class website_project(http.Controller):
+
+ @http.route(['/project/<model("project.project"):project>/'], type='http', auth="public", website=True, multilang=True)
+ def project(self, project=None, **post):
+ cr, uid, context = request.cr, request.uid, request.context
+ render_values = {
+ 'project': project,
+ 'main_object': project,
+ }
+ return request.website.render("website_project.index", render_values)
diff --git a/addons/website_project/models/__init__.py b/addons/website_project/models/__init__.py
new file mode 100644
index 00000000000..bf67277dc77
--- /dev/null
+++ b/addons/website_project/models/__init__.py
@@ -0,0 +1 @@
+import website_project \ No newline at end of file
diff --git a/addons/website_project/models/website_project.py b/addons/website_project/models/website_project.py
new file mode 100644
index 00000000000..30dc36afcb4
--- /dev/null
+++ b/addons/website_project/models/website_project.py
@@ -0,0 +1,9 @@
+from openerp.osv import orm
+
+class project(orm.Model):
+ _name = 'project.project'
+ _inherit = ['project.project','website.seo.metadata']
+
+class task(orm.Model):
+ _name = 'project.task'
+ _inherit = ['project.task','website.seo.metadata'] \ No newline at end of file
diff --git a/addons/website_project/views/website_project.xml b/addons/website_project/views/website_project.xml
new file mode 100644
index 00000000000..514194083f2
--- /dev/null
+++ b/addons/website_project/views/website_project.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+<data>
+
+<!-- Layout add nav and footer -->
+<template id="footer_custom" inherit_id="website.layout" name="Footer Project's Links">
+ <xpath expr="//footer//ul[@name='products']" position="inside">
+ <li t-foreach="website_project_ids" t-as="project">
+ <a t-attf-href="/project/#{ project.id }/"><span t-field="project.name"/></a>
+ </li>
+ </xpath>
+</template>
+
+<!-- Project -->
+<template id="task_kanban_card" name="TaskKanban">
+ <div class="thumbnail">
+ <a t-attf-href="/web#model=project.task&amp;id=#{object_id.id}"><span t-field="object_id.name"/></a>
+ <div>
+ Assigned to <span t-field="object_id.user_id"/>
+ </div>
+ <div>
+ <span t-foreach="object_id.categ_ids" t-as="categ_id" class="label">
+ <t t-esc="categ_id.name"/>
+ </span>
+ </div>
+ <small>
+ <i class="fa fa-clock-o"></i> <span t-field="object_id.date_start"/><br/>
+ <t t-if="object_id.date_end">Ending Date: <span t-field="object_id.date_end"/></t>
+ </small>
+ </div>
+</template>
+<template id="index" name="Project">
+ <t t-call="website.layout">
+ <t t-set="additional_title">Project</t>
+ <div id="wrap">
+ <div class="oe_structure"/>
+ <div class="container">
+ <h4 t-field="project.name"/>
+ <t t-call="website.kanban">
+ <t t-set="model">project.task</t>
+ <t t-set="domain" t-value="[('project_id', '=', project.id)]"/>
+ <t t-set="column">stage_id</t>
+ <t t-set="template">website_project.task_kanban_card</t>
+ <t t-set="step">10</t>
+ <t t-set="scope">3</t>
+ </t>
+ </div>
+ <div class="oe_structure"/>
+ </div>
+ </t>
+</template>
+
+</data>
+</openerp>