diff --git a/addons/account/account.py b/addons/account/account.py
index 5726a5a793c..bedff44b7e8 100644
--- a/addons/account/account.py
+++ b/addons/account/account.py
@@ -289,20 +289,20 @@ class account_account(osv.osv):
sums = {}
while brs:
current = brs[0]
- can_compute = True
- for child in current.child_id:
- if child.id not in sums:
- can_compute = False
- try:
- brs.insert(0, brs.pop(brs.index(child)))
- except ValueError:
- brs.insert(0, child)
- if can_compute:
- brs.pop(0)
- for fn in field_names:
- sums.setdefault(current.id, {})[fn] = accounts.get(current.id, {}).get(fn, 0.0)
- if current.child_id:
- sums[current.id][fn] += sum(sums[child.id][fn] for child in current.child_id)
+# can_compute = True
+# for child in current.child_id:
+# if child.id not in sums:
+# can_compute = False
+# try:
+# brs.insert(0, brs.pop(brs.index(child)))
+# except ValueError:
+# brs.insert(0, child)
+# if can_compute:
+ brs.pop(0)
+ for fn in field_names:
+ sums.setdefault(current.id, {})[fn] = accounts.get(current.id, {}).get(fn, 0.0)
+ if current.child_id:
+ sums[current.id][fn] += sum(sums[child.id][fn] for child in current.child_id)
res = {}
null_result = dict((fn, 0.0) for fn in field_names)
for id in ids:
diff --git a/addons/fetchmail/fetchmail.py b/addons/fetchmail/fetchmail.py
index 8bebe514402..7592061ec36 100644
--- a/addons/fetchmail/fetchmail.py
+++ b/addons/fetchmail/fetchmail.py
@@ -72,7 +72,7 @@ class email_server(osv.osv):
}
def check_duplicate(self, cr, uid, ids):
- # RFC *-* Why this limitation? why not in SQL constraint?
+ # RFC *-* Why this limitation? why not in SQL constraint?
vals = self.read(cr, uid, ids, ['user', 'password'])[0]
cr.execute("select count(id) from email_server where user=%s and password=%s", (vals['user'], vals['password']))
res = cr.fetchone()
@@ -113,7 +113,6 @@ class email_server(osv.osv):
for server in self.browse(cr, uid, ids, context):
logger.notifyChannel('imap', netsvc.LOG_INFO, 'fetchmail start checking for new emails on %s' % (server.name))
context.update({'server_id': server.id, 'server_type': server.type})
- count = 0
try:
if server.type == 'imap':
imap_server = None
diff --git a/addons/hr_timesheet/hr_timesheet_data.xml b/addons/hr_timesheet/hr_timesheet_data.xml
index a19b2c67291..420dcb5a114 100644
--- a/addons/hr_timesheet/hr_timesheet_data.xml
+++ b/addons/hr_timesheet/hr_timesheet_data.xml
@@ -7,21 +7,5 @@
general
-
- 75.0
- 30.0
-
-
- Service on Timesheet
-
- service
-
-
-
-
-
-
-
-
diff --git a/addons/hr_timesheet/hr_timesheet_demo.xml b/addons/hr_timesheet/hr_timesheet_demo.xml
index e7ba5c91342..caaaef12f01 100644
--- a/addons/hr_timesheet/hr_timesheet_demo.xml
+++ b/addons/hr_timesheet/hr_timesheet_demo.xml
@@ -2,6 +2,21 @@
+
+ 75.0
+ 30.0
+
+
+ Service on Timesheet
+
+ service
+
+
+
+
+
+
+
diff --git a/addons/web_uservoice/LICENSE b/addons/web_uservoice/LICENSE
new file mode 100644
index 00000000000..27a1a4cf453
--- /dev/null
+++ b/addons/web_uservoice/LICENSE
@@ -0,0 +1,15 @@
+OpenERP, Open Source Management Solution
+Copyright © 2010 OpenERP SA ().
+
+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 Lice
+along with this program. If not, see .
diff --git a/addons/web_uservoice/__init__.py b/addons/web_uservoice/__init__.py
new file mode 100644
index 00000000000..723a87ab410
--- /dev/null
+++ b/addons/web_uservoice/__init__.py
@@ -0,0 +1,19 @@
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2010 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 .
+#
+##############################################################################
diff --git a/addons/web_uservoice/__openerp__.py b/addons/web_uservoice/__openerp__.py
new file mode 100644
index 00000000000..974da96ef0d
--- /dev/null
+++ b/addons/web_uservoice/__openerp__.py
@@ -0,0 +1,34 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2010 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': 'Add uservoice button in header',
+ 'version': '1.0',
+ 'category': 'Generic Modules/Others',
+ 'description': "",
+ 'author': 'OpenERP s.a.',
+ 'website': 'http://openerp.com',
+ 'depends': ['base'],
+ 'data': [],
+ 'installable': True,
+ 'active': False,
+ 'web': True,
+ 'certificate': '0040452504963885',
+}
diff --git a/addons/web_uservoice/web/__init__.py b/addons/web_uservoice/web/__init__.py
new file mode 100644
index 00000000000..c651b91f353
--- /dev/null
+++ b/addons/web_uservoice/web/__init__.py
@@ -0,0 +1,22 @@
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2010 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 editors
+import controllers
+
diff --git a/addons/web_uservoice/web/controllers.py b/addons/web_uservoice/web/controllers.py
new file mode 100644
index 00000000000..af3730b07b0
--- /dev/null
+++ b/addons/web_uservoice/web/controllers.py
@@ -0,0 +1,68 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2010 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.controllers import SecuredController
+from openerp.utils import rpc
+from openobject.tools import expose
+import cherrypy
+
+class Root(SecuredController):
+
+ _cp_path = "/openerp"
+
+ @expose(mark_only=True)
+ def menu(self, active=None, next=None):
+ try:
+ menu_id = int(active)
+ except (TypeError, ValueError):
+ menu_id = False
+
+ menus = rpc.RPCProxy("ir.ui.menu")
+ ids = menus.search([('parent_id', '=', False)])
+ if next or active:
+ if not menu_id and ids:
+ menu_id = ids[0]
+
+ menu = ''
+ if menu_id:
+ ctx = dict(lang='NO_LANG') # force loading original string even if the english have been translated...
+ menu = menus.read([menu_id], ['name'], ctx)[0]['name'] or ''
+
+ general_forum = 77459
+ forum = {
+ 'accounting': 87921,
+ 'administration': 87935,
+ 'human resources': 87923,
+ 'knowledge': 87927,
+ 'manufacturing': 87915,
+ 'marketing': 87925,
+ 'point of sale': 87929,
+ 'project': 87919,
+ 'purchases': 87911,
+ 'sales': 87907,
+ 'tools': 87933,
+ 'warehouse': 87913,
+ }.get(menu.lower().strip(), general_forum)
+
+ cherrypy.request.uservoice_forum = forum
+ return super(Root, self).menu(active, next)
+
+
diff --git a/addons/web_uservoice/web/editors.py b/addons/web_uservoice/web/editors.py
new file mode 100644
index 00000000000..36086d5d8b6
--- /dev/null
+++ b/addons/web_uservoice/web/editors.py
@@ -0,0 +1,75 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2010 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 openobject.templating
+
+class BaseTemplateEditor(openobject.templating.TemplateEditor):
+ templates = ['/openobject/controllers/templates/base.mako']
+
+ def edit(self, template, template_text):
+ output = super(BaseTemplateEditor, self).edit(template, template_text)
+
+ end_head = output.index('')
+
+ output = output[:end_head] + """
+
+ """ + output[end_head:]
+
+
+ end_body = output.index('