diff options
| author | Antony Lesuisse <al@openerp.com> | 2015-08-14 13:19:31 +0200 |
|---|---|---|
| committer | Antony Lesuisse <al@openerp.com> | 2015-08-14 13:19:31 +0200 |
| commit | 3286dc2ec74e5be3e87e39114fad90068d2cb8fa (patch) | |
| tree | 48bda72c201e76db21a86f009b5a2e06af8b84e9 | |
| parent | f8357a1a605d1c74d09d7ea5d74ab53ce77aa085 (diff) | |
| parent | 60514d0d0d7254c17ecebad99423f26fd4138d8e (diff) | |
[MERGE] project_issue: website portal
- Remove portal_project move rules to project
- Add issues in the /my/home frontend portal
- Remove website_project, task access is backend only
91 files changed, 403 insertions, 2325 deletions
diff --git a/.tx/config b/.tx/config index a643acbf7dd..267dee8797f 100644 --- a/.tx/config +++ b/.tx/config @@ -687,16 +687,6 @@ file_filter = addons/portal_claim/i18n/<lang>.po source_file = addons/portal_claim/i18n/portal_claim.pot source_lang = en -[odoo-9.portal_project] -file_filter = addons/portal_project/i18n/<lang>.po -source_file = addons/portal_project/i18n/portal_project.pot -source_lang = en - -[odoo-9.portal_project_issue] -file_filter = addons/portal_project_issue/i18n/<lang>.po -source_file = addons/portal_project_issue/i18n/portal_project_issue.pot -source_lang = en - [odoo-9.portal_sale] file_filter = addons/portal_sale/i18n/<lang>.po source_file = addons/portal_sale/i18n/portal_sale.pot @@ -1072,9 +1062,9 @@ file_filter = addons/website_payment/i18n/<lang>.po source_file = addons/website_payment/i18n/website_payment.pot source_lang = en -[odoo-9.website_project] -file_filter = addons/website_project/i18n/<lang>.po -source_file = addons/website_project/i18n/website_project.pot +[odoo-9.website_project_issue] +file_filter = addons/website_project_issue/i18n/<lang>.po +source_file = addons/website_project_issue/i18n/portal_project_issue.pot source_lang = en [odoo-9.website_quote] diff --git a/addons/portal_project/i18n/ar.po b/addons/portal_project/i18n/ar.po deleted file mode 100644 index b2f646a2958..00000000000 --- a/addons/portal_project/i18n/ar.po +++ /dev/null @@ -1,42 +0,0 @@ -# Arabic translation for openobject-addons -# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2014. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2014-08-14 13:09+0000\n" -"PO-Revision-Date: 2014-08-14 16:10+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Arabic <ar@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-08-15 07:35+0000\n" -"X-Generator: Launchpad (build 17156)\n" - -#. module: portal_project -#: model:ir.actions.act_window,help:portal_project.open_view_project -msgid "" -"<p class=\"oe_view_nocontent_create\">\n" -" Click to start a new project.\n" -" </p>\n" -" " -msgstr "" -"<p class=\"oe_view_nocontent_create\">\n" -" انقر لبدء مشروع جديد.\n" -" </p>\n" -" " - -#. module: portal_project -#: model:ir.model,name:portal_project.model_project_project -msgid "Project" -msgstr "المشروع" - -#. module: portal_project -#: model:ir.actions.act_window,name:portal_project.open_view_project -#: model:ir.ui.menu,name:portal_project.portal_services_projects -msgid "Projects" -msgstr "المشروعات" diff --git a/addons/portal_project/i18n/cs.po b/addons/portal_project/i18n/cs.po deleted file mode 100644 index e32436ced0b..00000000000 --- a/addons/portal_project/i18n/cs.po +++ /dev/null @@ -1,42 +0,0 @@ -# Czech translation for openobject-addons -# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2014. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2014-08-14 13:09+0000\n" -"PO-Revision-Date: 2014-08-14 16:10+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Czech <cs@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-08-15 07:35+0000\n" -"X-Generator: Launchpad (build 17156)\n" - -#. module: portal_project -#: model:ir.actions.act_window,help:portal_project.open_view_project -msgid "" -"<p class=\"oe_view_nocontent_create\">\n" -" Click to start a new project.\n" -" </p>\n" -" " -msgstr "" -"<p class=\"oe_view_nocontent_create\">\n" -" Klikněte pro založení nového projektu.\n" -" </p>\n" -" " - -#. module: portal_project -#: model:ir.model,name:portal_project.model_project_project -msgid "Project" -msgstr "" - -#. module: portal_project -#: model:ir.actions.act_window,name:portal_project.open_view_project -#: model:ir.ui.menu,name:portal_project.portal_services_projects -msgid "Projects" -msgstr "Projekty" diff --git a/addons/portal_project/i18n/de.po b/addons/portal_project/i18n/de.po deleted file mode 100644 index 6a2eda878ed..00000000000 --- a/addons/portal_project/i18n/de.po +++ /dev/null @@ -1,42 +0,0 @@ -# German translation for openobject-addons -# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2014. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2014-08-14 13:09+0000\n" -"PO-Revision-Date: 2014-08-14 16:10+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: German <de@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-08-15 07:35+0000\n" -"X-Generator: Launchpad (build 17156)\n" - -#. module: portal_project -#: model:ir.actions.act_window,help:portal_project.open_view_project -msgid "" -"<p class=\"oe_view_nocontent_create\">\n" -" Click to start a new project.\n" -" </p>\n" -" " -msgstr "" -"<p class=\"oe_view_nocontent_create\">\n" -" Klicken Sie um ein neues Projekt anzulegen.\n" -" </p>\n" -" " - -#. module: portal_project -#: model:ir.model,name:portal_project.model_project_project -msgid "Project" -msgstr "Projekt" - -#. module: portal_project -#: model:ir.actions.act_window,name:portal_project.open_view_project -#: model:ir.ui.menu,name:portal_project.portal_services_projects -msgid "Projects" -msgstr "Projekte" diff --git a/addons/portal_project/i18n/es.po b/addons/portal_project/i18n/es.po deleted file mode 100644 index 3af130ad5f2..00000000000 --- a/addons/portal_project/i18n/es.po +++ /dev/null @@ -1,42 +0,0 @@ -# Spanish translation for openobject-addons -# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2014. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2014-08-14 13:09+0000\n" -"PO-Revision-Date: 2014-08-14 16:10+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Spanish <es@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-08-15 07:35+0000\n" -"X-Generator: Launchpad (build 17156)\n" - -#. module: portal_project -#: model:ir.actions.act_window,help:portal_project.open_view_project -msgid "" -"<p class=\"oe_view_nocontent_create\">\n" -" Click to start a new project.\n" -" </p>\n" -" " -msgstr "" -"<p class=\"oe_view_nocontent_create\">\n" -"Pulse para crear un nuevo proyecto.\n" -"</p>\n" -" " - -#. module: portal_project -#: model:ir.model,name:portal_project.model_project_project -msgid "Project" -msgstr "Proyecto" - -#. module: portal_project -#: model:ir.actions.act_window,name:portal_project.open_view_project -#: model:ir.ui.menu,name:portal_project.portal_services_projects -msgid "Projects" -msgstr "Proyectos" diff --git a/addons/portal_project/i18n/es_AR.po b/addons/portal_project/i18n/es_AR.po deleted file mode 100644 index a6e3d591530..00000000000 --- a/addons/portal_project/i18n/es_AR.po +++ /dev/null @@ -1,44 +0,0 @@ -# Spanish (Argentina) translation for openobject-addons -# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2014. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2014-08-14 13:09+0000\n" -"PO-Revision-Date: 2014-08-14 16:10+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Spanish (Argentina) <es_AR@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-08-15 07:35+0000\n" -"X-Generator: Launchpad (build 17156)\n" - -#. module: portal_project -#: model:ir.actions.act_window,help:portal_project.open_view_project -msgid "" -"<p class=\"oe_view_nocontent_create\">\n" -" Click to start a new project.\n" -" </p>\n" -" " -msgstr "" -"<p class=\"oe_view_nocontent_create\">\n" -" Pulse para crear un nuevo proyecto.\n" -" </p>\n" -" \n" -"</p>\n" -" " - -#. module: portal_project -#: model:ir.model,name:portal_project.model_project_project -msgid "Project" -msgstr "" - -#. module: portal_project -#: model:ir.actions.act_window,name:portal_project.open_view_project -#: model:ir.ui.menu,name:portal_project.portal_services_projects -msgid "Projects" -msgstr "Proyectos" diff --git a/addons/portal_project/i18n/fi.po b/addons/portal_project/i18n/fi.po deleted file mode 100644 index ef48a15b8a6..00000000000 --- a/addons/portal_project/i18n/fi.po +++ /dev/null @@ -1,42 +0,0 @@ -# Finnish translation for openobject-addons -# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2014. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2014-08-14 13:09+0000\n" -"PO-Revision-Date: 2014-08-14 16:10+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Finnish <fi@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-08-15 07:35+0000\n" -"X-Generator: Launchpad (build 17156)\n" - -#. module: portal_project -#: model:ir.actions.act_window,help:portal_project.open_view_project -msgid "" -"<p class=\"oe_view_nocontent_create\">\n" -" Click to start a new project.\n" -" </p>\n" -" " -msgstr "" -"<p class=\"oe_view_nocontent_create\">\n" -" Klikkaa aloittaaksesi uuden projektin.\n" -" </p>\n" -" " - -#. module: portal_project -#: model:ir.model,name:portal_project.model_project_project -msgid "Project" -msgstr "Projekti" - -#. module: portal_project -#: model:ir.actions.act_window,name:portal_project.open_view_project -#: model:ir.ui.menu,name:portal_project.portal_services_projects -msgid "Projects" -msgstr "Projektit" diff --git a/addons/portal_project/i18n/fr.po b/addons/portal_project/i18n/fr.po deleted file mode 100644 index 02d18eebc9f..00000000000 --- a/addons/portal_project/i18n/fr.po +++ /dev/null @@ -1,42 +0,0 @@ -# French translation for openobject-addons -# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2014. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2014-08-14 13:09+0000\n" -"PO-Revision-Date: 2014-08-14 16:10+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: French <fr@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-08-15 07:35+0000\n" -"X-Generator: Launchpad (build 17156)\n" - -#. module: portal_project -#: model:ir.actions.act_window,help:portal_project.open_view_project -msgid "" -"<p class=\"oe_view_nocontent_create\">\n" -" Click to start a new project.\n" -" </p>\n" -" " -msgstr "" -"<p class=\"oe_view_nocontent_create\">\n" -" Cliquez pour démarrer un nouveau projet.\n" -" </p>\n" -" " - -#. module: portal_project -#: model:ir.model,name:portal_project.model_project_project -msgid "Project" -msgstr "Projet" - -#. module: portal_project -#: model:ir.actions.act_window,name:portal_project.open_view_project -#: model:ir.ui.menu,name:portal_project.portal_services_projects -msgid "Projects" -msgstr "Projets" diff --git a/addons/portal_project/i18n/he.po b/addons/portal_project/i18n/he.po deleted file mode 100644 index 8eb2f964b5f..00000000000 --- a/addons/portal_project/i18n/he.po +++ /dev/null @@ -1,38 +0,0 @@ -# Hebrew translation for openobject-addons -# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2014. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2014-08-14 13:09+0000\n" -"PO-Revision-Date: 2014-08-14 16:10+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Hebrew <he@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-08-15 07:35+0000\n" -"X-Generator: Launchpad (build 17156)\n" - -#. module: portal_project -#: model:ir.actions.act_window,help:portal_project.open_view_project -msgid "" -"<p class=\"oe_view_nocontent_create\">\n" -" Click to start a new project.\n" -" </p>\n" -" " -msgstr "" - -#. module: portal_project -#: model:ir.model,name:portal_project.model_project_project -msgid "Project" -msgstr "" - -#. module: portal_project -#: model:ir.actions.act_window,name:portal_project.open_view_project -#: model:ir.ui.menu,name:portal_project.portal_services_projects -msgid "Projects" -msgstr "" diff --git a/addons/portal_project/i18n/hr.po b/addons/portal_project/i18n/hr.po deleted file mode 100644 index 2d15e6f1c59..00000000000 --- a/addons/portal_project/i18n/hr.po +++ /dev/null @@ -1,42 +0,0 @@ -# Croatian translation for openobject-addons -# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2014. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2014-08-14 13:09+0000\n" -"PO-Revision-Date: 2014-08-14 16:10+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Croatian <hr@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-08-15 07:35+0000\n" -"X-Generator: Launchpad (build 17156)\n" - -#. module: portal_project -#: model:ir.actions.act_window,help:portal_project.open_view_project -msgid "" -"<p class=\"oe_view_nocontent_create\">\n" -" Click to start a new project.\n" -" </p>\n" -" " -msgstr "" -"<p class=\"oe_view_nocontent_create\">\n" -" Pritisnite za kreiranje novog projekta.\n" -" </p>\n" -" " - -#. module: portal_project -#: model:ir.model,name:portal_project.model_project_project -msgid "Project" -msgstr "Projekt" - -#. module: portal_project -#: model:ir.actions.act_window,name:portal_project.open_view_project -#: model:ir.ui.menu,name:portal_project.portal_services_projects -msgid "Projects" -msgstr "Projekti" diff --git a/addons/portal_project/i18n/hu.po b/addons/portal_project/i18n/hu.po deleted file mode 100644 index eace06e53d5..00000000000 --- a/addons/portal_project/i18n/hu.po +++ /dev/null @@ -1,42 +0,0 @@ -# Hungarian translation for openobject-addons -# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2014. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2014-08-14 13:09+0000\n" -"PO-Revision-Date: 2014-08-14 16:10+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Hungarian <hu@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-08-15 07:35+0000\n" -"X-Generator: Launchpad (build 17156)\n" - -#. module: portal_project -#: model:ir.actions.act_window,help:portal_project.open_view_project -msgid "" -"<p class=\"oe_view_nocontent_create\">\n" -" Click to start a new project.\n" -" </p>\n" -" " -msgstr "" -"<p class=\"oe_view_nocontent_create\">\n" -" Kattintson új projekt létrehozásához.\n" -" </p>\n" -" " - -#. module: portal_project -#: model:ir.model,name:portal_project.model_project_project -msgid "Project" -msgstr "Projekt" - -#. module: portal_project -#: model:ir.actions.act_window,name:portal_project.open_view_project -#: model:ir.ui.menu,name:portal_project.portal_services_projects -msgid "Projects" -msgstr "Projektek" diff --git a/addons/portal_project/i18n/it.po b/addons/portal_project/i18n/it.po deleted file mode 100644 index f978132b8af..00000000000 --- a/addons/portal_project/i18n/it.po +++ /dev/null @@ -1,42 +0,0 @@ -# Italian translation for openobject-addons -# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2014. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2014-08-14 13:09+0000\n" -"PO-Revision-Date: 2014-08-14 16:10+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Italian <it@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-08-15 07:35+0000\n" -"X-Generator: Launchpad (build 17156)\n" - -#. module: portal_project -#: model:ir.actions.act_window,help:portal_project.open_view_project -msgid "" -"<p class=\"oe_view_nocontent_create\">\n" -" Click to start a new project.\n" -" </p>\n" -" " -msgstr "" -"<p class=\"oe_view_nocontent_create\">\n" -" Cliccare per avviare un nuovo progetto.\n" -" </p>\n" -" " - -#. module: portal_project -#: model:ir.model,name:portal_project.model_project_project -msgid "Project" -msgstr "" - -#. module: portal_project -#: model:ir.actions.act_window,name:portal_project.open_view_project -#: model:ir.ui.menu,name:portal_project.portal_services_projects -msgid "Projects" -msgstr "Progetti" diff --git a/addons/portal_project/i18n/mk.po b/addons/portal_project/i18n/mk.po deleted file mode 100644 index 7d6c347c6d8..00000000000 --- a/addons/portal_project/i18n/mk.po +++ /dev/null @@ -1,42 +0,0 @@ -# Macedonian translation for openobject-addons -# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2014. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2014-08-14 13:09+0000\n" -"PO-Revision-Date: 2014-10-19 10:34+0000\n" -"Last-Translator: Tome Barbov <tome.barbov@eskon.com.mk>\n" -"Language-Team: Macedonian <mk@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-10-20 07:19+0000\n" -"X-Generator: Launchpad (build 17196)\n" - -#. module: portal_project -#: model:ir.actions.act_window,help:portal_project.open_view_project -msgid "" -"<p class=\"oe_view_nocontent_create\">\n" -" Click to start a new project.\n" -" </p>\n" -" " -msgstr "" -"<p class=\"oe_view_nocontent_create\">\n" -" Кликнете за да започнете нов проект.\n" -" </p>\n" -" " - -#. module: portal_project -#: model:ir.model,name:portal_project.model_project_project -msgid "Project" -msgstr "Проект" - -#. module: portal_project -#: model:ir.actions.act_window,name:portal_project.open_view_project -#: model:ir.ui.menu,name:portal_project.portal_services_projects -msgid "Projects" -msgstr "Проекти" diff --git a/addons/portal_project/i18n/nl.po b/addons/portal_project/i18n/nl.po deleted file mode 100644 index e93cc1315bc..00000000000 --- a/addons/portal_project/i18n/nl.po +++ /dev/null @@ -1,42 +0,0 @@ -# Dutch translation for openobject-addons -# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2014. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2014-08-14 13:09+0000\n" -"PO-Revision-Date: 2014-08-14 16:10+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Dutch <nl@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-08-15 07:35+0000\n" -"X-Generator: Launchpad (build 17156)\n" - -#. module: portal_project -#: model:ir.actions.act_window,help:portal_project.open_view_project -msgid "" -"<p class=\"oe_view_nocontent_create\">\n" -" Click to start a new project.\n" -" </p>\n" -" " -msgstr "" -"<p class=\"oe_view_nocontent_create\">\n" -" Klik hier om een nieuw project te starten. .\n" -" </p>\n" -" " - -#. module: portal_project -#: model:ir.model,name:portal_project.model_project_project -msgid "Project" -msgstr "Project" - -#. module: portal_project -#: model:ir.actions.act_window,name:portal_project.open_view_project -#: model:ir.ui.menu,name:portal_project.portal_services_projects -msgid "Projects" -msgstr "Projecten" diff --git a/addons/portal_project/i18n/pl.po b/addons/portal_project/i18n/pl.po deleted file mode 100644 index adb5a108e87..00000000000 --- a/addons/portal_project/i18n/pl.po +++ /dev/null @@ -1,43 +0,0 @@ -# Polish translation for openobject-addons -# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2014. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2014-08-14 13:09+0000\n" -"PO-Revision-Date: 2014-08-27 21:17+0000\n" -"Last-Translator: Monika Grzelak (OpenGLOBE.pl) " -"<monika.grzelak@openglobe.pl>\n" -"Language-Team: Polish <pl@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-08-28 06:35+0000\n" -"X-Generator: Launchpad (build 17174)\n" - -#. module: portal_project -#: model:ir.actions.act_window,help:portal_project.open_view_project -msgid "" -"<p class=\"oe_view_nocontent_create\">\n" -" Click to start a new project.\n" -" </p>\n" -" " -msgstr "" -"<p class=\"oe_view_nocontent_create\">\n" -" Kliknij, aby rozpocząć nowy projekt.\n" -" </p>\n" -" " - -#. module: portal_project -#: model:ir.model,name:portal_project.model_project_project -msgid "Project" -msgstr "Projekt" - -#. module: portal_project -#: model:ir.actions.act_window,name:portal_project.open_view_project -#: model:ir.ui.menu,name:portal_project.portal_services_projects -msgid "Projects" -msgstr "Projekty" diff --git a/addons/portal_project/i18n/portal_project.pot b/addons/portal_project/i18n/portal_project.pot deleted file mode 100644 index da7594ba6d7..00000000000 --- a/addons/portal_project/i18n/portal_project.pot +++ /dev/null @@ -1,42 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * portal_project -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 8.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-01-21 14:08+0000\n" -"PO-Revision-Date: 2015-01-21 14:08+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: portal_project -#: model:ir.actions.act_window,help:portal_project.open_view_project -msgid "<p class=\"oe_view_nocontent_create\">\n" -" Click to start a new project.\n" -" </p>\n" -" " -msgstr "" - -#. module: portal_project -#: code:addons/portal_project/project.py:33 -#, python-format -msgid "Customer related project: visible through portal" -msgstr "" - -#. module: portal_project -#: model:ir.model,name:portal_project.model_project_project -msgid "Project" -msgstr "" - -#. module: portal_project -#: model:ir.actions.act_window,name:portal_project.open_view_project -#: model:ir.ui.menu,name:portal_project.portal_services_projects -msgid "Projects" -msgstr "" - diff --git a/addons/portal_project/i18n/pt.po b/addons/portal_project/i18n/pt.po deleted file mode 100644 index 1c420ee1d2c..00000000000 --- a/addons/portal_project/i18n/pt.po +++ /dev/null @@ -1,42 +0,0 @@ -# Portuguese translation for openobject-addons -# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2014. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2014-08-14 13:09+0000\n" -"PO-Revision-Date: 2014-09-17 17:57+0000\n" -"Last-Translator: Opencloud - PT <Unknown>\n" -"Language-Team: Portuguese <pt@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-09-19 08:21+0000\n" -"X-Generator: Launchpad (build 17196)\n" - -#. module: portal_project -#: model:ir.actions.act_window,help:portal_project.open_view_project -msgid "" -"<p class=\"oe_view_nocontent_create\">\n" -" Click to start a new project.\n" -" </p>\n" -" " -msgstr "" -"<p class=\"oe_view_nocontent_create\">\n" -" Carregue, para criar um projeto.\n" -" </p>\n" -" " - -#. module: portal_project -#: model:ir.model,name:portal_project.model_project_project -msgid "Project" -msgstr "Projeto" - -#. module: portal_project -#: model:ir.actions.act_window,name:portal_project.open_view_project -#: model:ir.ui.menu,name:portal_project.portal_services_projects -msgid "Projects" -msgstr "Projetos" diff --git a/addons/portal_project/i18n/pt_BR.po b/addons/portal_project/i18n/pt_BR.po deleted file mode 100644 index 640ad94a380..00000000000 --- a/addons/portal_project/i18n/pt_BR.po +++ /dev/null @@ -1,42 +0,0 @@ -# Brazilian Portuguese translation for openobject-addons -# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2014. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2014-08-14 13:09+0000\n" -"PO-Revision-Date: 2014-08-14 16:10+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-08-15 07:35+0000\n" -"X-Generator: Launchpad (build 17156)\n" - -#. module: portal_project -#: model:ir.actions.act_window,help:portal_project.open_view_project -msgid "" -"<p class=\"oe_view_nocontent_create\">\n" -" Click to start a new project.\n" -" </p>\n" -" " -msgstr "" -"<p class=\"oe_view_nocontent_create\">\n" -" Clique para iniciar um novo projeto.\n" -" </p>\n" -" " - -#. module: portal_project -#: model:ir.model,name:portal_project.model_project_project -msgid "Project" -msgstr "Projeto" - -#. module: portal_project -#: model:ir.actions.act_window,name:portal_project.open_view_project -#: model:ir.ui.menu,name:portal_project.portal_services_projects -msgid "Projects" -msgstr "Projetos" diff --git a/addons/portal_project/i18n/ro.po b/addons/portal_project/i18n/ro.po deleted file mode 100644 index 237058a0d8c..00000000000 --- a/addons/portal_project/i18n/ro.po +++ /dev/null @@ -1,42 +0,0 @@ -# Romanian translation for openobject-addons -# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2014. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2014-08-14 13:09+0000\n" -"PO-Revision-Date: 2014-08-14 16:10+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Romanian <ro@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-08-15 07:35+0000\n" -"X-Generator: Launchpad (build 17156)\n" - -#. module: portal_project -#: model:ir.actions.act_window,help:portal_project.open_view_project -msgid "" -"<p class=\"oe_view_nocontent_create\">\n" -" Click to start a new project.\n" -" </p>\n" -" " -msgstr "" -"<clasa p=\"oe_vizualizare_niciuncontinut_creeaza\">\n" -" Faceti click pentru a incepe un proiect nou.\n" -" </p>\n" -" " - -#. module: portal_project -#: model:ir.model,name:portal_project.model_project_project -msgid "Project" -msgstr "" - -#. module: portal_project -#: model:ir.actions.act_window,name:portal_project.open_view_project -#: model:ir.ui.menu,name:portal_project.portal_services_projects -msgid "Projects" -msgstr "Proiecte" diff --git a/addons/portal_project/i18n/ru.po b/addons/portal_project/i18n/ru.po deleted file mode 100644 index 34e51d6cfeb..00000000000 --- a/addons/portal_project/i18n/ru.po +++ /dev/null @@ -1,38 +0,0 @@ -# Russian translation for openobject-addons -# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2014. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2014-08-14 13:09+0000\n" -"PO-Revision-Date: 2014-09-19 12:12+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Russian <ru@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-09-20 06:43+0000\n" -"X-Generator: Launchpad (build 17196)\n" - -#. module: portal_project -#: model:ir.actions.act_window,help:portal_project.open_view_project -msgid "" -"<p class=\"oe_view_nocontent_create\">\n" -" Click to start a new project.\n" -" </p>\n" -" " -msgstr "" - -#. module: portal_project -#: model:ir.model,name:portal_project.model_project_project -msgid "Project" -msgstr "" - -#. module: portal_project -#: model:ir.actions.act_window,name:portal_project.open_view_project -#: model:ir.ui.menu,name:portal_project.portal_services_projects -msgid "Projects" -msgstr "" diff --git a/addons/portal_project/i18n/sl.po b/addons/portal_project/i18n/sl.po deleted file mode 100644 index a6ad4c5b9bb..00000000000 --- a/addons/portal_project/i18n/sl.po +++ /dev/null @@ -1,42 +0,0 @@ -# Slovenian translation for openobject-addons -# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2014. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2014-08-14 13:09+0000\n" -"PO-Revision-Date: 2014-08-14 16:10+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Slovenian <sl@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-08-15 07:35+0000\n" -"X-Generator: Launchpad (build 17156)\n" - -#. module: portal_project -#: model:ir.actions.act_window,help:portal_project.open_view_project -msgid "" -"<p class=\"oe_view_nocontent_create\">\n" -" Click to start a new project.\n" -" </p>\n" -" " -msgstr "" -"<p class=\"oe_view_nocontent_create\">\n" -" Nov projekt.\n" -" </p>\n" -" " - -#. module: portal_project -#: model:ir.model,name:portal_project.model_project_project -msgid "Project" -msgstr "" - -#. module: portal_project -#: model:ir.actions.act_window,name:portal_project.open_view_project -#: model:ir.ui.menu,name:portal_project.portal_services_projects -msgid "Projects" -msgstr "Projekti" diff --git a/addons/portal_project/i18n/sv.po b/addons/portal_project/i18n/sv.po deleted file mode 100644 index e527d85bba6..00000000000 --- a/addons/portal_project/i18n/sv.po +++ /dev/null @@ -1,38 +0,0 @@ -# Swedish translation for openobject-addons -# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2014. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2014-08-14 13:09+0000\n" -"PO-Revision-Date: 2014-08-14 16:10+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Swedish <sv@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-08-15 07:35+0000\n" -"X-Generator: Launchpad (build 17156)\n" - -#. module: portal_project -#: model:ir.actions.act_window,help:portal_project.open_view_project -msgid "" -"<p class=\"oe_view_nocontent_create\">\n" -" Click to start a new project.\n" -" </p>\n" -" " -msgstr "" - -#. module: portal_project -#: model:ir.model,name:portal_project.model_project_project -msgid "Project" -msgstr "" - -#. module: portal_project -#: model:ir.actions.act_window,name:portal_project.open_view_project -#: model:ir.ui.menu,name:portal_project.portal_services_projects -msgid "Projects" -msgstr "Projekt" diff --git a/addons/portal_project/i18n/tr.po b/addons/portal_project/i18n/tr.po deleted file mode 100644 index ac8d1a8d12d..00000000000 --- a/addons/portal_project/i18n/tr.po +++ /dev/null @@ -1,42 +0,0 @@ -# Turkish translation for openobject-addons -# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2014. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2014-08-14 13:09+0000\n" -"PO-Revision-Date: 2014-08-14 16:10+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Turkish <tr@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-08-15 07:35+0000\n" -"X-Generator: Launchpad (build 17156)\n" - -#. module: portal_project -#: model:ir.actions.act_window,help:portal_project.open_view_project -msgid "" -"<p class=\"oe_view_nocontent_create\">\n" -" Click to start a new project.\n" -" </p>\n" -" " -msgstr "" -"<p class=\"oe_view_nocontent_create\">\n" -" Yeni bir proje başlatmak için tıklayın.\n" -" </p>\n" -" " - -#. module: portal_project -#: model:ir.model,name:portal_project.model_project_project -msgid "Project" -msgstr "Proje" - -#. module: portal_project -#: model:ir.actions.act_window,name:portal_project.open_view_project -#: model:ir.ui.menu,name:portal_project.portal_services_projects -msgid "Projects" -msgstr "Projeler" diff --git a/addons/portal_project/i18n/zh_CN.po b/addons/portal_project/i18n/zh_CN.po deleted file mode 100644 index 50f59d70948..00000000000 --- a/addons/portal_project/i18n/zh_CN.po +++ /dev/null @@ -1,42 +0,0 @@ -# Chinese (Simplified) translation for openobject-addons -# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2014. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2014-08-14 13:09+0000\n" -"PO-Revision-Date: 2014-08-14 16:10+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-08-15 07:35+0000\n" -"X-Generator: Launchpad (build 17156)\n" - -#. module: portal_project -#: model:ir.actions.act_window,help:portal_project.open_view_project -msgid "" -"<p class=\"oe_view_nocontent_create\">\n" -" Click to start a new project.\n" -" </p>\n" -" " -msgstr "" -"<p class=\"oe_view_nocontent_create\">\n" -" 点击开始一个新项目。\n" -" </p>\n" -" " - -#. module: portal_project -#: model:ir.model,name:portal_project.model_project_project -msgid "Project" -msgstr "" - -#. module: portal_project -#: model:ir.actions.act_window,name:portal_project.open_view_project -#: model:ir.ui.menu,name:portal_project.portal_services_projects -msgid "Projects" -msgstr "项目" diff --git a/addons/portal_project/portal_project_view.xml b/addons/portal_project/portal_project_view.xml deleted file mode 100644 index b7f3568545b..00000000000 --- a/addons/portal_project/portal_project_view.xml +++ /dev/null @@ -1,25 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<openerp> - <data> - - <record id="open_view_project" model="ir.actions.act_window"> - <field name="name">Projects</field> - <field name="res_model">project.project</field> - <field name="view_type">form</field> - <field name="domain">[]</field> - <field name="view_mode">kanban,gantt</field> - <field name="view_id" ref="project.view_project_kanban"/> - <field name="search_view_id" ref="project.view_project_project_filter"/> - <field name="context">{}</field> - <field name="help" type="html"> - <p class="oe_view_nocontent_create"> - Click to start a new project. - </p> - </field> - </record> - - <menuitem name="Projects" id="portal_services_projects" parent="portal.portal_projects" - action="open_view_project" sequence="10"/> - - </data> -</openerp> diff --git a/addons/portal_project/project.py b/addons/portal_project/project.py deleted file mode 100644 index 4db8e4d1d5e..00000000000 --- a/addons/portal_project/project.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Part of Odoo. See LICENSE file for full copyright and licensing details. - -from openerp.osv import osv -from openerp.tools.translate import _ - -class portal_project(osv.Model): - """ Update of mail_mail class, to add the signin URL to notifications. """ - _inherit = 'project.project' - - def _get_visibility_selection(self, cr, uid, context=None): - """ Override to add portal option. """ - selection = super(portal_project, self)._get_visibility_selection(cr, uid, context=context) - idx = [item[0] for item in selection].index('public') - selection.insert((idx + 1), ('portal', _('Customer related project: visible through portal'))) - return selection - # return [('public', 'All Users'), - # ('portal', 'Portal Users and Employees'), - # ('employees', 'Employees Only'), - # ('followers', 'Followers Only')] diff --git a/addons/portal_project/security/ir.model.access.csv b/addons/portal_project/security/ir.model.access.csv deleted file mode 100644 index 46d8b9eb5a1..00000000000 --- a/addons/portal_project/security/ir.model.access.csv +++ /dev/null @@ -1,3 +0,0 @@ -id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink -access_account_analytic_account,account_analytic_account,analytic.model_account_analytic_account,base.group_portal,1,0,0,0 -access_account_analytic_account_public,account_analytic_account,analytic.model_account_analytic_account,base.group_public,1,0,0,0
\ No newline at end of file diff --git a/addons/portal_project/security/portal_security.xml b/addons/portal_project/security/portal_security.xml deleted file mode 100644 index b35c8be87d5..00000000000 --- a/addons/portal_project/security/portal_security.xml +++ /dev/null @@ -1,85 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<openerp> - <data noupdate="1"> - - <record model="ir.rule" id="project.project_public_members_rule"> - <field name="name">Project: employees: public, portal, employees or following</field> - <field name="domain_force">['|', - ('privacy_visibility', 'in', ['public', 'portal', 'employees']), - '&', - ('privacy_visibility', '=', 'followers'), - ('message_follower_ids', 'in', [user.partner_id.id]), - ]</field> - <field name="groups" eval="[(4, ref('base.group_user'))]"/> - </record> - - <record id="portal_project_rule" model="ir.rule"> - <field name="name">Project: portal users: public, portal or following</field> - <field name="model_id" ref="project.model_project_project"/> - <field name="domain_force">[ - '|', - '|', - ('privacy_visibility', '=', 'public'), - '&', - ('privacy_visibility', '=', 'portal'), - ('message_follower_ids', 'child_of', [user.partner_id.commercial_partner_id.id]), - '&', - ('privacy_visibility', '=', 'followers'), - ('message_follower_ids', 'in', [user.partner_id.id]) - ]</field> - <field name="groups" eval="[(4, ref('base.group_portal'))]"/> - </record> - - <record model="ir.rule" id="project_public_rule"> - <field name="name">Project: public users: public only</field> - <field name="model_id" ref="project.model_project_project"/> - <field name="domain_force">[('privacy_visibility', '=', 'public')]</field> - <field name="groups" eval="[(4, ref('base.group_public'))]"/> - </record> - - <record model="ir.rule" id="project.task_visibility_rule"> - <field name="name">Project/Task: employees: public, portal, employee or (followers and following)</field> - <field name="domain_force">[ - '|', - ('project_id.privacy_visibility', 'in', ['public', 'portal', 'employees']), - '|', - '&', - ('project_id.privacy_visibility', '=', 'followers'), - ('project_id.message_follower_ids', 'in', [user.partner_id.id]), - '|', - ('message_follower_ids', 'in', [user.partner_id.id]), - ('user_id', '=', user.id) - ]</field> - </record> - - <record id="portal_task_rule" model="ir.rule"> - <field name="name">Project/Task: portal users: public or (portal and colleagues following) or (followers and following)</field> - <field name="model_id" ref="project.model_project_task"/> - <field name="domain_force">[ - '|', - '|', - '|', - ('project_id.privacy_visibility', '=', 'public'), - '&', - ('project_id.privacy_visibility', '=', 'portal'), - ('project_id.message_follower_ids', 'child_of', [user.partner_id.commercial_partner_id.id]), - '&', - ('project_id.privacy_visibility', '=', 'followers'), - ('project_id.message_follower_ids', 'in', [user.partner_id.id]), - '&', - # on employee project can receive messages but not access the object - ('project_id.privacy_visibility', '!=', 'employees'), - ('message_follower_ids', 'in', [user.partner_id.id]) - ]</field> - <field name="groups" eval="[(4, ref('base.group_portal'))]"/> - </record> - - <record model="ir.rule" id="task_public_rule"> - <field name="name">Project/Task: public users: public only</field> - <field name="model_id" ref="project.model_project_task"/> - <field name="domain_force">[('project_id.privacy_visibility', '=', 'public')]</field> - <field name="groups" eval="[(4, ref('base.group_public'))]"/> - </record> - - </data> -</openerp> diff --git a/addons/portal_project/tests/__init__.py b/addons/portal_project/tests/__init__.py deleted file mode 100644 index dbe39d9804f..00000000000 --- a/addons/portal_project/tests/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -# -*- coding: utf-8 -*- -# Part of Odoo. See LICENSE file for full copyright and licensing details. - -from . import test_access_rights - diff --git a/addons/project/project.py b/addons/project/project.py index 67af272da85..11524251a65 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -115,9 +115,9 @@ class project(osv.osv): def _get_visibility_selection(self, cr, uid, context=None): """ Overriden in portal_project to offer more options """ - return [('public', _('Public project')), - ('employees', _('Internal project: all employees can access')), - ('followers', _('Private project: followers Only'))] + return [('portal', _('Customer Project: visible in portal if the customer is a follower')), + ('employees', _('All Employees Project: all employees can access')), + ('followers', _('Private Project: followers only'))] def attachment_tree_view(self, cr, uid, ids, context): task_ids = self.pool.get('project.task').search(cr, uid, [('project_id', 'in', ids)]) @@ -170,10 +170,7 @@ class project(osv.osv): help="The kind of document created when an email is received on this project's email alias"), 'privacy_visibility': fields.selection(_visibility_selection, 'Privacy / Visibility', required=True, help="Holds visibility of the tasks or issues that belong to the current project:\n" - "- Public: everybody sees everything; if portal is activated, portal users\n" - " see all tasks or issues; if anonymous portal is activated, visitors\n" - " see all tasks or issues\n" - "- Portal (only available if Portal is installed): employees see everything;\n" + "- Portal : employees see everything;\n" " if portal is activated, portal users see the tasks or issues followed by\n" " them or by someone of their company\n" "- Employees Only: employees see all tasks or issues\n" diff --git a/addons/project/project_demo.xml b/addons/project/project_demo.xml index 8745b970031..17e18054a04 100644 --- a/addons/project/project_demo.xml +++ b/addons/project/project_demo.xml @@ -50,15 +50,19 @@ <field name="date_start" eval="time.strftime('%Y-%m-01 10:00:00')"/> <field name="state">open</field> <field name="type">normal</field> - <field name="name">The Jackson Group's Project</field> + <field name="name">Website for Sales & WMS</field> <field name="color">3</field> - <field name="partner_id" ref="base.res_partner_10"/> + <field name="partner_id" ref="portal.partner_demo_portal"/> <field name="parent_id" ref="all_projects_account"/> - <field name="privacy_visibility">public</field> + <field name="privacy_visibility">portal</field> <field name="user_id" ref="base.user_demo"/> <field name="description">Implement new website for Sale and Warehouse Management for a customer.</field> <field name="alias_model">project.task</field> <field name="type_ids" eval="[(4, ref('project_stage_0')) ,(4,ref('project_stage_1'))]"/> + <field name="message_follower_ids" eval="[(6, 0, [ + ref('base.partner_root'), + ref('base.partner_demo'), + ref('portal.partner_demo_portal')])]"/> </record> diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 1046adb8dbb..78fee05ffc3 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -654,5 +654,9 @@ </record> <menuitem action="project_tags_action" id="menu_project_tags_act" parent="menu_project_config" groups="base.group_no_one"/> + <!-- Portal menuitems --> + <menuitem name="Projects" id="portal_services_projects" parent="portal.portal_projects" + action="open_view_project_all" sequence="10"/> + </data> </openerp> diff --git a/addons/project/security/ir.model.access.csv b/addons/project/security/ir.model.access.csv index c4b1b896152..4800eb3f998 100644 --- a/addons/project/security/ir.model.access.csv +++ b/addons/project/security/ir.model.access.csv @@ -2,7 +2,8 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink access_project_project,project.project,model_project_project,project.group_project_user,1,0,0,0 access_project_project_manager,project.project,model_project_project,project.group_project_manager,1,1,1,1 access_account_analytic_account_user,account.analytic.account,analytic.model_account_analytic_account,project.group_project_user,1,0,0,0 -access_account_analytic_account,account.analytic.account,analytic.model_account_analytic_account,project.group_project_manager,1,1,1,1 +access_account_analytic_account_manager,account.analytic.account,analytic.model_account_analytic_account,project.group_project_manager,1,1,1,1 +access_account_analytic_account_portal,account_analytic_account,analytic.model_account_analytic_account,base.group_portal,1,0,0,0 access_account_analytic_journal_project_manager,account.analytic.journal.project.manager,analytic.model_account_analytic_journal,project.group_project_manager,1,1,1,1 access_account_analytic_journal_project_user,account.analytic.journal.project.user,analytic.model_account_analytic_journal,project.group_project_user,1,1,1,0 access_project_task_type_user,project.task.type user,model_project_task_type,project.group_project_user,1,0,0,0 @@ -26,11 +27,7 @@ access_resource_calendar_leaves_user,resource.calendar.leaves user,resource.mode access_project_tags_all,project.project_tags_all,model_project_tags,,1,0,0,0 access_project_tags_manager,project.project_tags_manager,model_project_tags,project.group_project_manager,1,1,1,1 access_project_tags_portal,project_tags_portal,project.model_project_tags,base.group_portal,1,0,0,0 -access_project_tags_public,project_tags_public,project.model_project_tags,base.group_public,1,0,0,0 access_mail_alias,mail.alias,mail.model_mail_alias,project.group_project_manager,1,1,1,1 access_project_portal,project__portal,project.model_project_project,base.group_portal,1,0,0,0 access_task_portal,task_portal,project.model_project_task,base.group_portal,1,0,0,0 access_task_type_portal,task_type_portal,project.model_project_task_type,base.group_portal,1,0,0,0 -access_project_public,project_public,project.model_project_project,base.group_public,1,0,0,0 -access_task_public,task_public,project.model_project_task,base.group_public,1,0,0,0 -access_task_type_public,task_type_public,project.model_project_task_type,base.group_public,1,0,0,0
\ No newline at end of file diff --git a/addons/project/security/project_security.xml b/addons/project/security/project_security.xml index e1d8eb71b0a..b41208248ff 100644 --- a/addons/project/security/project_security.xml +++ b/addons/project/security/project_security.xml @@ -47,10 +47,10 @@ </record> <record model="ir.rule" id="project_public_members_rule"> - <field name="name">Project: employees: public, employees or followers</field> + <field name="name">Project: employees: portal, employees or followers</field> <field name="model_id" ref="model_project_project"/> <field name="domain_force">['|', - ('privacy_visibility', 'in', ['public', 'employees']), + ('privacy_visibility', 'in', ['portal', 'employees']), ('message_follower_ids', 'in', [user.partner_id.id]) ]</field> <field name="groups" eval="[(4, ref('base.group_user'))]"/> @@ -67,11 +67,11 @@ </record> <record model="ir.rule" id="task_visibility_rule"> - <field name="name">Project/Task: employees: public or employee or (followers and following)</field> + <field name="name">Project/Task: employees: portal or employee or (followers and following)</field> <field name="model_id" ref="model_project_task"/> <field name="domain_force">[ '|', - ('project_id.privacy_visibility', 'in', ['public', 'employees']), + ('project_id.privacy_visibility', 'in', ['portal', 'employees']), '|', '&', ('project_id.privacy_visibility', '=', 'followers'), @@ -91,5 +91,41 @@ <field name="groups" eval="[(4,ref('project.group_project_manager'))]"/> </record> + <!-- Portal --> + <record model="ir.rule" id="portal_project_rule"> + <field name="name">Project: portal users: portal or following</field> + <field name="model_id" ref="project.model_project_project"/> + <field name="domain_force">[ + '|', + '&', + ('privacy_visibility', '=', 'portal'), + ('message_follower_ids', 'child_of', [user.partner_id.commercial_partner_id.id]), + '&', + ('privacy_visibility', '=', 'followers'), + ('message_follower_ids', 'in', [user.partner_id.id]) + ]</field> + <field name="groups" eval="[(4, ref('base.group_portal'))]"/> + </record> + + <record model="ir.rule" id="portal_task_rule"> + <field name="name">Project/Task: portal users: (portal and colleagues following) or (followers and following)</field> + <field name="model_id" ref="project.model_project_task"/> + <field name="domain_force">[ + '|', + '|', + '&', + ('project_id.privacy_visibility', '=', 'portal'), + ('project_id.message_follower_ids', 'child_of', [user.partner_id.commercial_partner_id.id]), + '&', + ('project_id.privacy_visibility', '=', 'followers'), + ('project_id.message_follower_ids', 'in', [user.partner_id.id]), + '&', + # on employee project can receive messages but not access the object + ('project_id.privacy_visibility', '!=', 'employees'), + ('message_follower_ids', 'in', [user.partner_id.id]) + ]</field> + <field name="groups" eval="[(4, ref('base.group_portal'))]"/> + </record> + </data> </openerp> diff --git a/addons/project/tests/__init__.py b/addons/project/tests/__init__.py index 41165dc0957..b8bfa3b8521 100644 --- a/addons/project/tests/__init__.py +++ b/addons/project/tests/__init__.py @@ -1,3 +1,3 @@ # -*- coding: utf-8 -*- -from . import test_project_base, test_project_flow +from . import test_project_base, test_project_flow, test_access_rights diff --git a/addons/portal_project/tests/test_access_rights.py b/addons/project/tests/test_access_rights.py index cb8570f43b1..4519b253ac3 100644 --- a/addons/portal_project/tests/test_access_rights.py +++ b/addons/project/tests/test_access_rights.py @@ -33,53 +33,6 @@ class TestPortalProjectBase(TestProjectBase): class TestPortalProject(TestPortalProjectBase): @mute_logger('openerp.addons.base.ir.ir_model') - def test_public_project_access_rights(self): - pigs = self.project_pigs - - # Do: Alfred reads project -> ok (employee ok public) - pigs.sudo(self.user_projectuser.id).read(['state']) - # Test: all project tasks visible - tasks = self.env['project.task'].sudo(self.user_projectuser.id).search([('project_id', '=', pigs.id)]) - self.assertEqual(tasks, self.task_1 | self.task_2 | self.task_3 | self.task_4 | self.task_5 | self.task_6, - 'access rights: project user should see all tasks of public project') - # Test: all project tasks readable - tasks.read(['name']) - # Test: all project tasks writable - tasks.write({'description': 'TestDescription'}) - - # Need to check assertRaises - # Do: Bert reads project -> crash, no group - self.assertRaises(AccessError, pigs.sudo(self.user_noone).read, ['state']) - # Test: no project task visible - self.assertRaises(AccessError, self.env['project.task'].sudo(self.user_noone).search, [('project_id', '=', pigs.id)]) - # Test: no project task readable - self.assertRaises(AccessError, tasks.sudo(self.user_noone).read, ['name']) - # Test: no project task writable - self.assertRaises(AccessError, tasks.sudo(self.user_noone).write, {'description': 'TestDescription'}) - - # Do: Chell reads project -> ok (portal ok public) - pigs.sudo(self.user_portal).read(['state']) - # Test: all project tasks visible - tasks = self.env['project.task'].sudo(self.user_portal).search([('project_id', '=', pigs.id)]) - self.assertEqual(tasks, self.task_1 | self.task_2 | self.task_3 | self.task_4 | self.task_5 | self.task_6, - 'access rights: portal user should see all tasks of a public project') - # Test: all project tasks readable - tasks.read(['name']) - # Test: no project task writable - self.assertRaises(AccessError, tasks.write, {'description': 'TestDescription'}) - - # Do: Donovan reads project -> ok (public) - pigs.sudo(self.user_public).read(['state']) - # Test: all project tasks visible - tasks = self.env['project.task'].sudo(self.user_public.id).search([('project_id', '=', pigs.id)]) - self.assertEqual(tasks, self.task_1 | self.task_2 | self.task_3 | self.task_4 | self.task_5 | self.task_6, - 'access rights: public user should see all tasks of a public project') - # Test: all project tasks readable - tasks.read(['name']) - # Test: no project task writable - self.assertRaises(AccessError, tasks.write, {'description': 'TestDescription'}) - - @mute_logger('openerp.addons.base.ir.ir_model') def test_portal_project_access_rights(self): pigs = self.project_pigs pigs.write({'privacy_visibility': 'portal'}) @@ -106,9 +59,8 @@ class TestPortalProject(TestPortalProjectBase): # TODO: Change the except_orm to Warning ( Because here it's call check_access_rule # which still generate exception in except_orm.) self.assertRaises(except_orm, pigs.sudo(self.user_public).read, ['state']) - # Test: no project task visible - tasks = self.env['project.task'].sudo(self.user_public).search([('project_id', '=', pigs.id)]) - self.assertFalse(tasks, 'access rights: public user should not see tasks of a portal project') + # Test: no access right to project.task + self.assertRaises(AccessError, self.env['project.task'].sudo(self.user_public).search, []) # Data: task follower cleaning self.task_1.sudo(self.user_projectuser).message_unsubscribe_users(user_ids=[self.user_portal.id]) self.task_3.sudo(self.user_projectuser).message_unsubscribe_users(user_ids=[self.user_portal.id]) @@ -136,10 +88,6 @@ class TestPortalProject(TestPortalProjectBase): # Do: Donovan reads project -> ko (public ko employee) # TODO Change the except_orm to Warning self.assertRaises(except_orm, pigs.sudo(self.user_public).read, ['state']) - # Test: no project task visible - tasks = self.env['project.task'].sudo(self.user_public).search([('project_id', '=', pigs.id)]) - self.assertFalse(tasks.ids, 'access rights: public user should not see tasks of an employees project') - # Do: project user is employee and can create a task tmp_task = self.env['project.task'].sudo(self.user_projectuser).with_context({'mail_create_nolog': True}).create({ 'name': 'Pigs task', @@ -172,9 +120,6 @@ class TestPortalProject(TestPortalProjectBase): # Do: Donovan reads project -> ko (public ko employee) # TODO Change the except_orm to Warning self.assertRaises(except_orm, pigs.sudo(self.user_public).read, ['state']) - # Test: no project task visible - tasks = self.env['project.task'].sudo(self.user_public).search([('project_id', '=', pigs.id)]) - self.assertFalse(tasks, 'access rights: public user should not see tasks of a followers project') # Data: subscribe Alfred, Chell and Donovan as follower pigs.message_subscribe_users(user_ids=[self.user_projectuser.id, self.user_portal.id, self.user_public.id]) @@ -200,4 +145,3 @@ class TestPortalProject(TestPortalProjectBase): # Do: project user can create a task without project self.assertRaises(except_orm, self.env['project.task'].sudo(self.user_projectuser).with_context({ 'mail_create_nolog': True}).create, {'name': 'Pigs task', 'project_id': pigs.id}) - diff --git a/addons/project/tests/test_project_base.py b/addons/project/tests/test_project_base.py index dcf20aa62d5..f94f99b8b62 100644 --- a/addons/project/tests/test_project_base.py +++ b/addons/project/tests/test_project_base.py @@ -32,7 +32,7 @@ class TestProjectBase(TestMail): # Test 'Pigs' project cls.project_pigs = cls.env['project.project'].with_context({'mail_create_nolog': True}).create({ 'name': 'Pigs', - 'privacy_visibility': 'public', + 'privacy_visibility': 'portal', 'alias_name': 'project+pigs', 'partner_id': cls.partner_1.id}) # Already-existing tasks in Pigs diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py index a1ba0411659..b336299c3db 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -356,6 +356,7 @@ class project_issue(osv.Model): return res_id @api.cr_uid_ids_context + @api.returns('mail.message', lambda value: value.id) def message_post(self, cr, uid, thread_id, subtype=None, context=None, **kwargs): """ Overrides mail_thread message_post so that we can set the date of last action field when a new message is posted on the issue. diff --git a/addons/project_issue/project_issue_demo.xml b/addons/project_issue/project_issue_demo.xml index dcd6dbd212b..da65f7f9552 100644 --- a/addons/project_issue/project_issue_demo.xml +++ b/addons/project_issue/project_issue_demo.xml @@ -40,7 +40,7 @@ <field eval="time.strftime('%Y-%m-08 10:15:00')" name="date"/> <field name="priority">0</field> <field name="user_id" ref="base.user_root"/> - <field name="partner_id" ref="base.res_partner_2"/> + <field name="partner_id" ref="portal.partner_demo_portal"/> <field name="team_id" ref="sales_team.team_sales_department"/> <field eval="1" name="active"/> <field name="project_id" ref="project.project_project_1"/> diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml index 6d4c73b504a..11ef31b8508 100644 --- a/addons/project_issue/project_issue_view.xml +++ b/addons/project_issue/project_issue_view.xml @@ -336,5 +336,29 @@ </field> </record> + <!-- Portal --> + <record id="open_view_issue" model="ir.actions.act_window"> + <field name="name">Issues</field> + <field name="res_model">project.issue</field> + <field name="view_type">form</field> + <field name="view_mode">tree,form</field> + <field name="view_id" ref="project_issue.project_issue_tree_view"/> + <field name="domain" eval=""/> + <field name="context">{"search_default_user_id":'', "search_default_draft":'', "search_default_todo":'', "portal":'True'}</field> + <field name="search_view_id" ref="project_issue.view_project_issue_filter"/> + <field name="target">current</field> + <field name="help" type="html"> + <p class="oe_view_nocontent_create"> + Click to create an issue. + </p><p> + You can track your issues from this menu and the action we + will take. + </p> + </field> + </record> + + <menuitem name="Issues" id="portal_services_issues" parent="portal.portal_projects" + action="open_view_issue" sequence="10"/> + </data> </openerp> diff --git a/addons/project_issue/security/ir.model.access.csv b/addons/project_issue/security/ir.model.access.csv index d23f1b06b4d..21386d80ce7 100644 --- a/addons/project_issue/security/ir.model.access.csv +++ b/addons/project_issue/security/ir.model.access.csv @@ -6,3 +6,4 @@ access_project_issue_report_user,project.issue.report user,model_project_issue_r access_crm_team,crm.team,sales_team.model_crm_team,project.group_project_user,1,0,0,0
access_project_issue_salesman,project.issue,model_project_issue,base.group_sale_salesman,1,0,0,0
access_project_issue_manager,project.issue,model_project_issue,base.group_sale_manager,1,0,0,0
+access_project_issue_portal,project.issue,model_project_issue,base.group_portal,1,0,0,0
diff --git a/addons/project_issue/security/project_issue_security.xml b/addons/project_issue/security/project_issue_security.xml index ea7674ea794..af8924c5697 100644 --- a/addons/project_issue/security/project_issue_security.xml +++ b/addons/project_issue/security/project_issue_security.xml @@ -10,10 +10,10 @@ </record> <record model="ir.rule" id="issue_user_rule"> - <field name="name">Project/Issue: employees: public or employee or (followers and following)</field> + <field name="name">Project/Issue: employees: employee or (followers and following)</field> <field name="model_id" ref="model_project_issue"/> <field name="domain_force">['|', - ('project_id.privacy_visibility', 'in', ['public', 'employees']), + ('project_id.privacy_visibility', '=', 'employees'), '&', ('project_id.privacy_visibility', '=', 'followers'), ('message_follower_ids', 'in', [user.partner_id.id]), @@ -21,5 +21,29 @@ <field name="groups" eval="[(4,ref('base.group_user'))]"/> </record> + <record id="portal_issue_rule" model="ir.rule"> + <field name="name">Project/Issue: portal users: (portal and colleagues following) or (followers and following)</field> + <field name="model_id" ref="project_issue.model_project_issue"/> + <field name="domain_force">['|', + '&', + ('project_id.privacy_visibility', '=', 'portal'), + ('message_follower_ids', 'child_of', [user.partner_id.commercial_partner_id.id]), + '&', + ('project_id.privacy_visibility', '=', 'followers'), + ('message_follower_ids', 'in', [user.partner_id.id]), + ]</field> + <field name="groups" eval="[(4, ref('base.group_portal'))]"/> + </record> + + <record model="ir.rule" id="project_issue.issue_user_rule"> + <field name="name">Project/Issue: employees: portal, employee or (followers and following)</field> + <field name="domain_force">['|', + ('project_id.privacy_visibility', 'in', ['portal', 'employees']), + '&', + ('project_id.privacy_visibility', '=', 'followers'), + ('message_follower_ids', 'in', [user.partner_id.id]), + ]</field> + </record> + </data> </openerp> diff --git a/addons/project_issue_sheet/__openerp__.py b/addons/project_issue_sheet/__openerp__.py index 15457e66f24..8cb1db25c79 100644 --- a/addons/project_issue_sheet/__openerp__.py +++ b/addons/project_issue_sheet/__openerp__.py @@ -21,6 +21,7 @@ Worklogs can be maintained to signify number of hours spent by users to handle a 'data': [ 'project_issue_sheet_view.xml', 'security/ir.model.access.csv', + 'security/portal_security.xml', ], 'demo': [], 'installable': True, diff --git a/addons/project_issue_sheet/project_issue_sheet_view.xml b/addons/project_issue_sheet/project_issue_sheet_view.xml index e44ab507716..91eb71a5ac2 100644 --- a/addons/project_issue_sheet/project_issue_sheet_view.xml +++ b/addons/project_issue_sheet/project_issue_sheet_view.xml @@ -22,7 +22,7 @@ options="{'classes': {'template': 'default', 'draft': 'info', 'open': 'success', 'pending': 'warning', 'close': 'danger', 'cancelled': 'warning'}}" readonly="1"/> </xpath> <xpath expr="//notebook/page[@name='extra_info']" position="before"> - <page string="Timesheets"> + <page string="Timesheets" groups="[project.group_tasks_work_on_tasks,project.group_time_work_estimation_tasks]"> <field name="timesheet_ids" colspan="4" nolabel="1" context="{'default_user_id' : uid, 'default_account_id' : analytic_account_id, 'default_is_timesheet':1}" groups="base.group_user"> <tree editable="top" string="Timesheet Activities"> diff --git a/addons/project_issue_sheet/security/portal_security.xml b/addons/project_issue_sheet/security/portal_security.xml new file mode 100644 index 00000000000..eb7c7f7a660 --- /dev/null +++ b/addons/project_issue_sheet/security/portal_security.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?> +<openerp> + <data noupdate="1"> + + <record id="portal_issue_sheet_rule" model="ir.rule"> + <field name="name">Project/Issue Timesheets: frontend access</field> + <field name="model_id" ref="analytic.model_account_analytic_line"/> + <field name="domain_force">['|', + '&', + ('issue_id.project_id.privacy_visibility', '=', 'portal'), + ('issue_id.message_follower_ids', 'child_of', [user.partner_id.commercial_partner_id.id]), + '&', + ('issue_id.project_id.privacy_visibility', '=', 'followers'), + ('issue_id.message_follower_ids', 'in', [user.partner_id.id]), + ]</field> + <field name="groups" eval="[(4, ref('base.group_portal'))]"/> + </record> + </data> +</openerp> diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml index 44c77756cbb..de3b526dd8d 100644 --- a/addons/project_timesheet/project_timesheet_view.xml +++ b/addons/project_timesheet/project_timesheet_view.xml @@ -155,7 +155,7 @@ groups="project.group_time_work_estimation_tasks"/> </field> <xpath expr="//notebook/page[@name='description_page']" position="after"> - <page string="Timesheets"> + <page string="Timesheets" groups="[project.group_tasks_work_on_tasks,project.group_time_work_estimation_tasks]"> <field name="timesheet_ids" groups="project.group_tasks_work_on_tasks" context="{'default_account_id' : analytic_account_id, 'default_is_timesheet' : 1}"> <tree editable="top" string="Timesheet Activities"> <field name="date"/> diff --git a/addons/project_timesheet/security/ir.model.access.csv b/addons/project_timesheet/security/ir.model.access.csv index ffd4aa2094e..4f35784f6ef 100644 --- a/addons/project_timesheet/security/ir.model.access.csv +++ b/addons/project_timesheet/security/ir.model.access.csv @@ -1,3 +1,4 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_sale_order_manager,sale.order,sale.model_sale_order,project.group_project_manager,1,0,0,0
access_sale_order_user,sale.order,sale.model_sale_order,project.group_project_user,1,0,0,0
+access_analytic_line_portal,account.analytic.line,account.model_account_analytic_line,base.group_portal,1,0,0,0
diff --git a/addons/project_timesheet/security/project_timesheet_security.xml b/addons/project_timesheet/security/project_timesheet_security.xml index ea1f0a98b4c..dec4e6a1a5a 100644 --- a/addons/project_timesheet/security/project_timesheet_security.xml +++ b/addons/project_timesheet/security/project_timesheet_security.xml @@ -4,6 +4,20 @@ <record model="res.groups" id="base.group_user"> <field name="implied_ids" eval="[(4, ref('project.group_tasks_work_on_tasks'))]"/> </record> + + <record id="portal_task_sheet_rule" model="ir.rule"> + <field name="name">Project/Task Timesheets: portal access</field> + <field name="model_id" ref="analytic.model_account_analytic_line"/> + <field name="domain_force">['|', + '&', + ('task_id.project_id.privacy_visibility', '=', 'portal'), + ('task_id.message_follower_ids', 'child_of', [user.partner_id.commercial_partner_id.id]), + '&', + ('task_id.project_id.privacy_visibility', '=', 'followers'), + ('task_id.message_follower_ids', 'in', [user.partner_id.id]), + ]</field> + <field name="groups" eval="[(4, ref('base.group_portal'))]"/> + </record> </data> </openerp> diff --git a/addons/rating_project/data/project_data.xml b/addons/rating_project/data/project_data.xml index 4052b732451..5fa22af596f 100644 --- a/addons/rating_project/data/project_data.xml +++ b/addons/rating_project/data/project_data.xml @@ -47,10 +47,5 @@ ]]> </field> </record> - - <!-- add the email template as value for the project stage 2 --> - <record id="project.project_stage_2" model="project.task.type"> - <field name="rating_template_id" ref="rating_project_request_email_template"/> - </record> </data> </openerp> diff --git a/addons/rating_project/data/project_demo.xml b/addons/rating_project/data/project_demo.xml index bf2a8b6c38d..2155fde48e2 100644 --- a/addons/rating_project/data/project_demo.xml +++ b/addons/rating_project/data/project_demo.xml @@ -22,6 +22,11 @@ <field name="res_id" ref="project.project_task_24"/> </record> + <!-- add the email template as value for the project stage 2 --> + <record id="project.project_stage_2" model="project.task.type"> + <field name="rating_template_id" ref="rating_project_request_email_template"/> + </record> + <function model="rating.rating" name="apply_rating" eval="(10, 'project.task', ref('project.project_task_3'))"/> <function model="rating.rating" name="apply_rating" eval="(0, 'project.task', ref('project.project_task_8'))"/> <function model="rating.rating" name="apply_rating" eval="(5, 'project.task', ref('project.project_task_15'))"/> diff --git a/addons/website_project/__init__.py b/addons/website_project/__init__.py deleted file mode 100644 index d3e4f782456..00000000000 --- a/addons/website_project/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -import models -import controllers
\ No newline at end of file diff --git a/addons/website_project/__openerp__.py b/addons/website_project/__openerp__.py deleted file mode 100644 index 81d64cd8d3f..00000000000 --- a/addons/website_project/__openerp__.py +++ /dev/null @@ -1,19 +0,0 @@ - -{ - '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 deleted file mode 100644 index 8ee9bae18d9..00000000000 --- a/addons/website_project/controllers/__init__.py +++ /dev/null @@ -1 +0,0 @@ -import main diff --git a/addons/website_project/controllers/main.py b/addons/website_project/controllers/main.py deleted file mode 100644 index 245221763b3..00000000000 --- a/addons/website_project/controllers/main.py +++ /dev/null @@ -1,16 +0,0 @@ -# -*- coding: utf-8 -*- -# Part of Odoo. See LICENSE file for full copyright and licensing details. - -from openerp.addons.web import http -from openerp.addons.web.http import request - -class website_project(http.Controller): - - @http.route(['/project/<model("project.project"):project>'], type='http', auth="public", website=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/i18n/ar.po b/addons/website_project/i18n/ar.po deleted file mode 100644 index c981166d396..00000000000 --- a/addons/website_project/i18n/ar.po +++ /dev/null @@ -1,72 +0,0 @@ -# Arabic translation for openobject-addons -# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2014. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2014-08-14 13:09+0000\n" -"PO-Revision-Date: 2014-11-14 18:27+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Arabic <ar@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-11-15 07:02+0000\n" -"X-Generator: Launchpad (build 17241)\n" - -#. module: website_project -#: view:website:website_project.task_kanban_card -msgid "Assigned to" -msgstr "" - -#. module: website_project -#: view:website:website_project.task_kanban_card -msgid "Ending Date:" -msgstr "" - -#. module: website_project -#: model:ir.model,name:website_project.model_project_project -#: view:website:website_project.index -msgid "Project" -msgstr "" - -#. module: website_project -#: model:ir.model,name:website_project.model_project_task -msgid "Task" -msgstr "" - -#. module: website_project -#: field:project.project,website_meta_description:0 -#: field:project.task,website_meta_description:0 -msgid "Website meta description" -msgstr "" - -#. module: website_project -#: field:project.project,website_meta_keywords:0 -#: field:project.task,website_meta_keywords:0 -msgid "Website meta keywords" -msgstr "" - -#. module: website_project -#: field:project.project,website_meta_title:0 -#: field:project.task,website_meta_title:0 -msgid "Website meta title" -msgstr "" - -#. module: website_project -#: view:website:website_project.index -msgid "project.task" -msgstr "" - -#. module: website_project -#: view:website:website_project.index -msgid "stage_id" -msgstr "" - -#. module: website_project -#: view:website:website_project.index -msgid "website_project.task_kanban_card" -msgstr "" diff --git a/addons/website_project/i18n/cs.po b/addons/website_project/i18n/cs.po deleted file mode 100644 index 8d3b007aeaf..00000000000 --- a/addons/website_project/i18n/cs.po +++ /dev/null @@ -1,72 +0,0 @@ -# Czech translation for openobject-addons -# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2014. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2014-08-14 13:09+0000\n" -"PO-Revision-Date: 2014-11-18 12:55+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Czech <cs@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-11-19 06:45+0000\n" -"X-Generator: Launchpad (build 17252)\n" - -#. module: website_project -#: view:website:website_project.task_kanban_card -msgid "Assigned to" -msgstr "" - -#. module: website_project -#: view:website:website_project.task_kanban_card -msgid "Ending Date:" -msgstr "" - -#. module: website_project -#: model:ir.model,name:website_project.model_project_project -#: view:website:website_project.index -msgid "Project" -msgstr "" - -#. module: website_project -#: model:ir.model,name:website_project.model_project_task -msgid "Task" -msgstr "" - -#. module: website_project -#: field:project.project,website_meta_description:0 -#: field:project.task,website_meta_description:0 -msgid "Website meta description" -msgstr "" - -#. module: website_project -#: field:project.project,website_meta_keywords:0 -#: field:project.task,website_meta_keywords:0 -msgid "Website meta keywords" -msgstr "" - -#. module: website_project -#: field:project.project,website_meta_title:0 -#: field:project.task,website_meta_title:0 -msgid "Website meta title" -msgstr "" - -#. module: website_project -#: view:website:website_project.index -msgid "project.task" -msgstr "" - -#. module: website_project -#: view:website:website_project.index -msgid "stage_id" -msgstr "" - -#. module: website_project -#: view:website:website_project.index -msgid "website_project.task_kanban_card" -msgstr "" diff --git a/addons/website_project/i18n/de.po b/addons/website_project/i18n/de.po deleted file mode 100644 index 3ab344df6d0..00000000000 --- a/addons/website_project/i18n/de.po +++ /dev/null @@ -1,73 +0,0 @@ -# German translation for openobject-addons -# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2014. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2014-08-14 13:09+0000\n" -"PO-Revision-Date: 2014-09-18 06:21+0000\n" -"Last-Translator: Thorsten Vocks (OpenBig.org) <thorsten.vocks@big-" -"consulting.net>\n" -"Language-Team: German <de@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-09-19 08:22+0000\n" -"X-Generator: Launchpad (build 17196)\n" - -#. module: website_project -#: view:website:website_project.task_kanban_card -msgid "Assigned to" -msgstr "Zugewiesen an" - -#. module: website_project -#: view:website:website_project.task_kanban_card -msgid "Ending Date:" -msgstr "Ende am:" - -#. module: website_project -#: model:ir.model,name:website_project.model_project_project -#: view:website:website_project.index -msgid "Project" -msgstr "Projekt" - -#. module: website_project -#: model:ir.model,name:website_project.model_project_task -msgid "Task" -msgstr "Aufgabe" - -#. module: website_project -#: field:project.project,website_meta_description:0 -#: field:project.task,website_meta_description:0 -msgid "Website meta description" -msgstr "Webseite Metabeschreibung" - -#. module: website_project -#: field:project.project,website_meta_keywords:0 -#: field:project.task,website_meta_keywords:0 -msgid "Website meta keywords" -msgstr "Webseite Metasuchbegriffe" - -#. module: website_project -#: field:project.project,website_meta_title:0 -#: field:project.task,website_meta_title:0 -msgid "Website meta title" -msgstr "Webseite Metaüberschrift" - -#. module: website_project -#: view:website:website_project.index -msgid "project.task" -msgstr "" - -#. module: website_project -#: view:website:website_project.index -msgid "stage_id" -msgstr "" - -#. module: website_project -#: view:website:website_project.index -msgid "website_project.task_kanban_card" -msgstr "" diff --git a/addons/website_project/i18n/es.po b/addons/website_project/i18n/es.po deleted file mode 100644 index 7f35843caa1..00000000000 --- a/addons/website_project/i18n/es.po +++ /dev/null @@ -1,72 +0,0 @@ -# Spanish translation for openobject-addons -# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2014. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2014-08-14 13:09+0000\n" -"PO-Revision-Date: 2014-08-18 20:49+0000\n" -"Last-Translator: Pedro Manuel Baeza <pedro.baeza@gmail.com>\n" -"Language-Team: Spanish <es@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-08-19 07:06+0000\n" -"X-Generator: Launchpad (build 17156)\n" - -#. module: website_project -#: view:website:website_project.task_kanban_card -msgid "Assigned to" -msgstr "Asignado a" - -#. module: website_project -#: view:website:website_project.task_kanban_card -msgid "Ending Date:" -msgstr "Fecha de finalización:" - -#. module: website_project -#: model:ir.model,name:website_project.model_project_project -#: view:website:website_project.index -msgid "Project" -msgstr "Proyecto" - -#. module: website_project -#: model:ir.model,name:website_project.model_project_task -msgid "Task" -msgstr "Tarea" - -#. module: website_project -#: field:project.project,website_meta_description:0 -#: field:project.task,website_meta_description:0 -msgid "Website meta description" -msgstr "Meta descripción del sitio web" - -#. module: website_project -#: field:project.project,website_meta_keywords:0 -#: field:project.task,website_meta_keywords:0 -msgid "Website meta keywords" -msgstr "Meta palabras clave del sitio web" - -#. module: website_project -#: field:project.project,website_meta_title:0 -#: field:project.task,website_meta_title:0 -msgid "Website meta title" -msgstr "Meta título del sitio web" - -#. module: website_project -#: view:website:website_project.index -msgid "project.task" -msgstr "project.task" - -#. module: website_project -#: view:website:website_project.index -msgid "stage_id" -msgstr "stage_id" - -#. module: website_project -#: view:website:website_project.index -msgid "website_project.task_kanban_card" -msgstr "website_project.task_kanban_card" diff --git a/addons/website_project/i18n/it.po b/addons/website_project/i18n/it.po deleted file mode 100644 index 45c4545202b..00000000000 --- a/addons/website_project/i18n/it.po +++ /dev/null @@ -1,72 +0,0 @@ -# Italian translation for openobject-addons -# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2014. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2014-08-14 13:09+0000\n" -"PO-Revision-Date: 2014-09-22 14:58+0000\n" -"Last-Translator: Simone Bernini <simone@aperturelabs.it>\n" -"Language-Team: Italian <it@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-09-23 07:27+0000\n" -"X-Generator: Launchpad (build 17196)\n" - -#. module: website_project -#: view:website:website_project.task_kanban_card -msgid "Assigned to" -msgstr "Assegnato a" - -#. module: website_project -#: view:website:website_project.task_kanban_card -msgid "Ending Date:" -msgstr "" - -#. module: website_project -#: model:ir.model,name:website_project.model_project_project -#: view:website:website_project.index -msgid "Project" -msgstr "Progetto" - -#. module: website_project -#: model:ir.model,name:website_project.model_project_task -msgid "Task" -msgstr "Attività" - -#. module: website_project -#: field:project.project,website_meta_description:0 -#: field:project.task,website_meta_description:0 -msgid "Website meta description" -msgstr "" - -#. module: website_project -#: field:project.project,website_meta_keywords:0 -#: field:project.task,website_meta_keywords:0 -msgid "Website meta keywords" -msgstr "" - -#. module: website_project -#: field:project.project,website_meta_title:0 -#: field:project.task,website_meta_title:0 -msgid "Website meta title" -msgstr "" - -#. module: website_project -#: view:website:website_project.index -msgid "project.task" -msgstr "project.task" - -#. module: website_project -#: view:website:website_project.index -msgid "stage_id" -msgstr "stage_id" - -#. module: website_project -#: view:website:website_project.index -msgid "website_project.task_kanban_card" -msgstr "website_project.task_kanban_card" diff --git a/addons/website_project/i18n/mk.po b/addons/website_project/i18n/mk.po deleted file mode 100644 index 1c761f7964a..00000000000 --- a/addons/website_project/i18n/mk.po +++ /dev/null @@ -1,72 +0,0 @@ -# Macedonian translation for openobject-addons -# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2014. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2014-08-14 13:09+0000\n" -"PO-Revision-Date: 2014-10-22 09:44+0000\n" -"Last-Translator: Tome Barbov <tome.barbov@eskon.com.mk>\n" -"Language-Team: Macedonian <mk@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-10-23 07:53+0000\n" -"X-Generator: Launchpad (build 17203)\n" - -#. module: website_project -#: view:website:website_project.task_kanban_card -msgid "Assigned to" -msgstr "Доделено на" - -#. module: website_project -#: view:website:website_project.task_kanban_card -msgid "Ending Date:" -msgstr "Завршен датум:" - -#. module: website_project -#: model:ir.model,name:website_project.model_project_project -#: view:website:website_project.index -msgid "Project" -msgstr "Проект" - -#. module: website_project -#: model:ir.model,name:website_project.model_project_task -msgid "Task" -msgstr "Задача" - -#. module: website_project -#: field:project.project,website_meta_description:0 -#: field:project.task,website_meta_description:0 -msgid "Website meta description" -msgstr "" - -#. module: website_project -#: field:project.project,website_meta_keywords:0 -#: field:project.task,website_meta_keywords:0 -msgid "Website meta keywords" -msgstr "" - -#. module: website_project -#: field:project.project,website_meta_title:0 -#: field:project.task,website_meta_title:0 -msgid "Website meta title" -msgstr "" - -#. module: website_project -#: view:website:website_project.index -msgid "project.task" -msgstr "project.task" - -#. module: website_project -#: view:website:website_project.index -msgid "stage_id" -msgstr "stage_id" - -#. module: website_project -#: view:website:website_project.index -msgid "website_project.task_kanban_card" -msgstr "website_project.task_kanban_card" diff --git a/addons/website_project/i18n/nl.po b/addons/website_project/i18n/nl.po deleted file mode 100644 index 9636f0e0f06..00000000000 --- a/addons/website_project/i18n/nl.po +++ /dev/null @@ -1,72 +0,0 @@ -# Dutch translation for openobject-addons -# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2014. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2014-08-14 13:09+0000\n" -"PO-Revision-Date: 2014-08-21 18:13+0000\n" -"Last-Translator: Yenthe - Bapps.be <yenthespam@gmail.com>\n" -"Language-Team: Dutch <nl@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-08-22 08:25+0000\n" -"X-Generator: Launchpad (build 17163)\n" - -#. module: website_project -#: view:website:website_project.task_kanban_card -msgid "Assigned to" -msgstr "Toegewezen aan" - -#. module: website_project -#: view:website:website_project.task_kanban_card -msgid "Ending Date:" -msgstr "Einddatum:" - -#. module: website_project -#: model:ir.model,name:website_project.model_project_project -#: view:website:website_project.index -msgid "Project" -msgstr "Project" - -#. module: website_project -#: model:ir.model,name:website_project.model_project_task -msgid "Task" -msgstr "Taak" - -#. module: website_project -#: field:project.project,website_meta_description:0 -#: field:project.task,website_meta_description:0 -msgid "Website meta description" -msgstr "Website meta omschrijving" - -#. module: website_project -#: field:project.project,website_meta_keywords:0 -#: field:project.task,website_meta_keywords:0 -msgid "Website meta keywords" -msgstr "Website meta trefwoorden" - -#. module: website_project -#: field:project.project,website_meta_title:0 -#: field:project.task,website_meta_title:0 -msgid "Website meta title" -msgstr "Website meta titel" - -#. module: website_project -#: view:website:website_project.index -msgid "project.task" -msgstr "project.task" - -#. module: website_project -#: view:website:website_project.index -msgid "stage_id" -msgstr "stage_id" - -#. module: website_project -#: view:website:website_project.index -msgid "website_project.task_kanban_card" -msgstr "website_project.task_kanban_card" diff --git a/addons/website_project/i18n/pl.po b/addons/website_project/i18n/pl.po deleted file mode 100644 index 9fadc260be4..00000000000 --- a/addons/website_project/i18n/pl.po +++ /dev/null @@ -1,73 +0,0 @@ -# Polish translation for openobject-addons -# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2014. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2014-08-14 13:09+0000\n" -"PO-Revision-Date: 2014-08-25 13:49+0000\n" -"Last-Translator: Monika Grzelak (OpenGLOBE.pl) " -"<monika.grzelak@openglobe.pl>\n" -"Language-Team: Polish <pl@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-08-26 08:42+0000\n" -"X-Generator: Launchpad (build 17163)\n" - -#. module: website_project -#: view:website:website_project.task_kanban_card -msgid "Assigned to" -msgstr "Przypisane do" - -#. module: website_project -#: view:website:website_project.task_kanban_card -msgid "Ending Date:" -msgstr "Data zakończenia:" - -#. module: website_project -#: model:ir.model,name:website_project.model_project_project -#: view:website:website_project.index -msgid "Project" -msgstr "Projekt" - -#. module: website_project -#: model:ir.model,name:website_project.model_project_task -msgid "Task" -msgstr "Zadanie" - -#. module: website_project -#: field:project.project,website_meta_description:0 -#: field:project.task,website_meta_description:0 -msgid "Website meta description" -msgstr "Opis strony - meta" - -#. module: website_project -#: field:project.project,website_meta_keywords:0 -#: field:project.task,website_meta_keywords:0 -msgid "Website meta keywords" -msgstr "Słowa kluczowe dla strony - meta" - -#. module: website_project -#: field:project.project,website_meta_title:0 -#: field:project.task,website_meta_title:0 -msgid "Website meta title" -msgstr "Tytuł strony - meta" - -#. module: website_project -#: view:website:website_project.index -msgid "project.task" -msgstr "" - -#. module: website_project -#: view:website:website_project.index -msgid "stage_id" -msgstr "" - -#. module: website_project -#: view:website:website_project.index -msgid "website_project.task_kanban_card" -msgstr "" diff --git a/addons/website_project/i18n/pt.po b/addons/website_project/i18n/pt.po deleted file mode 100644 index ae951a2596c..00000000000 --- a/addons/website_project/i18n/pt.po +++ /dev/null @@ -1,72 +0,0 @@ -# Portuguese translation for openobject-addons -# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2014. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2014-08-14 13:09+0000\n" -"PO-Revision-Date: 2014-08-19 22:52+0000\n" -"Last-Translator: Opencloud - PT <Unknown>\n" -"Language-Team: Portuguese <pt@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-08-20 06:28+0000\n" -"X-Generator: Launchpad (build 17163)\n" - -#. module: website_project -#: view:website:website_project.task_kanban_card -msgid "Assigned to" -msgstr "Atribuído a" - -#. module: website_project -#: view:website:website_project.task_kanban_card -msgid "Ending Date:" -msgstr "Data final:" - -#. module: website_project -#: model:ir.model,name:website_project.model_project_project -#: view:website:website_project.index -msgid "Project" -msgstr "Projeto" - -#. module: website_project -#: model:ir.model,name:website_project.model_project_task -msgid "Task" -msgstr "Tarefa" - -#. module: website_project -#: field:project.project,website_meta_description:0 -#: field:project.task,website_meta_description:0 -msgid "Website meta description" -msgstr "Website Meta Descrição" - -#. module: website_project -#: field:project.project,website_meta_keywords:0 -#: field:project.task,website_meta_keywords:0 -msgid "Website meta keywords" -msgstr "Website meta keywords" - -#. module: website_project -#: field:project.project,website_meta_title:0 -#: field:project.task,website_meta_title:0 -msgid "Website meta title" -msgstr "Website meta title" - -#. module: website_project -#: view:website:website_project.index -msgid "project.task" -msgstr "project.task" - -#. module: website_project -#: view:website:website_project.index -msgid "stage_id" -msgstr "stage_id" - -#. module: website_project -#: view:website:website_project.index -msgid "website_project.task_kanban_card" -msgstr "website_project.task_kanban_card" diff --git a/addons/website_project/i18n/pt_BR.po b/addons/website_project/i18n/pt_BR.po deleted file mode 100644 index b923ed370ea..00000000000 --- a/addons/website_project/i18n/pt_BR.po +++ /dev/null @@ -1,72 +0,0 @@ -# Brazilian Portuguese translation for openobject-addons -# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2014. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2014-08-14 13:09+0000\n" -"PO-Revision-Date: 2014-09-17 11:16+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-09-19 08:22+0000\n" -"X-Generator: Launchpad (build 17196)\n" - -#. module: website_project -#: view:website:website_project.task_kanban_card -msgid "Assigned to" -msgstr "" - -#. module: website_project -#: view:website:website_project.task_kanban_card -msgid "Ending Date:" -msgstr "" - -#. module: website_project -#: model:ir.model,name:website_project.model_project_project -#: view:website:website_project.index -msgid "Project" -msgstr "" - -#. module: website_project -#: model:ir.model,name:website_project.model_project_task -msgid "Task" -msgstr "" - -#. module: website_project -#: field:project.project,website_meta_description:0 -#: field:project.task,website_meta_description:0 -msgid "Website meta description" -msgstr "" - -#. module: website_project -#: field:project.project,website_meta_keywords:0 -#: field:project.task,website_meta_keywords:0 -msgid "Website meta keywords" -msgstr "" - -#. module: website_project -#: field:project.project,website_meta_title:0 -#: field:project.task,website_meta_title:0 -msgid "Website meta title" -msgstr "" - -#. module: website_project -#: view:website:website_project.index -msgid "project.task" -msgstr "" - -#. module: website_project -#: view:website:website_project.index -msgid "stage_id" -msgstr "" - -#. module: website_project -#: view:website:website_project.index -msgid "website_project.task_kanban_card" -msgstr "" diff --git a/addons/website_project/i18n/tr.po b/addons/website_project/i18n/tr.po deleted file mode 100644 index da11d451ee1..00000000000 --- a/addons/website_project/i18n/tr.po +++ /dev/null @@ -1,72 +0,0 @@ -# Turkish translation for openobject-addons -# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2014. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2014-08-14 13:09+0000\n" -"PO-Revision-Date: 2014-10-10 12:32+0000\n" -"Last-Translator: Ediz Duman <neps1192@gmail.com>\n" -"Language-Team: Turkish <tr@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-10-11 05:17+0000\n" -"X-Generator: Launchpad (build 17196)\n" - -#. module: website_project -#: view:website:website_project.task_kanban_card -msgid "Assigned to" -msgstr "Atanan" - -#. module: website_project -#: view:website:website_project.task_kanban_card -msgid "Ending Date:" -msgstr "Bitiş Tarihi:" - -#. module: website_project -#: model:ir.model,name:website_project.model_project_project -#: view:website:website_project.index -msgid "Project" -msgstr "Proje" - -#. module: website_project -#: model:ir.model,name:website_project.model_project_task -msgid "Task" -msgstr "Görev" - -#. module: website_project -#: field:project.project,website_meta_description:0 -#: field:project.task,website_meta_description:0 -msgid "Website meta description" -msgstr "Websitesi meta açıklaması" - -#. module: website_project -#: field:project.project,website_meta_keywords:0 -#: field:project.task,website_meta_keywords:0 -msgid "Website meta keywords" -msgstr "Websitesi meta anahtar kelimeler" - -#. module: website_project -#: field:project.project,website_meta_title:0 -#: field:project.task,website_meta_title:0 -msgid "Website meta title" -msgstr "Websitesi meta başlık" - -#. module: website_project -#: view:website:website_project.index -msgid "project.task" -msgstr "project.task" - -#. module: website_project -#: view:website:website_project.index -msgid "stage_id" -msgstr "stage_id" - -#. module: website_project -#: view:website:website_project.index -msgid "website_project.task_kanban_card" -msgstr "website_project.task_kanban_card" diff --git a/addons/website_project/i18n/website_project.pot b/addons/website_project/i18n/website_project.pot deleted file mode 100644 index bd9b3ff3b68..00000000000 --- a/addons/website_project/i18n/website_project.pot +++ /dev/null @@ -1,71 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * website_project -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 8.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-01-21 14:09+0000\n" -"PO-Revision-Date: 2015-01-21 14:09+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: website_project -#: view:website:website_project.task_kanban_card -msgid "Assigned to" -msgstr "" - -#. module: website_project -#: view:website:website_project.task_kanban_card -msgid "Ending Date:" -msgstr "" - -#. module: website_project -#: model:ir.model,name:website_project.model_project_project -#: view:website:website_project.index -msgid "Project" -msgstr "" - -#. module: website_project -#: model:ir.model,name:website_project.model_project_task -msgid "Task" -msgstr "" - -#. module: website_project -#: field:project.project,website_meta_description:0 -#: field:project.task,website_meta_description:0 -msgid "Website meta description" -msgstr "" - -#. module: website_project -#: field:project.project,website_meta_keywords:0 -#: field:project.task,website_meta_keywords:0 -msgid "Website meta keywords" -msgstr "" - -#. module: website_project -#: field:project.project,website_meta_title:0 -#: field:project.task,website_meta_title:0 -msgid "Website meta title" -msgstr "" - -#. module: website_project -#: view:website:website_project.index -msgid "project.task" -msgstr "" - -#. module: website_project -#: view:website:website_project.index -msgid "stage_id" -msgstr "" - -#. module: website_project -#: view:website:website_project.index -msgid "website_project.task_kanban_card" -msgstr "" - diff --git a/addons/website_project/models/__init__.py b/addons/website_project/models/__init__.py deleted file mode 100644 index bf67277dc77..00000000000 --- a/addons/website_project/models/__init__.py +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index 30dc36afcb4..00000000000 --- a/addons/website_project/models/website_project.py +++ /dev/null @@ -1,9 +0,0 @@ -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 deleted file mode 100644 index 03c987381ba..00000000000 --- a/addons/website_project/views/website_project.xml +++ /dev/null @@ -1,45 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<openerp> -<data> - -<!-- Project --> -<template id="task_kanban_card" name="TaskKanban"> - <div class="thumbnail"> - <a t-attf-href="/web#model=project.task&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" translation="off">project.task</t> - <t t-set="domain" t-value="[('project_id', '=', project.id)]"/> - <t t-set="column" translation="off">stage_id</t> - <t t-set="template" translation="off">website_project.task_kanban_card</t> - <t t-set="step" translation="off">10</t> - <t t-set="scope" translation="off">3</t> - </t> - </div> - <div class="oe_structure"/> - </div> - </t> -</template> - -</data> -</openerp> diff --git a/addons/website_project_issue/__init__.py b/addons/website_project_issue/__init__.py index 67dee8c60db..bf7fb7b45c1 100644 --- a/addons/website_project_issue/__init__.py +++ b/addons/website_project_issue/__init__.py @@ -1,2 +1,4 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. + +import controllers diff --git a/addons/website_project_issue/__openerp__.py b/addons/website_project_issue/__openerp__.py index fb519ace6da..2396217c6e5 100644 --- a/addons/website_project_issue/__openerp__.py +++ b/addons/website_project_issue/__openerp__.py @@ -8,17 +8,15 @@ 'category': 'Tools', 'complexity': 'easy', 'description': """ -This module adds issue menu and features to your portal if project_issue and portal are installed. +This module adds project issues inside your account's page on website if project_issue and website_portal are installed. ================================================================================================== """, 'author': 'OpenERP SA', - 'depends': ['project_issue','portal', 'website'], + 'depends': ['project_issue', 'website_portal'], 'data': [ 'security/portal_security.xml', 'security/ir.model.access.csv', - 'portal_project_issue_view.xml', - 'website_project_issue_view.xml', - 'views/portal_project_issue.xml', + 'views/project_issue_templates.xml', ], 'installable': True, 'auto_install': True, diff --git a/addons/portal_project/__init__.py b/addons/website_project_issue/controllers/__init__.py index f08438b04dc..f48716d3a69 100644 --- a/addons/portal_project/__init__.py +++ b/addons/website_project_issue/controllers/__init__.py @@ -1,4 +1,4 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. -import project +import main diff --git a/addons/website_project_issue/controllers/main.py b/addons/website_project_issue/controllers/main.py new file mode 100644 index 00000000000..da0496baf91 --- /dev/null +++ b/addons/website_project_issue/controllers/main.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. +from openerp import http +from openerp.addons.website_portal.controllers.main import website_account +from openerp.http import request + + +class WebsiteAccount(website_account): + @http.route(['/my', '/my/home'], type='http', auth="user", website=True) + def account(self): + response = super(WebsiteAccount, self).account() + user = request.env.user + # portal projects where you or someone from your company are a follower + project_issues = request.env['project.issue'].search([ + '&', + ('project_id.privacy_visibility', '=', 'portal'), + '|', + ('message_follower_ids', 'child_of', [user.partner_id.commercial_partner_id.id]), + ('message_follower_ids', 'child_of', [user.partner_id.id]) + ]) + response.qcontext.update({'issues': project_issues}) + return response + + +class WebsiteProjectIssue(http.Controller): + @http.route(['/my/issues/<int:issue_id>'], type='http', auth="user", website=True) + def issues_followup(self, issue_id=None): + issue = request.env['project.issue'].browse(issue_id) + return request.website.render("website_project_issue.issues_followup", {'issue': issue}) diff --git a/addons/website_project_issue/portal_project_issue_view.xml b/addons/website_project_issue/portal_project_issue_view.xml deleted file mode 100644 index b461c09c070..00000000000 --- a/addons/website_project_issue/portal_project_issue_view.xml +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<openerp> - <data> - - <record id="open_view_issue" model="ir.actions.act_window"> - <field name="name">Issues</field> - <field name="res_model">project.issue</field> - <field name="view_type">form</field> - <field name="view_mode">tree,form</field> - <field name="view_id" ref="project_issue.project_issue_tree_view"/> - <field name="domain" eval=""/> - <field name="context">{"search_default_user_id":'', "search_default_draft":'', "search_default_todo":'', "portal":'True'}</field> - <field name="search_view_id" ref="project_issue.view_project_issue_filter"/> - <field name="target">current</field> - <field name="help" type="html"> - <p class="oe_view_nocontent_create"> - Click to create an issue. - </p><p> - You can track your issues from this menu and the action we - will take. - </p> - </field> - </record> - - <menuitem name="Issues" id="portal_services_issues" parent="portal.portal_projects" - action="open_view_issue" sequence="10"/> - - </data> -</openerp> diff --git a/addons/website_project_issue/security/ir.model.access.csv b/addons/website_project_issue/security/ir.model.access.csv index 60d7d34e348..e55c4c4a1cf 100644 --- a/addons/website_project_issue/security/ir.model.access.csv +++ b/addons/website_project_issue/security/ir.model.access.csv @@ -1,4 +1,3 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink access_issues,project_issue,project_issue.model_project_issue,base.group_portal,1,0,0,0 access_case_section,crm_team,sales_team.model_crm_team,base.group_portal,1,0,0,0 -access_issues_public,project_issue,project_issue.model_project_issue,base.group_public,1,0,0,0
\ No newline at end of file diff --git a/addons/website_project_issue/security/portal_security.xml b/addons/website_project_issue/security/portal_security.xml index c41b26afe71..d4ca27624f8 100644 --- a/addons/website_project_issue/security/portal_security.xml +++ b/addons/website_project_issue/security/portal_security.xml @@ -3,10 +3,9 @@ <data noupdate="1"> <record id="portal_issue_rule" model="ir.rule"> - <field name="name">Project/Issue: portal users: public or (portal and colleagues following) or (followers and following)</field> + <field name="name">Project/Issue: portal users: (portal and colleagues following) or (followers and following)</field> <field name="model_id" ref="project_issue.model_project_issue"/> - <field name="domain_force">['|', '|', - ('project_id.privacy_visibility', 'in', ['public']), + <field name="domain_force">['|', '&', ('project_id.privacy_visibility', '=', 'portal'), ('message_follower_ids', 'child_of', [user.partner_id.commercial_partner_id.id]), @@ -18,21 +17,13 @@ </record> <record model="ir.rule" id="project_issue.issue_user_rule"> - <field name="name">Project/Issue: employees: public, portal, employee or (followers and following)</field> + <field name="name">Project/Issue: employees: portal, employee or (followers and following)</field> <field name="domain_force">['|', - ('project_id.privacy_visibility', 'in', ['public', 'portal', 'employees']), + ('project_id.privacy_visibility', 'in', ['portal', 'employees']), '&', ('project_id.privacy_visibility', '=', 'followers'), ('message_follower_ids', 'in', [user.partner_id.id]), ]</field> </record> - - <record model="ir.rule" id="issue_public_rule"> - <field name="name">Project/Issue: public users: public only</field> - <field name="model_id" ref="project_issue.model_project_issue"/> - <field name="domain_force">[('project_id.privacy_visibility', '=', 'public')]</field> - <field name="groups" eval="[(4, ref('base.group_public'))]"/> - </record> - </data> </openerp> diff --git a/addons/website_project_issue/static/src/css/portal_project_issue.css b/addons/website_project_issue/static/src/css/portal_project_issue.css deleted file mode 100644 index 983b7d6804f..00000000000 --- a/addons/website_project_issue/static/src/css/portal_project_issue.css +++ /dev/null @@ -1,30 +0,0 @@ -.oe_portal_project_issue { - margin: 0 auto; -} - -.oe_portal_project_issue .oe_kanban_groups { - width: 100%; -} - -.oe_portal_project_issue .oe_fold_column.oe_kanban_record { - float: none; - display: block; - border-width: 1px; - border-radius: 4px; - border-style: solid; - border-bottom-color: #B9B9B9; - border-left-color: #D8D8D8; - border-right-color: #D8D8D8; - border-top-color: #D8D8D8; - margin-bottom: 5px; -} - -.oe_portal_project_issue .oe_fold_column.oe_kanban_record .oe_kanban_content { - padding: 5px; -} - -.oe_portal_project_issue .oe_fold_column.oe_kanban_record h1 { - margin: 0; - font-size: 1.1em; - font-weight: bold; -} diff --git a/addons/website_project_issue/tests/test_access_rights.py b/addons/website_project_issue/tests/test_access_rights.py index c0d7d6ba88b..afa986aa08d 100644 --- a/addons/website_project_issue/tests/test_access_rights.py +++ b/addons/website_project_issue/tests/test_access_rights.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- -from openerp.addons.portal_project.tests.test_access_rights import TestPortalProjectBase +from openerp.addons.project.tests.test_access_rights import TestPortalProjectBase from openerp.exceptions import AccessError from openerp.tools import mute_logger @@ -33,52 +33,14 @@ class TestPortalIssue(TestPortalProjectBase): Issue = self.env['project.issue'] # ---------------------------------------- - # CASE1: public project - # ---------------------------------------- - - # Do: Alfred reads project -> ok (employee ok public) - # Test: all project issues visible - issues = Issue.sudo(self.user_projectuser.id).search([('project_id', '=', pigs_id)]) - test_issue_ids = set([self.issue_1.id, self.issue_2.id, self.issue_3.id, self.issue_4.id, self.issue_5.id, self.issue_6.id]) - self.assertEqual(set(issues.ids), test_issue_ids, - 'access rights: project user cannot see all issues of a public project') - # Test: all project issues readable - issues.read(['name']) - # Test: all project issues writable - issues.sudo(self.user_projectuser.id).write({'description': 'TestDescription'}) - - # Do: Bert reads project -> crash, no group - # Test: no project issue visible - self.assertRaises(AccessError, Issue.sudo(self.user_noone.id).search, [('project_id', '=', pigs_id)]) - # Test: no project issue readable - self.assertRaises(AccessError, issues.sudo(self.user_noone.id).read, ['name']) - # Test: no project issue writable - self.assertRaises(AccessError, issues.sudo(self.user_noone.id).write, {'description': 'TestDescription'}) - - # Do: Chell reads project -> ok (portal ok public) - # Test: all project issues visible - issues = Issue.sudo(self.user_portal.id).search([('project_id', '=', pigs_id)]) - self.assertEqual(set(issues.ids), test_issue_ids, - 'access rights: project user cannot see all issues of a public project') - # Test: all project issues readable - issues.sudo(self.user_portal.id).read(['name']) - # Test: no project issue writable - self.assertRaises(AccessError, issues.sudo(self.user_portal.id).write, {'description': 'TestDescription'}) - - # Do: Donovan reads project -> ok (public ok public) - # Test: all project issues visible - issues = Issue.sudo(self.user_public.id).search([('project_id', '=', pigs_id)]) - self.assertEqual(set(issues.ids), test_issue_ids, - 'access rights: project user cannot see all issues of a public project') - - # ---------------------------------------- - # CASE2: portal project + # CASE1: portal project # ---------------------------------------- self.project_pigs.write({'privacy_visibility': 'portal'}) # Do: Alfred reads project -> ok (employee ok public) # Test: all project issues visible issues = Issue.sudo(self.user_projectuser.id).search([('project_id', '=', pigs_id)]) + test_issue_ids = set([self.issue_1.id, self.issue_2.id, self.issue_3.id, self.issue_4.id, self.issue_5.id, self.issue_6.id]) self.assertEqual(set(issues.ids), test_issue_ids, 'access rights: project user cannot see all issues of a portal project') @@ -101,7 +63,7 @@ class TestPortalIssue(TestPortalProjectBase): self.issue_3.sudo(self.user_projectuser.id).message_unsubscribe_users(user_ids=[self.user_portal.id]) # ---------------------------------------- - # CASE3: employee project + # CASE2: employee project # ---------------------------------------- self.project_pigs.write({'privacy_visibility': 'employees'}) @@ -118,7 +80,7 @@ class TestPortalIssue(TestPortalProjectBase): self.assertFalse(issues.ids, 'access rights: portal user should not see issues of an employees project, even if assigned') # ---------------------------------------- - # CASE4: followers project + # CASE3: followers project # ---------------------------------------- self.project_pigs.write({'privacy_visibility': 'followers'}) diff --git a/addons/website_project_issue/views/portal_project_issue.xml b/addons/website_project_issue/views/portal_project_issue.xml deleted file mode 100644 index 3b470cc253b..00000000000 --- a/addons/website_project_issue/views/portal_project_issue.xml +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<openerp> - <data> - <template id="assets_backend" name="portal_project_issue assets" inherit_id="web.assets_backend"> - <xpath expr="." position="inside"> - <link rel="stylesheet" href="/website_project_issue/static/src/css/portal_project_issue.css"/> - </xpath> - </template> - </data> -</openerp> diff --git a/addons/website_project_issue/views/project_issue_templates.xml b/addons/website_project_issue/views/project_issue_templates.xml new file mode 100644 index 00000000000..67729ac99e3 --- /dev/null +++ b/addons/website_project_issue/views/project_issue_templates.xml @@ -0,0 +1,97 @@ +<?xml version="1.0" encoding="utf-8"?> +<odoo> + <template id="portal_project_issue" name="Portal Project Issues" inherit_id="website_portal.account"> + <xpath expr="//div[contains(@class,'o_my_documents')]/*[last()]" position="after"> + <h3 class="page-header">Your Issues</h3> + <t t-if="not issues"> + <p>There are currently no issues for your account.</p> + </t> + <t t-if="issues"> + <table class="table table-hover status_table"> + <thead> + <tr class="active"> + <th>Issue</th> + <th>Description</th><th/> + <th>Status</th> + </tr> + </thead> + <t t-foreach="issues" t-as="issue"> + <tr t-att-class="'hidden to_hide' if issue_index > 4 else ''"> + <td><a t-attf-href="/my/issues/#{issue.id}">Issue <t t-esc="issue.id"/></a></td> + <td><span t-field="issue.name"/></td><td/> + <td><span t-field="issue.stage_id.name"/></td> + </tr> + </t> + <tr t-att-class="'hidden' if len(issues) < 6 else ''"> + <td colspan="4"> + <a href="" class="o_my_show_more btn btn-xs btn-default"><span>Show more</span><span class="hidden">Show less</span></a> + </td> + </tr> + </table> + </t> + </xpath> + </template> + + <template id="issues_followup" name="Project Issues"> + <t t-call="website.layout"> + <div id="wrap"> + <div class="container"> + <div class="oe_structure"> + <div class="row"> + <div class="col-sm-4"> + <ol class="breadcrumb mt8"> + <li><a href="/my/home">My Account</a></li> + <li>Issue <span t-field="issue.id"/></li> + </ol> + </div> + </div> + </div> + <div class="container"> + <div class="panel panel-default"> + <div class="panel-heading"> + <div class="row"> + <div class="col-md-12"> + <h4> + Issue <span t-field="issue.id"/> - <span t-field="issue.name"/> + <span t-field="issue.stage_id.name" class="pull-right label label-info" title="Current stage of this issue"/> + </h4> + </div> + </div> + </div> + <div class="panel-body"> + <div class="mb8"> + <strong>Date:</strong> <span t-field="issue.create_date" t-field-options='{"widget": "date"}'/> + </div> + <div class='row'> + <div class="col-md-6" t-if="issue.user_id"> + <strong>Assigned to</strong> + <div> + <address t-field="issue.user_id" t-field-options='{"widget": "contact", "fields": ["name", "email", "phone"], "no_marker": true}'/> + </div> + </div> + <div class="col-md-6"> + <strong>Reported by</strong> + <div t-if="issue.partner_id"> + <address t-field="issue.partner_id" t-field-options='{"widget": "contact", "fields": ["name", "email"], "no_marker": true}'/> + </div> + </div> + </div> + </div> + </div> + <div class="row mt32"> + <div class="col-md-12"> + <h4><strong>Message and communication history</strong></h4> + </div> + <div class="col-md-10 col-md-offset-1 mt16"> + <t t-call="website_mail.message_thread"> + <t t-set="object" t-value="issue"/> + <t t-set="chatter_mode" t-value="'json'"/> + </t> + </div> + </div> + </div> + </div> + </div> + </t> + </template> +</odoo> diff --git a/addons/website_project_issue/website_project_issue_view.xml b/addons/website_project_issue/website_project_issue_view.xml deleted file mode 100644 index 278a6cbcad1..00000000000 --- a/addons/website_project_issue/website_project_issue_view.xml +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<odoo> - <template id="website_project_issue.link_issues" name="Issues Link from User Account" inherit_id="website.layout" groups="base.group_portal"> - <xpath expr="//li[@id='o_logout']" position="before"> - <li><a href="/web#action=website_project_issue.open_view_issue" role="menuitem">Issues</a></li> - </xpath> - </template> -</odoo> -
\ No newline at end of file diff --git a/addons/website_project_issue_sheet/__init__.py b/addons/website_project_issue_sheet/__init__.py new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/addons/website_project_issue_sheet/__init__.py diff --git a/addons/portal_project/__openerp__.py b/addons/website_project_issue_sheet/__openerp__.py index 976b78a75a0..83db1d332af 100644 --- a/addons/portal_project/__openerp__.py +++ b/addons/website_project_issue_sheet/__openerp__.py @@ -3,22 +3,21 @@ { - 'name': 'Portal Project', + 'name': 'Timesheet on Website Project Issue', 'version': '0.1', 'category': 'Tools', 'complexity': 'easy', 'description': """ -This module adds project menu and features (tasks) to your portal if project and portal are installed. -====================================================================================================== +Add timesheet support on issue in the frontend. +================================================================================================== """, 'author': 'OpenERP SA', - 'depends': ['project', 'portal'], + 'depends': ['website_project_issue', 'project_issue_sheet'], 'data': [ - 'security/portal_security.xml', + 'views/project_issue_templates.xml', 'security/ir.model.access.csv', - 'portal_project_view.xml', + 'security/portal_security.xml', ], - 'demo': [], 'installable': True, 'auto_install': True, 'category': 'Hidden', diff --git a/addons/website_project_issue_sheet/security/ir.model.access.csv b/addons/website_project_issue_sheet/security/ir.model.access.csv new file mode 100644 index 00000000000..02ea69acb45 --- /dev/null +++ b/addons/website_project_issue_sheet/security/ir.model.access.csv @@ -0,0 +1,2 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_timesheets_portal,access_timesheets_portal,analytic.model_account_analytic_line,base.group_portal,1,0,0,0 diff --git a/addons/website_project_issue_sheet/security/portal_security.xml b/addons/website_project_issue_sheet/security/portal_security.xml new file mode 100644 index 00000000000..eb7c7f7a660 --- /dev/null +++ b/addons/website_project_issue_sheet/security/portal_security.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?> +<openerp> + <data noupdate="1"> + + <record id="portal_issue_sheet_rule" model="ir.rule"> + <field name="name">Project/Issue Timesheets: frontend access</field> + <field name="model_id" ref="analytic.model_account_analytic_line"/> + <field name="domain_force">['|', + '&', + ('issue_id.project_id.privacy_visibility', '=', 'portal'), + ('issue_id.message_follower_ids', 'child_of', [user.partner_id.commercial_partner_id.id]), + '&', + ('issue_id.project_id.privacy_visibility', '=', 'followers'), + ('issue_id.message_follower_ids', 'in', [user.partner_id.id]), + ]</field> + <field name="groups" eval="[(4, ref('base.group_portal'))]"/> + </record> + </data> +</openerp> diff --git a/addons/website_project_issue_sheet/views/project_issue_templates.xml b/addons/website_project_issue_sheet/views/project_issue_templates.xml new file mode 100644 index 00000000000..4c27cd4b171 --- /dev/null +++ b/addons/website_project_issue_sheet/views/project_issue_templates.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="utf-8"?> +<odoo> + <template id="issues_followup_sheet" inherit_id="website_project_issue.issues_followup" name="Project Issues Timesheets"> + <xpath expr="//div[@class='panel-body']" position="inside"> + <t t-if="issue.timesheet_ids"> + <hr/> + <table class="table table-hover o_my_status_table"> + <thead> + <tr class="active"> + <th>Date</th> + <th>Description</th> + <th>Responsible</th> + <th>Duration</th> + </tr> + </thead> + <tr t-foreach="issue.timesheet_ids" t-as="timesheet"> + <td><span t-esc="timesheet.date"/></td> + <td><span t-esc="timesheet.name"/></td> + <td><span t-esc="timesheet.user_id.name"/></td> + <td><span t-field="timesheet.unit_amount" t-field-options='{"widget": "duration", "unit": "hour"}'/></td> + </tr> + </table> + </t> + </xpath> + </template> +</odoo> diff --git a/addons/website_rating_project_issue/__openerp__.py b/addons/website_rating_project_issue/__openerp__.py index a8b7ce5cfbb..d18c4d5bfff 100644 --- a/addons/website_rating_project_issue/__openerp__.py +++ b/addons/website_rating_project_issue/__openerp__.py @@ -15,7 +15,8 @@ This module display project customer satisfaction on your website. 'rating_project_issue' ], 'data': [ - 'views/website_rating_project.xml' + 'views/website_rating_project.xml', + 'views/project_project_view.xml', ], 'installable': True, } diff --git a/addons/website_rating_project_issue/controllers/main.py b/addons/website_rating_project_issue/controllers/main.py index 6b10139d7e1..b0dfba4e42c 100644 --- a/addons/website_rating_project_issue/controllers/main.py +++ b/addons/website_rating_project_issue/controllers/main.py @@ -4,19 +4,26 @@ from openerp.addons.web import http from openerp.addons.web.http import request import datetime +from werkzeug.exceptions import NotFound + class WebsiteRatingProject(http.Controller): @http.route(['/project/rating/'], type='http', auth="public", website=True) def index(self, **kw): - projects = request.env['project.project'].search([('is_visible_happy_customer', '=', 1)]) + projects = request.env['project.project'].sudo().search([('is_visible_happy_customer', '=', True), ('website_published', '=', True)]) values = {'projects' : projects} return request.website.render('website_rating_project_issue.index', values) - @http.route(['''/project/rating/<model("project.project", "[('is_visible_happy_customer','=',1)]"):project>'''], type='http', auth="public", website=True) - def page(self, project=None, **kw): - # create domain for rating - issues = request.env['project.issue'].search([('project_id', '=', project.id)]) + @http.route(['/project/rating/<int:project_id>'], type='http', auth="public", website=True) + def page(self, project_id=None, **kw): + user = request.env.user + project = request.env['project.project'].sudo().browse(project_id) + # to avoid giving any access rights on projects to the public user, let's use sudo + # and check if the user should be able to view the project (project managers only if it's not published or has no rating) + if not (project.is_visible_happy_customer and project.website_published) and not user.sudo(user).has_group('project.group_project_manager'): + raise NotFound() + issues = request.env['project.issue'].sudo().search([('project_id', '=', project.id)]) domain = [('res_model', '=', 'project.issue'), ('res_id', 'in', issues.ids)] ratings = request.env['rating.rating'].search(domain, order="id desc", limit=100) @@ -31,9 +38,8 @@ class WebsiteRatingProject(http.Controller): for rate in rating_stats: stats[x][rate['rating']] = (rate['rating_count'] * 100) / total values = { - 'team': project.sudo().members, 'project': project, - 'ratings' : ratings, + 'ratings': ratings, 'stats': stats, } return request.website.render('website_rating_project_issue.project_rating_page', values) diff --git a/addons/website_rating_project_issue/project_project.py b/addons/website_rating_project_issue/project_project.py index 00897d3b333..fe4d4f7abf6 100644 --- a/addons/website_rating_project_issue/project_project.py +++ b/addons/website_rating_project_issue/project_project.py @@ -1,10 +1,11 @@ # -*- coding: utf-8 -*- -from openerp import api, models +from openerp import api, fields, models class Project(models.Model): - _inherit = 'project.project' + _name = "project.project" + _inherit = ['project.project', 'website.published.mixin'] @api.multi def action_view_all_rating(self): @@ -16,3 +17,10 @@ class Project(models.Model): 'target': 'self', 'url': "/project/rating/%s" % (self.id,) } + + @api.multi + def _website_url(self, field_name, arg): + res = dict() + for project in self: + res[project.id] = "/project/rating/%s" % project.id + return res diff --git a/addons/website_rating_project_issue/views/project_project_view.xml b/addons/website_rating_project_issue/views/project_project_view.xml new file mode 100644 index 00000000000..2549b244bc0 --- /dev/null +++ b/addons/website_rating_project_issue/views/project_project_view.xml @@ -0,0 +1,17 @@ +<odoo> + <record id="edit_project_inherit_website_rating_project_issue" model="ir.ui.view"> + <field name="name">project.project.inherit.form</field> + <field name="model">project.project</field> + <field name="inherit_id" ref="project.edit_project"/> + <field name="arch" type="xml"> + <xpath expr='//div[@name="button_box"]/*[1]' position='before'> + <button class="oe_stat_button" name="website_publish_button" + type="object" icon="fa-globe" attrs="{'invisible': [('is_visible_happy_customer', '=', False)]}"> + <field name="website_published" widget="website_button"/> + </button> + </xpath> + </field> + </record> + + +</odoo> diff --git a/addons/website_rating_project_issue/views/website_rating_project.xml b/addons/website_rating_project_issue/views/website_rating_project.xml index cce51b3a2e8..3b3a0267127 100644 --- a/addons/website_rating_project_issue/views/website_rating_project.xml +++ b/addons/website_rating_project_issue/views/website_rating_project.xml @@ -53,7 +53,7 @@ </div> <div class="caption"> <p> - <a t-att-href="'/project/rating/%s' % (slug(project),)" class="btn btn-primary btn-lg btn-block"> + <a t-att-href="'/project/rating/%s' % project.id" class="btn btn-primary btn-lg btn-block"> <i class="fa fa-arrow-circle-right "/> See the feedbacks </a> </p> @@ -102,6 +102,13 @@ <div class="container oe_website_rating_project"> <h1 t-esc="project.name" class="text-center"/> <div class="row mb32"> + <div id="website_published_button" class="" groups="project.group_project_manager"> + <t t-call="website.publish_management"> + <t t-set="object" t-value="project"/> + <t t-set="publish_edit" t-value="True"/> + <t t-set="action" t-value="'project.open_view_project_all'"/> + </t> + </div> <div class="col-md-8"> <h3 class="page-header">Customer Satisfaction</h3> <div class="row"> @@ -127,17 +134,6 @@ <img t-attf-src='/rating/static/src/img/rating_#{int(rating.rating)}.png' t-att-alt="rating.res_name" t-att-title="rating.res_name"/> </t> </div> - <div class="col-md-4"> - <h3 class="page-header">Team</h3> - <div class="media" t-foreach="team" t-as="user"> - <div class="pull-left"> - <img t-att-src="website.image_url(user, 'image_small')" class="img-rounded" t-att-alt="user.name" style="width: 32px"/> - </div> - <div class="media-body"> - <h5><t t-esc="user.name"/></h5> - </div> - </div> - </div> </div> </div> <div class="oe_structure"/> |
