From a32ccdbbd158d9c9872d0640aaf789e207eff8ab Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?=
Date: Thu, 17 Apr 2014 14:26:33 +0200
Subject: [PATCH 21/56] [FIX] mass_mailing: fixed test mailing wizard, still
using unsubscribe url that is now delegated on the mail_mail model.
bzr revid: tde@openerp.com-20140417122633-bej72c8yhv2y2y4z
---
addons/mass_mailing/wizard/test_mailing.py | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/addons/mass_mailing/wizard/test_mailing.py b/addons/mass_mailing/wizard/test_mailing.py
index 39883d941ae..bd1124a8cdc 100644
--- a/addons/mass_mailing/wizard/test_mailing.py
+++ b/addons/mass_mailing/wizard/test_mailing.py
@@ -25,16 +25,14 @@ class TestMassMailing(osv.TransientModel):
test_emails = tools.email_split(wizard.email_to)
mail_ids = []
for test_mail in test_emails:
- body = mailing.body_html
- unsubscribe_url = self.pool['mail.mass_mailing'].get_unsubscribe_url(cr, uid, mailing.id, 0, email=test_mail, context=context)
- body = tools.append_content_to_html(body, unsubscribe_url, plaintext=False, container_tag='p')
mail_values = {
'email_from': mailing.email_from,
'reply_to': mailing.reply_to,
'email_to': test_mail,
'subject': mailing.name,
- 'body_html': body,
+ 'body_html': mailing.body_html,
'auto_delete': True,
+ 'mailing_id': wizard.mass_mailing_id.id,
}
mail_ids.append(Mail.create(cr, uid, mail_values, context=context))
Mail.send(cr, uid, mail_ids, context=context)
From 5e7b8518d50330927257a4794ed31db4c18e699d Mon Sep 17 00:00:00 2001
From: Martin Trigaux
Date: Thu, 17 Apr 2014 14:54:12 +0200
Subject: [PATCH 22/56] [FIX] gamification: this noupdate block should be in
noupdate (no kidding)
bzr revid: mat@openerp.com-20140417125412-4w5wp0ubsendx7nr
---
addons/gamification/data/goal_base.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/gamification/data/goal_base.xml b/addons/gamification/data/goal_base.xml
index 66dd7be7431..c8c18564772 100644
--- a/addons/gamification/data/goal_base.xml
+++ b/addons/gamification/data/goal_base.xml
@@ -2,7 +2,7 @@
-
+
From 64ce8f977dafa124f71fdc928046b4ca1e173991 Mon Sep 17 00:00:00 2001
From: Denis Ledoux
Date: Thu, 17 Apr 2014 15:26:16 +0200
Subject: [PATCH 23/56] [FIX] account_analytics_plan: for bank statement move,
the analytic distribution must not be written on the counterpart move line
bzr revid: dle@openerp.com-20140417132616-w71ctwn0w653yn0v
---
.../account_analytic_plans.py | 13 ++++---------
1 file changed, 4 insertions(+), 9 deletions(-)
diff --git a/addons/account_analytic_plans/account_analytic_plans.py b/addons/account_analytic_plans/account_analytic_plans.py
index 40484298f1b..2948ac1c19c 100644
--- a/addons/account_analytic_plans/account_analytic_plans.py
+++ b/addons/account_analytic_plans/account_analytic_plans.py
@@ -466,15 +466,10 @@ class account_bank_statement(osv.osv):
_inherit = "account.bank.statement"
_name = "account.bank.statement"
- def create_move_from_st_line(self, cr, uid, st_line_id, company_currency_id, st_line_number, context=None):
- account_move_line_pool = self.pool.get('account.move.line')
- account_bank_statement_line_pool = self.pool.get('account.bank.statement.line')
- st_line = account_bank_statement_line_pool.browse(cr, uid, st_line_id, context=context)
- result = super(account_bank_statement,self).create_move_from_st_line(cr, uid, st_line_id, company_currency_id, st_line_number, context=context)
- move = st_line.move_ids and st_line.move_ids[0] or False
- if move:
- for line in move.line_id:
- account_move_line_pool.write(cr, uid, [line.id], {'analytics_id':st_line.analytics_id.id}, context=context)
+ def _prepare_bank_move_line(self, cr, uid, st_line, move_id, amount, company_currency_id, context=None):
+ result = super(account_bank_statement,self)._prepare_bank_move_line(cr, uid, st_line,
+ move_id, amount, company_currency_id, context=context)
+ result['analytics_id'] = st_line.analytics_id.id
return result
def button_confirm_bank(self, cr, uid, ids, context=None):
From 146ee44c663ff8c4ceaed2f7a1a921425111ef36 Mon Sep 17 00:00:00 2001
From: Christophe Simonis
Date: Thu, 17 Apr 2014 17:39:48 +0200
Subject: [PATCH 24/56] [FIX] website_blog: set oldname for background_image
field
bzr revid: chs@openerp.com-20140417153948-loqwswgkq1zri462
---
addons/website_blog/models/website_blog.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/website_blog/models/website_blog.py b/addons/website_blog/models/website_blog.py
index 031856fff10..ab96cc5b7f8 100644
--- a/addons/website_blog/models/website_blog.py
+++ b/addons/website_blog/models/website_blog.py
@@ -52,7 +52,7 @@ class BlogPost(osv.Model):
'name': fields.char('Title', required=True, translate=True),
'subtitle': fields.char('Sub Title', translate=True),
'author_id': fields.many2one('res.partner', 'Author'),
- 'background_image': fields.binary('Background Image'),
+ 'background_image': fields.binary('Background Image', oldname='content_image'),
'blog_id': fields.many2one(
'blog.blog', 'Blog',
required=True, ondelete='cascade',
From 2138892723223ce15731839eb6eb0f39626edba8 Mon Sep 17 00:00:00 2001
From: Christophe Simonis
Date: Thu, 17 Apr 2014 18:03:06 +0200
Subject: [PATCH 25/56] [FIX] survey: handle the case where there is no stage
available when searching default stage. [FIX] survey: define survey.stage
before using it in survey.survey
bzr revid: chs@openerp.com-20140417160306-0oeb928gpfwxoxhz
---
addons/survey/survey.py | 49 +++++++++++++++++++++++------------------
1 file changed, 28 insertions(+), 21 deletions(-)
diff --git a/addons/survey/survey.py b/addons/survey/survey.py
index 0569c8ab0d5..590d7ae22c8 100644
--- a/addons/survey/survey.py
+++ b/addons/survey/survey.py
@@ -34,6 +34,27 @@ import uuid
_logger = logging.getLogger(__name__)
+class survey_stage(osv.Model):
+ """Stages for Kanban view of surveys"""
+
+ _name = 'survey.stage'
+ _description = 'Survey Stage'
+ _order = 'sequence asc'
+
+ _columns = {
+ 'name': fields.char(string="Name", required=True, translate=True),
+ 'sequence': fields.integer(string="Sequence"),
+ 'closed': fields.boolean(string="Closed", help="If closed, people won't be able to answer to surveys in this column."),
+ 'fold': fields.boolean(string="Folded in kanban view")
+ }
+ _defaults = {
+ 'sequence': 1,
+ 'closed': False
+ }
+ _sql_constraints = [
+ ('positive_sequence', 'CHECK(sequence >= 0)', 'Sequence number MUST be a natural')
+ ]
+
class survey_survey(osv.Model):
'''Settings for a multi-page/multi-question survey.
@@ -175,9 +196,15 @@ class survey_survey(osv.Model):
'quizz_mode': fields.boolean(string='Quizz mode')
}
+ def _default_stage(self, cr, uid, context=None):
+ ids = self.pool['survey.stage'].search(cr, uid, [], limit=1, context=context)
+ if ids:
+ return ids[0]
+ return False
+
_defaults = {
'color': 0,
- 'stage_id': lambda self, cr, uid, context: self.pool.get('survey.stage').search_read(cr, uid, fields=['id'], order='sequence asc', limit=1, context=context)[0]['id']
+ 'stage_id': lambda self, *a, **kw: self._default_stage(*a, **kw)
}
def _read_group_stage_ids(self, cr, uid, ids, domain, read_group_order=None, access_rights_uid=None, context=None):
@@ -456,26 +483,6 @@ class survey_survey(osv.Model):
}
-class survey_stage(osv.Model):
- """Stages for Kanban view of surveys"""
-
- _name = 'survey.stage'
- _description = 'Survey Stage'
- _order = 'sequence asc'
-
- _columns = {
- 'name': fields.char(string="Name", required=True, translate=True),
- 'sequence': fields.integer(string="Sequence"),
- 'closed': fields.boolean(string="Closed", help="If closed, people won't be able to answer to surveys in this column."),
- 'fold': fields.boolean(string="Folded in kanban view")
- }
- _defaults = {
- 'sequence': 1,
- 'closed': False
- }
- _sql_constraints = [
- ('positive_sequence', 'CHECK(sequence >= 0)', 'Sequence number MUST be a natural')
- ]
class survey_page(osv.Model):
From e2b8593f9157e141e991933eb470999f049e214a Mon Sep 17 00:00:00 2001
From: Denis Ledoux
Date: Thu, 17 Apr 2014 18:09:19 +0200
Subject: [PATCH 26/56] [REVERT] web: 4174
revid:dle@openerp.com-20140415130732-bud8xb3pzgxw2imr, break the kanban drag
and drop, which is far more important than the show more button wrongly
displayed in ie.
bzr revid: dle@openerp.com-20140417160919-ftwk0jtci9dwuu7h
---
addons/web_kanban/static/src/css/kanban.css | 5 ++++-
addons/web_kanban/static/src/css/kanban.sass | 2 +-
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/addons/web_kanban/static/src/css/kanban.css b/addons/web_kanban/static/src/css/kanban.css
index 1a0c3f1d9eb..2c2a19724cf 100644
--- a/addons/web_kanban/static/src/css/kanban.css
+++ b/addons/web_kanban/static/src/css/kanban.css
@@ -140,7 +140,10 @@
padding: 0px;
background: white;
}
-.openerp .oe_kanban_view .oe_kanban_column {
+.openerp .oe_kanban_view .oe_kanban_column, .openerp .oe_kanban_view .oe_kanban_column_cards {
+ height: 100%;
+}
+.openerp .oe_kanban_view .oe_kanban_column, .openerp .oe_kanban_view .oe_kanban_column_cards {
height: 100%;
}
.openerp .oe_kanban_view .oe_kanban_aggregates {
diff --git a/addons/web_kanban/static/src/css/kanban.sass b/addons/web_kanban/static/src/css/kanban.sass
index 48457789dd2..cac86ac327b 100644
--- a/addons/web_kanban/static/src/css/kanban.sass
+++ b/addons/web_kanban/static/src/css/kanban.sass
@@ -161,7 +161,7 @@
padding: 0px
background: #ffffff
- .oe_kanban_column
+ .oe_kanban_column, .oe_kanban_column_cards
height: 100%
.oe_kanban_aggregates
padding: 0
From 2024cc28b2dd2b8c1385bc82784c34981e9718b3 Mon Sep 17 00:00:00 2001
From: Christophe Simonis
Date: Thu, 17 Apr 2014 18:28:01 +0200
Subject: [PATCH 27/56] [FIX] when running in threaded mode with
"--stop-after-init", do not spawn httpd and cron thread
bzr revid: chs@openerp.com-20140417162801-se9s84dsoh45sq0v
---
openerp/service/server.py | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/openerp/service/server.py b/openerp/service/server.py
index 76b415eb01e..c182c10a74d 100644
--- a/openerp/service/server.py
+++ b/openerp/service/server.py
@@ -280,7 +280,7 @@ class ThreadedServer(CommonServer):
t.start()
_logger.info('HTTP service (werkzeug) running on %s:%s', self.interface, self.port)
- def start(self):
+ def start(self, stop=False):
_logger.debug("Setting signal handlers")
if os.name == 'posix':
signal.signal(signal.SIGINT, self.signal_handler)
@@ -291,8 +291,11 @@ class ThreadedServer(CommonServer):
elif os.name == 'nt':
import win32api
win32api.SetConsoleCtrlHandler(lambda sig: self.signal_handler(sig, None), 1)
- self.cron_spawn()
- self.http_spawn()
+
+ if not stop:
+ # only relevant if we are not in "--stop-after-init" mode
+ self.cron_spawn()
+ self.http_spawn()
def stop(self):
""" Shutdown the WSGI server. Wait for non deamon threads.
@@ -329,7 +332,7 @@ class ThreadedServer(CommonServer):
The first SIGINT or SIGTERM signal will initiate a graceful shutdown while
a second one if any will force an immediate exit.
"""
- self.start()
+ self.start(stop=stop)
rc = preload_registries(preload)
From efbf7632b86ee3e9f0ede32dc4d0786b38504cb7 Mon Sep 17 00:00:00 2001
From: Christophe Simonis
Date: Thu, 17 Apr 2014 19:06:20 +0200
Subject: [PATCH 28/56] [FIX] some tests need the http daemon to be available
bzr revid: chs@openerp.com-20140417170620-48tw5nj3jt43zxgk
---
openerp/service/server.py | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/openerp/service/server.py b/openerp/service/server.py
index c182c10a74d..9dde14c0edb 100644
--- a/openerp/service/server.py
+++ b/openerp/service/server.py
@@ -292,10 +292,14 @@ class ThreadedServer(CommonServer):
import win32api
win32api.SetConsoleCtrlHandler(lambda sig: self.signal_handler(sig, None), 1)
+ test_mode = config['test_enable'] or config['test_file']
+ if not stop or test_mode:
+ # some tests need the http deamon to be available...
+ self.http_spawn()
+
if not stop:
# only relevant if we are not in "--stop-after-init" mode
self.cron_spawn()
- self.http_spawn()
def stop(self):
""" Shutdown the WSGI server. Wait for non deamon threads.
From 8364a0faaba81bdf0ef9e96414b06a2c15dcd6f6 Mon Sep 17 00:00:00 2001
From: Launchpad Translations on behalf of openerp <>
Date: Fri, 18 Apr 2014 07:21:54 +0000
Subject: [PATCH 29/56] Launchpad automatic translations update.
bzr revid: launchpad_translations_on_behalf_of_openerp-20140418072154-969nr7hzpppvd0mw
---
addons/hr/i18n/ja.po | 16 ++++++++--------
addons/stock/i18n/zh_TW.po | 2 +-
2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/addons/hr/i18n/ja.po b/addons/hr/i18n/ja.po
index ad14389644b..5781c49dd86 100644
--- a/addons/hr/i18n/ja.po
+++ b/addons/hr/i18n/ja.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-06-07 19:36+0000\n"
-"PO-Revision-Date: 2014-02-21 03:38+0000\n"
+"PO-Revision-Date: 2014-04-18 02:39+0000\n"
"Last-Translator: Yoshi Tashiro \n"
"Language-Team: Japanese \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-02-22 07:32+0000\n"
-"X-Generator: Launchpad (build 16926)\n"
+"X-Launchpad-Export-Date: 2014-04-18 07:21+0000\n"
+"X-Generator: Launchpad (build 16985)\n"
#. module: hr
#: model:process.node,name:hr.process_node_openerpuser0
@@ -25,7 +25,7 @@ msgstr "OpenERPユーザ"
#. module: hr
#: field:hr.config.settings,module_hr_timesheet_sheet:0
msgid "Allow timesheets validation by managers"
-msgstr ""
+msgstr "マネジャーによるタイムシート検証"
#. module: hr
#: field:hr.job,requirements:0
@@ -111,7 +111,7 @@ msgstr ""
#. module: hr
#: help:hr.config.settings,module_hr_holidays:0
msgid "This installs the module hr_holidays."
-msgstr ""
+msgstr "hr_holidays モジュールをインストールします。"
#. module: hr
#: view:hr.job:0
@@ -126,7 +126,7 @@ msgstr "採用中"
#. module: hr
#: field:hr.job,message_unread:0
msgid "Unread Messages"
-msgstr ""
+msgstr "未読メッセージ"
#. module: hr
#: field:hr.department,company_id:0
@@ -144,7 +144,7 @@ msgstr "採用予定"
#. module: hr
#: view:hr.employee:0
msgid "Other Information ..."
-msgstr ""
+msgstr "その他情報..."
#. module: hr
#: constraint:hr.employee.category:0
@@ -154,7 +154,7 @@ msgstr ""
#. module: hr
#: help:hr.config.settings,module_hr_recruitment:0
msgid "This installs the module hr_recruitment."
-msgstr ""
+msgstr "hr_recruitment モジュールをインストールします。"
#. module: hr
#: view:hr.employee:0
diff --git a/addons/stock/i18n/zh_TW.po b/addons/stock/i18n/zh_TW.po
index 15c281d95fd..18785a58b5e 100644
--- a/addons/stock/i18n/zh_TW.po
+++ b/addons/stock/i18n/zh_TW.po
@@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-04-17 06:53+0000\n"
+"X-Launchpad-Export-Date: 2014-04-18 07:21+0000\n"
"X-Generator: Launchpad (build 16985)\n"
#. module: stock
From e0451e28cd780ad32e2e5ef6abb48dbda0d18c92 Mon Sep 17 00:00:00 2001
From: Denis Ledoux
Date: Fri, 18 Apr 2014 10:38:18 +0200
Subject: [PATCH 30/56] [FIX] website_hr_recruitment: missing public group in
security rule for website_published
bzr revid: dle@openerp.com-20140418083818-p11a17k4az2wsa2e
---
.../security/website_hr_recruitment_security.xml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/addons/website_hr_recruitment/security/website_hr_recruitment_security.xml b/addons/website_hr_recruitment/security/website_hr_recruitment_security.xml
index 724c4dfddce..792995ca606 100644
--- a/addons/website_hr_recruitment/security/website_hr_recruitment_security.xml
+++ b/addons/website_hr_recruitment/security/website_hr_recruitment_security.xml
@@ -5,6 +5,7 @@
Job Positions: Public[('website_published', '=', True)]
+
@@ -14,6 +15,7 @@
Job department: Public[('jobs_ids.website_published', '=', True)]
+
From 6f4efd45bb7ba2c72f81b092768b8a85d4978fc9 Mon Sep 17 00:00:00 2001
From: Martin Trigaux
Date: Fri, 18 Apr 2014 11:05:20 +0200
Subject: [PATCH 31/56] [FIX] gamification: change scope of goal_obj variable
bzr revid: mat@openerp.com-20140418090520-zq4r6s4g9qn78mvx
---
addons/gamification/models/challenge.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/gamification/models/challenge.py b/addons/gamification/models/challenge.py
index 295340a309b..081127d6bf0 100644
--- a/addons/gamification/models/challenge.py
+++ b/addons/gamification/models/challenge.py
@@ -376,6 +376,7 @@ class gamification_challenge(osv.Model):
can be called after each change in the list of users or lines.
:param list(int) ids: the list of challenge concerned"""
+ goal_obj = self.pool.get('gamification.goal')
to_update = []
for challenge in self.browse(cr, uid, ids, context=context):
(start_date, end_date) = start_end_date_for_period(challenge.period)
@@ -390,7 +391,6 @@ class gamification_challenge(osv.Model):
# FIXME: allow to restrict to a subset of users
for user in challenge.user_ids:
- goal_obj = self.pool.get('gamification.goal')
domain = [('line_id', '=', line.id), ('user_id', '=', user.id)]
if start_date:
domain.append(('start_date', '=', start_date))
From 66ba3092cf2fdd3a768ad072df90d2d6c84e67a8 Mon Sep 17 00:00:00 2001
From: Christophe Simonis
Date: Fri, 18 Apr 2014 13:55:56 +0200
Subject: [PATCH 32/56] [FIX] http: correct detection of old (v7) routes that
still take "req" as first argument
bzr revid: chs@openerp.com-20140418115556-717tlcwejszmi0lb
---
openerp/http.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/openerp/http.py b/openerp/http.py
index 8d7497fc40d..c9181d2c211 100644
--- a/openerp/http.py
+++ b/openerp/http.py
@@ -600,8 +600,8 @@ class ControllerType(type):
# flag old-style methods with req as first argument
for k, v in attrs.items():
- if inspect.isfunction(v):
- spec = inspect.getargspec(v)
+ if inspect.isfunction(v) and hasattr(v, 'original_func'):
+ spec = inspect.getargspec(v.original_func)
first_arg = spec.args[1] if len(spec.args) >= 2 else None
if first_arg in ["req", "request"]:
v._first_arg_is_req = True
From 067f21ce5aa9d215f6b174797ec8f79673f7033a Mon Sep 17 00:00:00 2001
From: Martin Trigaux
Date: Fri, 18 Apr 2014 14:08:46 +0200
Subject: [PATCH 33/56] [FIX] gamification: set data in noupdate blocks to
allow the user to customise it without loosing changes after update
bzr revid: mat@openerp.com-20140418120846-h8yo4ljult88f1h3
---
addons/gamification/data/badge.xml | 4 ----
addons/gamification/data/cron.xml | 2 +-
addons/gamification/data/goal_base.xml | 4 ----
addons/gamification/models/challenge.py | 2 +-
addons/gamification_sale_crm/sale_crm_goals.xml | 2 +-
5 files changed, 3 insertions(+), 11 deletions(-)
diff --git a/addons/gamification/data/badge.xml b/addons/gamification/data/badge.xml
index 5a390be9deb..4035c51cfc8 100644
--- a/addons/gamification/data/badge.xml
+++ b/addons/gamification/data/badge.xml
@@ -32,10 +32,6 @@
2
-
-
-
-
Received Badge
diff --git a/addons/gamification/data/cron.xml b/addons/gamification/data/cron.xml
index 8585771c97d..105f7d25681 100644
--- a/addons/gamification/data/cron.xml
+++ b/addons/gamification/data/cron.xml
@@ -1,6 +1,6 @@
-
+
Run Goal Challenge Checker
diff --git a/addons/gamification/data/goal_base.xml b/addons/gamification/data/goal_base.xml
index c8c18564772..1c18a5a70e5 100644
--- a/addons/gamification/data/goal_base.xml
+++ b/addons/gamification/data/goal_base.xml
@@ -92,10 +92,6 @@
]]>
-
-
-
-
Set your Timezone
diff --git a/addons/gamification/models/challenge.py b/addons/gamification/models/challenge.py
index 06d0c44baac..8ac7753898f 100644
--- a/addons/gamification/models/challenge.py
+++ b/addons/gamification/models/challenge.py
@@ -377,6 +377,7 @@ class gamification_challenge(osv.Model):
can be called after each change in the list of users or lines.
:param list(int) ids: the list of challenge concerned"""
+ goal_obj = self.pool.get('gamification.goal')
for challenge in self.browse(cr, uid, ids, context):
(start_date, end_date) = start_end_date_for_period(challenge.period)
@@ -390,7 +391,6 @@ class gamification_challenge(osv.Model):
# FIXME: allow to restrict to a subset of users
for user in challenge.user_ids:
- goal_obj = self.pool.get('gamification.goal')
domain = [('line_id', '=', line.id), ('user_id', '=', user.id)]
if start_date:
domain.append(('start_date', '=', start_date))
diff --git a/addons/gamification_sale_crm/sale_crm_goals.xml b/addons/gamification_sale_crm/sale_crm_goals.xml
index 4c1f8e46149..6db77be1aaf 100644
--- a/addons/gamification_sale_crm/sale_crm_goals.xml
+++ b/addons/gamification_sale_crm/sale_crm_goals.xml
@@ -1,6 +1,6 @@
-
+
From 9a858f7daa6ee86a51eace446bec38327b7f9960 Mon Sep 17 00:00:00 2001
From: "Richard Mathot (OpenERP)"
Date: Fri, 18 Apr 2014 14:50:43 +0200
Subject: [PATCH 34/56] [ADD] website_certification: new module to display
certificated people on website
bzr revid: rim@openerp.com-20140418125043-mhe8u8f18pov0nce
---
addons/website_certification/__init__.py | 23 ++++++++
addons/website_certification/__openerp__.py | 38 ++++++++++++
addons/website_certification/certification.py | 43 ++++++++++++++
.../controllers/__init__.py | 22 +++++++
.../website_certification/controllers/main.py | 50 ++++++++++++++++
.../security/ir.model.access.csv | 7 +++
.../views/website_certification_templates.xml | 42 ++++++++++++++
.../views/website_certification_views.xml | 58 +++++++++++++++++++
8 files changed, 283 insertions(+)
create mode 100644 addons/website_certification/__init__.py
create mode 100644 addons/website_certification/__openerp__.py
create mode 100644 addons/website_certification/certification.py
create mode 100644 addons/website_certification/controllers/__init__.py
create mode 100644 addons/website_certification/controllers/main.py
create mode 100644 addons/website_certification/security/ir.model.access.csv
create mode 100644 addons/website_certification/views/website_certification_templates.xml
create mode 100644 addons/website_certification/views/website_certification_views.xml
diff --git a/addons/website_certification/__init__.py b/addons/website_certification/__init__.py
new file mode 100644
index 00000000000..2a6cb8bee84
--- /dev/null
+++ b/addons/website_certification/__init__.py
@@ -0,0 +1,23 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-TODAY OpenERP S.A.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+import certification
+import controllers
diff --git a/addons/website_certification/__openerp__.py b/addons/website_certification/__openerp__.py
new file mode 100644
index 00000000000..041014646fe
--- /dev/null
+++ b/addons/website_certification/__openerp__.py
@@ -0,0 +1,38 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-TODAY OpenERP S.A.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+{
+ 'name': 'Certified People',
+ 'category': 'Website',
+ 'summary': 'Display your network of certified people on your website',
+ 'version': '1.0',
+ 'author': 'OpenERP S.A.',
+ 'depends': ['marketing', 'website'],
+ 'description': """
+ Display your network of certified people on your website
+ """,
+ 'data': [
+ 'security/ir.model.access.csv',
+ 'views/website_certification_views.xml',
+ 'views/website_certification_templates.xml',
+ ],
+ 'installable': True,
+}
diff --git a/addons/website_certification/certification.py b/addons/website_certification/certification.py
new file mode 100644
index 00000000000..48636e027f7
--- /dev/null
+++ b/addons/website_certification/certification.py
@@ -0,0 +1,43 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-TODAY OpenERP S.A.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+
+from openerp.osv import osv, fields
+
+
+class certification_type(osv.Model):
+ _name = 'certification.type'
+ _order = 'name ASC'
+ _columns = {
+ 'name': fields.char("Certification Type", required=True)
+ }
+
+
+class certification_certification(osv.Model):
+ _name = 'certification.certification'
+ _order = 'certification_date DESC'
+ _columns = {
+ 'partner_id': fields.many2one('res.partner', string="Partner", required=True),
+ 'type_id': fields.many2one('certification.type', string="Certification", required=True),
+ 'certification_date': fields.date("Certification Date", required=True),
+ 'certification_score': fields.char("Certification Score", required=True),
+ 'certification_hidden_score': fields.boolean("Hide score on website?")
+ }
diff --git a/addons/website_certification/controllers/__init__.py b/addons/website_certification/controllers/__init__.py
new file mode 100644
index 00000000000..672df6ec1f9
--- /dev/null
+++ b/addons/website_certification/controllers/__init__.py
@@ -0,0 +1,22 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-TODAY OpenERP S.A.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+import main
diff --git a/addons/website_certification/controllers/main.py b/addons/website_certification/controllers/main.py
new file mode 100644
index 00000000000..75fe9174760
--- /dev/null
+++ b/addons/website_certification/controllers/main.py
@@ -0,0 +1,50 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-TODAY OpenERP S.A.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+
+from openerp.addons.web import http
+from openerp.addons.web.http import request
+
+
+class WebsiteCertifiedPartners(http.Controller):
+
+ @http.route(['/certifications',
+ '/certifications/'], type='http', auth='public',
+ website=True, multilang=True)
+ def certified_partners(self, cert_type=None, **post):
+ cr, uid, context = request.cr, request.uid, request.context
+ certification_obj = request.registry['certification.certification']
+ cert_type_obj = request.registry['certification.type']
+
+ domain = []
+ if cert_type:
+ domain.append(('type_id', '=', cert_type.id))
+
+ certifications_ids = certification_obj.search(cr, uid, domain, context=context)
+ certifications = certification_obj.browse(cr, uid, certifications_ids, context=context)
+ types = cert_type_obj.browse(cr, uid, cert_type_obj.search(cr, uid, [], context=context), context=context)
+ data = {
+ 'certifications': certifications,
+ 'types': types
+ }
+
+ # ici selectionner les partners certifies uniquement
+ return request.website.render("website_certification.certified_partners", data)
diff --git a/addons/website_certification/security/ir.model.access.csv b/addons/website_certification/security/ir.model.access.csv
new file mode 100644
index 00000000000..a297b053d26
--- /dev/null
+++ b/addons/website_certification/security/ir.model.access.csv
@@ -0,0 +1,7 @@
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_certifications_public,certification.certification public,model_certification_certification,base.group_public,1,0,0,0
+access_certifications_types_public,certification.type public,model_certification_type,base.group_public,1,0,0,0
+access_certifications_users,certification.certification users,model_certification_certification,base.group_user,1,0,0,0
+access_certifications_types_users,certification.type users,model_certification_type,base.group_user,1,0,0,0
+access_certifications_marketing,certification.certification marketing,model_certification_certification,marketing.group_marketing_user,1,1,1,1
+access_certifications_types_marketing,certification.type marketing,model_certification_type,marketing.group_marketing_user,1,1,1,1
diff --git a/addons/website_certification/views/website_certification_templates.xml b/addons/website_certification/views/website_certification_templates.xml
new file mode 100644
index 00000000000..eaacdea22ba
--- /dev/null
+++ b/addons/website_certification/views/website_certification_templates.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
From d0cf3056180bbd1e20d8f6266a1268476021e9c4 Mon Sep 17 00:00:00 2001
From: Denis Ledoux
Date: Fri, 18 Apr 2014 15:47:40 +0200
Subject: [PATCH 37/56] [FIX] account_analytic_analysis: avoid create recurring
invoices for contract templates
bzr revid: dle@openerp.com-20140418134740-dv39ffwcdqh4np0g
---
addons/account_analytic_analysis/account_analytic_analysis.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/account_analytic_analysis/account_analytic_analysis.py b/addons/account_analytic_analysis/account_analytic_analysis.py
index f8905d6e546..f3e7d6d53a3 100644
--- a/addons/account_analytic_analysis/account_analytic_analysis.py
+++ b/addons/account_analytic_analysis/account_analytic_analysis.py
@@ -727,7 +727,7 @@ class account_analytic_account(osv.osv):
if ids:
contract_ids = ids
else:
- contract_ids = self.search(cr, uid, [('recurring_next_date','<=', current_date), ('state','=', 'open'), ('recurring_invoices','=', True)])
+ contract_ids = self.search(cr, uid, [('recurring_next_date','<=', current_date), ('state','=', 'open'), ('recurring_invoices','=', True), ('type', '=', 'contract')])
for contract in self.browse(cr, uid, contract_ids, context=context):
try:
invoice_id = self._prepare_invoice(cr, uid, contract, context=context)
From a97dd9adaf04377298fcd090d58fb144c9bfbe5c Mon Sep 17 00:00:00 2001
From: Martin Trigaux
Date: Fri, 18 Apr 2014 16:05:08 +0200
Subject: [PATCH 38/56] [FIX] mail: correct missing comma in domain on
mail.mail
bzr revid: mat@openerp.com-20140418140508-y0fnxsbgda0gp6t4
---
addons/mail/mail_mail_view.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/mail/mail_mail_view.xml b/addons/mail/mail_mail_view.xml
index e0d1f3e96b2..361959a9927 100644
--- a/addons/mail/mail_mail_view.xml
+++ b/addons/mail/mail_mail_view.xml
@@ -86,7 +86,7 @@
mail.mail
-
+
From 4c68f32fadf3de8ebe5765bc402df17c51e000fb Mon Sep 17 00:00:00 2001
From: Denis Ledoux
Date: Fri, 18 Apr 2014 16:15:27 +0200
Subject: [PATCH 39/56] [FIX] account_analytic_analysis: test
recurring_create_invoice, ids is mandatory
bzr revid: dle@openerp.com-20140418141527-jxc4l7amuj7weu0a
---
.../test/account_analytic_analysis.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/account_analytic_analysis/test/account_analytic_analysis.yml b/addons/account_analytic_analysis/test/account_analytic_analysis.yml
index 49668a2b781..95194c97c86 100644
--- a/addons/account_analytic_analysis/test/account_analytic_analysis.yml
+++ b/addons/account_analytic_analysis/test/account_analytic_analysis.yml
@@ -32,7 +32,7 @@
I generate all invoices from contracts having recurring invoicing
-
!python {model: account.analytic.account}: |
- self.recurring_create_invoice(cr, uid)
+ self.recurring_create_invoice(cr, uid, [])
-
I test the generated invoice
-
From c3cf8000e6cb22ecf71e3b25b3950e5ce9ae01bf Mon Sep 17 00:00:00 2001
From: Christophe Simonis
Date: Fri, 18 Apr 2014 16:15:50 +0200
Subject: [PATCH 40/56] [FIX] module loading: mark module as initialized
*after* the data files have been loaded
When the registry is updating, the view verification only validates the views
from initialized modules. Not taking the current module allow update of views
that have also an inherited view in the same module. The verification of the base view
must not try to apply the old inherited view against it as it may not be applicable
anymore.
After module update, we re-validate all the views of this module. This is needed because
a module can declare two (or more) inherited views that are correct when applyed alone,
but not when combined with others.
bzr revid: chs@openerp.com-20140418141550-7b57b1xl4fx0rgqq
---
openerp/addons/base/ir/ir_ui_view.py | 14 ++++++++++++++
openerp/modules/loading.py | 8 ++++++--
2 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/openerp/addons/base/ir/ir_ui_view.py b/openerp/addons/base/ir/ir_ui_view.py
index f67f65f2c1c..198b85e86a7 100644
--- a/openerp/addons/base/ir/ir_ui_view.py
+++ b/openerp/addons/base/ir/ir_ui_view.py
@@ -955,4 +955,18 @@ class view(osv.osv):
ids = map(itemgetter(0), cr.fetchall())
return self._check_xml(cr, uid, ids)
+ def _validate_module_views(self, cr, uid, module):
+ """Validate architecture of all the views of a given module"""
+ assert not self.pool._init or module in self.pool._init_modules
+ cr.execute("""SELECT max(v.id)
+ FROM ir_ui_view v
+ LEFT JOIN ir_model_data md ON (md.model = 'ir.ui.view' AND md.res_id = v.id)
+ WHERE md.module = %s
+ GROUP BY coalesce(v.inherit_id, v.id)
+ """, (module,))
+
+ for vid, in cr.fetchall():
+ if not self._check_xml(cr, uid, [vid]):
+ self.raise_view_error(cr, uid, "Can't validate view", vid)
+
# vim:et:
diff --git a/openerp/modules/loading.py b/openerp/modules/loading.py
index 5635e42e780..2b507acc0bb 100644
--- a/openerp/modules/loading.py
+++ b/openerp/modules/loading.py
@@ -3,7 +3,7 @@
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL ().
-# Copyright (C) 2010-2013 OpenERP s.a. ().
+# Copyright (C) 2010-2014 OpenERP s.a. ().
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@@ -153,7 +153,6 @@ def load_module_graph(cr, graph, status=None, perform_checks=True, skip_modules=
loaded_modules.append(package.name)
if hasattr(package, 'init') or hasattr(package, 'update') or package.state in ('to install', 'to upgrade'):
init_module_models(cr, package.name, models)
- registry._init_modules.add(package.name)
status['progress'] = float(index) / len(graph)
# Can't put this line out of the loop: ir.module.module will be
@@ -182,6 +181,10 @@ def load_module_graph(cr, graph, status=None, perform_checks=True, skip_modules=
migrations.migrate_module(package, 'post')
+ registry._init_modules.add(package.name)
+ # validate all the views at a whole
+ registry['ir.ui.view']._validate_module_views(cr, SUPERUSER_ID, module_name)
+
if has_demo:
# launch tests only in demo mode, allowing tests to use demo data.
if tools.config.options['test_enable']:
@@ -207,6 +210,7 @@ def load_module_graph(cr, graph, status=None, perform_checks=True, skip_modules=
if hasattr(package, kind):
delattr(package, kind)
+ registry._init_modules.add(package.name)
cr.commit()
# The query won't be valid for models created later (i.e. custom model
From 0253e8ab616015eae4c0f43b673fc547809ced55 Mon Sep 17 00:00:00 2001
From: Denis Ledoux
Date: Fri, 18 Apr 2014 16:17:55 +0200
Subject: [PATCH 41/56] [FIX] base_geolocalize: no reason to have groups no one
for geolocation tab, any salesman should be able to set the latitude
longitude
bzr revid: dle@openerp.com-20140418141755-x4wnhqh39v23tky2
---
addons/base_geolocalize/views/res_partner_view.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/base_geolocalize/views/res_partner_view.xml b/addons/base_geolocalize/views/res_partner_view.xml
index 24cc8d2d21d..1bd537ae3ff 100644
--- a/addons/base_geolocalize/views/res_partner_view.xml
+++ b/addons/base_geolocalize/views/res_partner_view.xml
@@ -8,7 +8,7 @@
-
+
-
+
+
@@ -67,7 +68,8 @@
Sold Out
-
+
+
From df85f3baf6996af78a886a8e9a0399f51531238a Mon Sep 17 00:00:00 2001
From: Denis Ledoux
Date: Tue, 22 Apr 2014 15:05:06 +0200
Subject: [PATCH 53/56] [FIX] note: typo in manifest
bzr revid: dle@openerp.com-20140422130506-934g9o433kdhmwnp
---
addons/note/__openerp__.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/addons/note/__openerp__.py b/addons/note/__openerp__.py
index 2653c558923..e94a5f60181 100644
--- a/addons/note/__openerp__.py
+++ b/addons/note/__openerp__.py
@@ -27,8 +27,8 @@
This module allows users to create their own notes inside OpenERP
=================================================================
-Use notes to write meeting minutes, organize ideas, organize personnal todo
-lists, etc. Each user manages his own personnal Notes. Notes are available to
+Use notes to write meeting minutes, organize ideas, organize personal todo
+lists, etc. Each user manages his own personal Notes. Notes are available to
their authors only, but they can share notes to others users so that several
people can work on the same note in real time. It's very efficient to share
meeting minutes.
From b981f3f8efa54db76451645562057fff26baab69 Mon Sep 17 00:00:00 2001
From: Denis Ledoux
Date: Tue, 22 Apr 2014 17:07:10 +0200
Subject: [PATCH 54/56] [FIX] *: in search views, use operator=child_of instead
of filter_domain with a child_of domain
operator child_of has the advantage to do exact ID matching for many2one, and not just matching on the name
bzr revid: dle@openerp.com-20140422150710-mr9x3vyq0wcg31l5
---
addons/account/account_invoice_view.xml | 2 +-
addons/account/project/project_view.xml | 2 +-
addons/crm/crm_lead_view.xml | 4 ++--
addons/crm/crm_phonecall_view.xml | 2 +-
addons/project_issue/project_issue_view.xml | 2 +-
addons/purchase/purchase_view.xml | 4 ++--
addons/sale/sale_view.xml | 6 +++---
7 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/addons/account/account_invoice_view.xml b/addons/account/account_invoice_view.xml
index 94b98b78907..947aad481d1 100644
--- a/addons/account/account_invoice_view.xml
+++ b/addons/account/account_invoice_view.xml
@@ -457,7 +457,7 @@
-
+
diff --git a/addons/account/project/project_view.xml b/addons/account/project/project_view.xml
index 00547261ca2..600056c05f1 100644
--- a/addons/account/project/project_view.xml
+++ b/addons/account/project/project_view.xml
@@ -31,7 +31,7 @@
-
+
diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml
index 7c087ebd5a8..e0311d1db40 100644
--- a/addons/crm/crm_lead_view.xml
+++ b/addons/crm/crm_lead_view.xml
@@ -328,7 +328,7 @@
-
+
@@ -546,7 +546,7 @@
-
+
diff --git a/addons/crm/crm_phonecall_view.xml b/addons/crm/crm_phonecall_view.xml
index 2d456cc053a..21e18d8affc 100644
--- a/addons/crm/crm_phonecall_view.xml
+++ b/addons/crm/crm_phonecall_view.xml
@@ -186,7 +186,7 @@
-
+
diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml
index 74c83afd304..494f054f8e8 100644
--- a/addons/project_issue/project_issue_view.xml
+++ b/addons/project_issue/project_issue_view.xml
@@ -150,7 +150,7 @@
-
+
diff --git a/addons/purchase/purchase_view.xml b/addons/purchase/purchase_view.xml
index 3504d49a884..3c8afceb6e7 100644
--- a/addons/purchase/purchase_view.xml
+++ b/addons/purchase/purchase_view.xml
@@ -270,7 +270,7 @@
-
+
@@ -297,7 +297,7 @@
-
+
diff --git a/addons/sale/sale_view.xml b/addons/sale/sale_view.xml
index f12cba6ac9f..16e9e2a6305 100644
--- a/addons/sale/sale_view.xml
+++ b/addons/sale/sale_view.xml
@@ -307,7 +307,7 @@
-
+
@@ -471,7 +471,7 @@
-
+
@@ -497,7 +497,7 @@
-
+
From c6189d91a0f3a313393e48e2f3dc86d34c84542e Mon Sep 17 00:00:00 2001
From: Denis Ledoux
Date: Tue, 22 Apr 2014 17:07:36 +0200
Subject: [PATCH 55/56] [FIX] base: in partner search view, use
operator=child_of instead of filter_domain with a child_of domain
operator child_of has the advantage to do exact ID matching for many2one, and not just matching on the name
bzr revid: dle@openerp.com-20140422150736-o2t3eank6yqttlel
---
openerp/addons/base/res/res_partner_view.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/openerp/addons/base/res/res_partner_view.xml b/openerp/addons/base/res/res_partner_view.xml
index 9ff9649b8b7..fd394549f4b 100644
--- a/openerp/addons/base/res/res_partner_view.xml
+++ b/openerp/addons/base/res/res_partner_view.xml
@@ -340,7 +340,7 @@
-
+
From 6083ed4b46dab046fe4e21bdb479afb7cd1d3216 Mon Sep 17 00:00:00 2001
From: Denis Ledoux
Date: Tue, 22 Apr 2014 17:09:18 +0200
Subject: [PATCH 56/56] [FIX] web: abitility to do exact id matching with
child_of operator for searchs on many2one fields
bzr revid: dle@openerp.com-20140422150918-nxv2v4bcvi6u3v6g
---
addons/web/static/src/js/search.js | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/addons/web/static/src/js/search.js b/addons/web/static/src/js/search.js
index b82ad6504a9..1f616202c3f 100644
--- a/addons/web/static/src/js/search.js
+++ b/addons/web/static/src/js/search.js
@@ -1578,8 +1578,11 @@ instance.web.search.ManyToOneField = instance.web.search.CharField.extend({
return facetValue.get('label');
},
make_domain: function (name, operator, facetValue) {
- if (operator === this.default_operator) {
+ switch(operator){
+ case this.default_operator:
return [[name, '=', facetValue.get('value')]];
+ case 'child_of':
+ return [[name, 'child_of', facetValue.get('value')]];
}
return this._super(name, operator, facetValue);
},