\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2012-09-20 04:43+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
+
+#. module: plugin_thunderbird
+#: field:plugin_thunderbird.installer,pdf_file:0
+msgid "Installation Manual"
+msgstr "Uppsetningarhandbók"
+
+#. module: plugin_thunderbird
+#: field:plugin_thunderbird.installer,description:0
+msgid "Description"
+msgstr "Lýsing"
+
+#. module: plugin_thunderbird
+#: view:plugin_thunderbird.installer:0
+msgid "title"
+msgstr "titill"
+
+#. module: plugin_thunderbird
+#: model:ir.model,name:plugin_thunderbird.model_plugin_thunderbird_installer
+msgid "plugin_thunderbird.installer"
+msgstr "plugin_thunderbird.installer"
+
+#. module: plugin_thunderbird
+#: field:plugin_thunderbird.installer,config_logo:0
+msgid "Image"
+msgstr "Mynd"
+
+#. module: plugin_thunderbird
+#: field:plugin_thunderbird.installer,plugin_file:0
+#: field:plugin_thunderbird.installer,thunderbird:0
+msgid "Thunderbird Plug-in"
+msgstr "Thunderbird viðbót"
+
+#. module: plugin_thunderbird
+#: view:plugin_thunderbird.installer:0
+msgid ""
+"This plug-in allows you to link your email to OpenERP's documents. You can "
+"attach it to any existing one in OpenERP or create a new one."
+msgstr ""
+
+#. module: plugin_thunderbird
+#: help:plugin_thunderbird.installer,thunderbird:0
+msgid ""
+"Allows you to select an object that you would like to add to your email and "
+"its attachments."
+msgstr ""
+"Gerir þér kleift að velja hlut sem þú vilt bæta við póstinn og viðhengi hans."
+
+#. module: plugin_thunderbird
+#: help:plugin_thunderbird.installer,pdf_file:0
+msgid "The documentation file :- how to install Thunderbird Plug-in."
+msgstr "Handbókin :- hvernig á að setja inn Thunderbird viðbót."
+
+#. module: plugin_thunderbird
+#: view:plugin_thunderbird.installer:0
+msgid "_Close"
+msgstr "_Loka"
+
+#. module: plugin_thunderbird
+#: view:plugin_thunderbird.installer:0
+msgid "Installation and Configuration Steps"
+msgstr ""
+
+#. module: plugin_thunderbird
+#: field:plugin_thunderbird.installer,name:0
+#: field:plugin_thunderbird.installer,pdf_name:0
+msgid "File name"
+msgstr "Skrárheiti"
+
+#. module: plugin_thunderbird
+#: help:plugin_thunderbird.installer,plugin_file:0
+msgid ""
+"Thunderbird plug-in file. Save as this file and install this plug-in in "
+"thunderbird."
+msgstr ""
+"Skrá með Thunderbird viðbót. Vistaðu skrána og settu viðbótina inn í "
+"Thunderbird."
+
+#. module: plugin_thunderbird
+#: model:ir.actions.act_window,name:plugin_thunderbird.action_thunderbird_installer
+#: model:ir.ui.menu,name:plugin_thunderbird.menu_base_config_plugins_thunderbird
+#: view:plugin_thunderbird.installer:0
+msgid "Install Thunderbird Plug-In"
+msgstr "Setja inn Thunderbird viðbót"
+
+#~ msgid ""
+#~ "This plug-in allows you to link your e-mail to OpenERP's documents. You can "
+#~ "attach it to any existing one in OpenERP or create a new one."
+#~ msgstr ""
+#~ "Þessi viðbót gerir þér kleift að tengja tölvupóst við OpenERP skjöl. Þú "
+#~ "getur viðhengt póstinn við skjöl sem þegar eru til í OpenERP eða búið til "
+#~ "nýtt."
diff --git a/addons/portal/mail_mail.py b/addons/portal/mail_mail.py
index 72c8469c042..a41c28f15e2 100644
--- a/addons/portal/mail_mail.py
+++ b/addons/portal/mail_mail.py
@@ -43,7 +43,7 @@ class mail_mail_portal(osv.Model):
:param partner: browse_record of the specific recipient partner
"""
if partner:
- portal_ref = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'portal', 'portal')
+ portal_ref = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'portal', 'group_portal')
portal_id = portal_ref and portal_ref[1] or False
url = self._generate_signin_url(cr, uid, partner.id, portal_id, 1234, context=context)
body = tools.append_content_to_html(mail.body_html, url)
diff --git a/addons/portal/portal.py b/addons/portal/portal.py
index 3672d87cf30..13cde80f849 100644
--- a/addons/portal/portal.py
+++ b/addons/portal/portal.py
@@ -20,196 +20,14 @@
##############################################################################
from osv import osv, fields
-from tools.translate import _
-
class portal(osv.osv):
+ """ A portal is simply a group of users with the flag 'is_portal' set to True.
+ The flag 'is_portal' makes a user group usable as a portal.
"""
- A portal is a group of users with specific menu, widgets, and typically
- restricted access rights.
- """
- _name = 'res.portal'
- _description = 'Portal'
- _inherits = {'res.groups': 'group_id'}
-
+ _inherit = 'res.groups'
_columns = {
- 'group_id': fields.many2one('res.groups', required=True, ondelete='cascade',
- string='Group',
- help='The group corresponding to this portal'),
- 'url': fields.char('URL',
- help="The url where portal users can connect to the server"),
- 'home_action_id': fields.many2one('ir.actions.actions',
- string='Home Action',
- help="if set, replaces the standard home action (first screen after loggin) for the portal's users"),
- 'menu_action_id': fields.many2one('ir.actions.act_window', readonly=True,
- # ISSUE: 'ondelete' constraints do not seem effective on this field...
- string='Menu Action',
- help="If set, replaces the standard menu for the portal's users"),
- 'parent_menu_id': fields.many2one('ir.ui.menu', ondelete='restrict',
- string='Parent Menu',
- help='The menu action opens the submenus of this menu item'),
- 'widget_ids': fields.one2many('res.portal.widget', 'portal_id',
- string='Widgets',
- help='Widgets assigned to portal users'),
+ 'is_portal': fields.boolean('Portal', help="If checked, this group is usable as a portal."),
}
- def copy(self, cr, uid, id, values, context=None):
- """ override copy(): menu_action_id must be different """
- values['menu_action_id'] = None
- return super(portal, self).copy(cr, uid, id, values, context)
-
- def create(self, cr, uid, values, context=None):
- """ extend create() to assign the portal menu to users """
- if context is None:
- context = {}
-
- # create portal (admin should not be included)
- context['noadmin'] = True
- portal_id = super(portal, self).create(cr, uid, values, context)
-
- # assign menu action and widgets to users
- if values.get('users') or values.get('menu_action_id'):
- self._assign_menu(cr, uid, [portal_id], context)
- if values.get('users') or values.get('widget_ids'):
- self._assign_widgets(cr, uid, [portal_id], context)
-
- return portal_id
-
- def write(self, cr, uid, ids, values, context=None):
- """ extend write() to reflect changes on users """
- # first apply portal changes
- super(portal, self).write(cr, uid, ids, values, context)
-
- # assign menu action and widgets to users
- if values.get('users') or values.get('menu_action_id'):
- self._assign_menu(cr, uid, ids, context)
- if values.get('users') or values.get('widget_ids'):
- self._assign_widgets(cr, uid, ids, context)
-
- # if parent_menu_id has changed, apply the change on menu_action_id
- if 'parent_menu_id' in values:
- act_window_obj = self.pool.get('ir.actions.act_window')
- portals = self.browse(cr, uid, ids, context)
- action_ids = [p.menu_action_id.id for p in portals if p.menu_action_id]
- if action_ids:
- action_values = {'domain': [('parent_id', '=', values['parent_menu_id'])]}
- act_window_obj.write(cr, uid, action_ids, action_values, context)
-
- return True
-
- def _assign_menu(self, cr, uid, ids, context=None):
- """ assign portal_menu_settings to users of portals (ids) """
- user_obj = self.pool.get('res.users')
- for p in self.browse(cr, uid, ids, context):
- # user menu action = portal menu action if set in portal
- if p.menu_action_id:
- user_ids = [u.id for u in p.users if u.id != 1]
- user_values = {'menu_id': p.menu_action_id.id}
- user_obj.write(cr, uid, user_ids, user_values, context)
-
- def _assign_widgets(self, cr, uid, ids, context=None):
- """ assign portal widgets to users of portals (ids) """
- widget_user_obj = self.pool.get('res.widget.user')
- for p in self.browse(cr, uid, ids, context):
- for w in p.widget_ids:
- values = {'sequence': w.sequence, 'widget_id': w.widget_id.id}
- for u in p.users:
- if u.id == 1: continue
- values['user_id'] = u.id
- widget_user_obj.create(cr, uid, values, context)
-
- def _res_xml_id(self, cr, uid, module, xml_id):
- """ return the resource id associated to the given xml_id """
- data_obj = self.pool.get('ir.model.data')
- data_id = data_obj._get_id(cr, uid, module, xml_id)
- return data_obj.browse(cr, uid, data_id).res_id
-
-portal()
-
-
-
-class portal_override_menu(osv.osv):
- """
- Extend res.portal with a boolean field 'Override Users Menu', that
- triggers the creation or removal of menu_action_id
- """
- _name = 'res.portal'
- _inherit = 'res.portal'
-
- def _get_override_menu(self, cr, uid, ids, field_name, arg, context=None):
- assert field_name == 'override_menu'
- result = {}
- for p in self.browse(cr, uid, ids, context):
- result[p.id] = bool(p.menu_action_id)
- return result
-
- def _set_override_menu(self, cr, uid, id, field_name, field_value, arg, context=None):
- assert field_name == 'override_menu'
- if field_value:
- self.create_menu_action(cr, uid, id, context)
- else:
- self.write(cr, uid, [id], {'menu_action_id': False}, context)
-
- def create_menu_action(self, cr, uid, id, context=None):
- """ create, if necessary, a menu action that opens the menu items below
- parent_menu_id """
- p = self.browse(cr, uid, id, context)
- if not p.menu_action_id:
- actions_obj = self.pool.get('ir.actions.act_window')
- parent_id = p.parent_menu_id.id if p.parent_menu_id else False
- action_values = {
- 'name': _('%s Menu') % p.name,
- 'type': 'ir.actions.act_window',
- 'usage': 'menu',
- 'res_model': 'ir.ui.menu',
- 'view_type': 'tree',
- 'view_id': self._res_xml_id(cr, uid, 'base', 'view_menu'),
- 'domain': [('parent_id', '=', parent_id)],
- }
- action_id = actions_obj.create(cr, uid, action_values, context)
- self.write(cr, uid, [id], {'menu_action_id': action_id}, context)
-
- _columns = {
- 'override_menu': fields.function(
- _get_override_menu, fnct_inv=_set_override_menu,
- type='boolean', string='Override Menu Action of Users',
- help='Enable this option to override the Menu Action of portal users'),
- }
-
-portal_override_menu()
-
-
-
-class portal_widget(osv.osv):
- """
- Similar to res.widget.user (res_widget.py), but with a portal instead.
- New users in a portal are assigned the portal's widgets.
- """
- _name='res.portal.widget'
- _description = 'Portal Widgets'
- _order = 'sequence'
- _columns = {
- 'sequence': fields.integer('Sequence'),
- 'portal_id': fields.many2one('res.portal', select=1, ondelete='cascade',
- string='Portal'),
- 'widget_id': fields.many2one('res.widget', required=True, ondelete='cascade',
- string='Widget'),
- }
-
- def create(self, cr, uid, values, context=None):
- domain = [('portal_id', '=', values.get('portal_id')),
- ('widget_id', '=', values.get('widget_id'))]
- existing = self.search(cr, uid, domain, context=context)
- if existing:
- res = existing[0]
- else:
- res = super(portal_widget, self).create(cr, uid, values, context=context)
- return res
-
-portal_widget()
-
-
-
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/portal/portal_data.xml b/addons/portal/portal_data.xml
index eb06ca656d6..a980552a854 100644
--- a/addons/portal/portal_data.xml
+++ b/addons/portal/portal_data.xml
@@ -2,14 +2,6 @@
-
- Portal
-
-
-
-
-
-
Company's news
diff --git a/addons/portal/portal_demo.xml b/addons/portal/portal_demo.xml
index 1ace02f3d7d..a8727b99556 100644
--- a/addons/portal/portal_demo.xml
+++ b/addons/portal/portal_demo.xml
@@ -13,13 +13,13 @@
-
+
- Our first company's blogpost !
+ Our company's first blog-post !
mail.group
@@ -21,71 +21,31 @@
-
-
- Portal List
- res.portal
+
+
+ Group Search
+ res.groups
+
-
-
-
+
+
+
+
+
-
-
+
+
Portal Form
- res.portal
+ res.groups
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
- Portals
- res.portal
- form
- tree,form
-
- {'form_view_ref': 'portal.portal_form_view'}
-
-
- Click to create a new portal.
-
- A portal helps defining specific views and rules for a group of
- users (the portal group). A portal menu, widgets and specific
- groups may be assigned to the portal's users.
-
-
-
-
-
-
-
-
diff --git a/addons/portal/security/ir.model.access.csv b/addons/portal/security/ir.model.access.csv
index 56b3ae5f269..2d7a17e0016 100644
--- a/addons/portal/security/ir.model.access.csv
+++ b/addons/portal/security/ir.model.access.csv
@@ -1,12 +1,8 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
-access_all,access.portal.all,model_res_portal,,1,0,0,0
-access_widget_all,access.portal.widget.all,model_res_portal_widget,,1,0,0,0
-access_manager,access.portal.manager,model_res_portal,group_portal_manager,1,1,1,1
-access_widget_manager,access.portal.widget.manager,model_res_portal_widget,group_portal_manager,1,1,1,1
-access_mail_message,mail.message,mail.model_mail_message,group_portal_member,1,0,1,1
-access_mail_message_all,mail.message.all,mail.model_mail_message,group_portal_member,1,0,0,0
-access_mail_thread,mail.thread,mail.model_mail_thread,group_portal_member,1,0,0,0
-access_mail_followers,mail.followers,mail.model_mail_followers,group_portal_member,1,0,1,1
-access_mail_notification,mail.notification,mail.model_mail_notification,group_portal_member,1,0,1,0
-access_mail_group,mail.group,mail.model_mail_group,group_portal_member,1,0,0,0
-access_mail_alias,mail.alias,mail.model_mail_alias,group_portal_member,1,0,0,0
+access_mail_message,mail.message,mail.model_mail_message,group_portal,1,0,1,1
+access_mail_message_all,mail.message.all,mail.model_mail_message,group_portal,1,0,0,0
+access_mail_thread,mail.thread,mail.model_mail_thread,group_portal,1,0,0,0
+access_mail_followers,mail.followers,mail.model_mail_followers,group_portal,1,0,1,1
+access_mail_notification,mail.notification,mail.model_mail_notification,group_portal,1,0,1,0
+access_mail_group,mail.group,mail.model_mail_group,group_portal,1,0,0,0
+access_mail_alias,mail.alias,mail.model_mail_alias,group_portal,1,0,0,0
diff --git a/addons/portal/security/portal_security.xml b/addons/portal/security/portal_security.xml
index 4a493204d67..ee0af785599 100644
--- a/addons/portal/security/portal_security.xml
+++ b/addons/portal/security/portal_security.xml
@@ -2,31 +2,14 @@
-
-
- Portal Member
- Portal members can access information through the portal menu. Also, they are chrooted in this specific menu.
-
-
-
+
+
Portal
-
- 25
-
-
-
-
- Officer
- Portal officers can create new portal users with the portal wizard.
-
-
-
-
- Manager
- Portal managers have access to the portal definitions, and can easily configure the users, access rights and menus of portal users.
-
-
-
+ Portal members have specific access rights (such as record rules and restricted menus).
+ They usually do not belong to the usual OpenERP groups.
+
+
+
diff --git a/addons/portal/tests/test_portal.py b/addons/portal/tests/test_portal.py
index 2c301228859..5e992fa06ea 100644
--- a/addons/portal/tests/test_portal.py
+++ b/addons/portal/tests/test_portal.py
@@ -42,7 +42,7 @@ class test_portal(test_mail.TestMailMockups):
user_admin = self.res_users.browse(cr, uid, uid)
self.mail_invite = self.registry('mail.wizard.invite')
base_url = self.registry('ir.config_parameter').get_param(cr, uid, 'web.base.url', default='')
- portal_ref = self.registry('ir.model.data').get_object_reference(cr, uid, 'portal', 'portal')
+ portal_ref = self.registry('ir.model.data').get_object_reference(cr, uid, 'portal', 'group_portal')
portal_id = portal_ref and portal_ref[1] or False
# 0 - Admin
diff --git a/addons/portal/wizard/portal_wizard.py b/addons/portal/wizard/portal_wizard.py
index 85f6566eba6..3cc706c2129 100644
--- a/addons/portal/wizard/portal_wizard.py
+++ b/addons/portal/wizard/portal_wizard.py
@@ -23,33 +23,43 @@ import logging
import random
from osv import osv, fields
-from tools.misc import email_re
from tools.translate import _
+from tools.misc import email_re
+from openerp import SUPERUSER_ID
from base.res.res_partner import _lang_get
_logger = logging.getLogger(__name__)
-
-# welcome email sent to new portal users (note that calling tools.translate._
-# has no effect except exporting those strings for translation)
+# welcome/goodbye email sent to portal users
+# (note that calling '_' has no effect except exporting those strings for translation)
WELCOME_EMAIL_SUBJECT = _("Your OpenERP account at %(company)s")
WELCOME_EMAIL_BODY = _("""Dear %(name)s,
-You have been created an OpenERP account at %(url)s.
+You have been given access to %(portal)s at %(url)s.
Your login account data is:
Database: %(db)s
User: %(login)s
Password: %(password)s
-%(message)s
+%(welcome_message)s
--
OpenERP - Open Source Business Applications
http://www.openerp.com
""")
-ROOT_UID = 1
+GOODBYE_EMAIL_SUBJECT = _("Your OpenERP account at %(company)s")
+GOODBYE_EMAIL_BODY = _("""Dear %(name)s,
+
+Your access to %(portal)s has been withdrawn.
+
+%(goodbye_message)s
+
+--
+OpenERP - Open Source Business Applications
+http://www.openerp.com
+""")
# character sets for passwords, excluding 0, O, o, 1, I, l
_PASSU = 'ABCDEFGHIJKLMNPQRSTUVWXYZ'
@@ -71,169 +81,173 @@ def extract_email(email):
class wizard(osv.osv_memory):
"""
- A wizard to create portal users from instances of 'res.partner'. The purpose
- is to provide an OpenERP database access to customers or suppliers.
+ A wizard to manage the creation/removal of portal users.
"""
- _name = 'res.portal.wizard'
- _description = 'Portal Wizard'
-
+ _name = 'portal.wizard'
+ _description = 'Portal Access Management'
+
_columns = {
- 'portal_id': fields.many2one('res.portal', required=True,
- string='Portal',
- help="The portal in which new users must be added"),
- 'user_ids': fields.one2many('res.portal.wizard.user', 'wizard_id',
- string='Users'),
- 'message': fields.text(string='Invitation message',
- help="This text is included in the welcome email sent to the users"),
+ 'portal_id': fields.many2one('res.groups', domain=[('is_portal', '=', True)], required=True,
+ string='Portal', help="The portal that users can be added in or removed from."),
+ 'user_ids': fields.one2many('portal.wizard.user', 'wizard_id', string='Users'),
+ 'welcome_message': fields.text(string='Invitation Message',
+ help="This text is included in the email sent to new users of the portal."),
+ 'goodbye_message': fields.text(string='Withdrawal Message',
+ help="This text is included in the email sent to users withdrawn from the portal."),
}
- def _default_user_ids(self, cr, uid, context):
- """ determine default user_ids from the active records """
- def create_user_from_address(address):
- if isinstance(address, int):
- res_partner_obj = self.pool.get('res.partner')
- address = res_partner_obj.browse(cr, uid, address, context=context)
- lang = address.id and address.lang or 'en_US'
- partner_id = address.id
-
- else:
- lang = address.parent_id and address.parent_id.lang or 'en_US'
- partner_id = address.parent_id and address.parent_id.id
-
- return{
- 'name': address.name,
- 'email': extract_email(address.email),
- 'lang': lang,
- 'partner_id': partner_id,
- }
-
- user_ids = []
- if context.get('active_model') == 'res.partner':
- partner_obj = self.pool.get('res.partner')
- partner_ids = context.get('active_ids', [])
- partners = partner_obj.browse(cr, uid, partner_ids, context)
- for p in partners:
- # add one user per contact, or one user if no contact
- if p.child_ids:
- user_ids.extend(map(create_user_from_address, p.child_ids))
- elif p.is_company == False and p.customer == True:
- user_ids.extend(map(create_user_from_address, [p.id]))
- else:
- user_ids.append({'lang': p.lang or 'en_US', 'parent_id': p.id})
-
- return user_ids
+ def _default_portal(self, cr, uid, context):
+ portal_ids = self.pool.get('res.groups').search(cr, uid, [('is_portal', '=', True)])
+ return portal_ids and portal_ids[0] or False
_defaults = {
- 'user_ids': _default_user_ids
+ 'portal_id': _default_portal,
}
- def action_create(self, cr, uid, ids, context=None):
- """ create new users in portal(s), and notify them by email """
- # we copy the context to change the language for translating emails
- context0 = context or {}
- context0['noshortcut'] = True # prevent shortcut creation
- context = context0.copy()
-
- user_obj = self.pool.get('res.users')
- user = user_obj.browse(cr, ROOT_UID, uid, context0)
- if not user.email:
- raise osv.except_osv(_('Email required'),
- _('You must have an email address in your User Preferences'
- ' to send emails.'))
-
- portal_obj = self.pool.get('res.portal')
- for wiz in self.browse(cr, uid, ids, context):
- # determine existing users
- login_cond = [('login', 'in', [u.email for u in wiz.user_ids])]
- existing_uids = user_obj.search(cr, ROOT_UID, login_cond)
- existing_users = user_obj.browse(cr, ROOT_UID, existing_uids)
- existing_logins = [u.login for u in existing_users]
-
- # create new users in portal (skip existing logins)
- new_users_data = [ {
- 'name': u.name,
- 'login': u.email,
- 'password': random_password(),
- 'email': u.email,
- 'lang': u.lang,
- 'share': True,
- 'action_id': wiz.portal_id.home_action_id and wiz.portal_id.home_action_id.id or False,
- 'partner_id': u.partner_id and u.partner_id.id,
- 'groups_id': [(6, 0, [])],
- } for u in wiz.user_ids if u.email not in existing_logins ]
- portal_obj.write(cr, ROOT_UID, [wiz.portal_id.id],
- {'users': [(0, 0, data) for data in new_users_data]}, context0)
-
- # send email to all users (translated in their language)
- data = {
- 'company': user.company_id.name,
- 'message': wiz.message or "",
- 'url': wiz.portal_id.url or _("(missing url)"),
- 'db': cr.dbname,
- }
- mail_mail_obj = self.pool.get('mail.mail')
- dest_uids = user_obj.search(cr, ROOT_UID, login_cond)
- dest_users = user_obj.browse(cr, ROOT_UID, dest_uids)
- for dest_user in dest_users:
- context['lang'] = dest_user.lang
- data['login'] = dest_user.login
- data['password'] = dest_user.password
- data['name'] = dest_user.name
-
- email_from = user.email
- email_to = dest_user.email
- subject = _(WELCOME_EMAIL_SUBJECT) % data
- body = _(WELCOME_EMAIL_BODY) % data
- mail_id = mail_mail_obj.create(cr, uid, {
- 'email_from': email_from ,
- 'email_to': email_to,
- 'subject': subject,
- 'state': 'outgoing',
- 'body_html': '%s
' % body}, context=context)
-
+ def onchange_portal_id(self, cr, uid, ids, portal_id, context=None):
+ # for each partner, determine corresponding portal.wizard.user records
+ res_partner = self.pool.get('res.partner')
+ partner_ids = context and context.get('active_ids') or []
+ contact_ids = set()
+ user_changes = []
+ for partner in res_partner.browse(cr, SUPERUSER_ID, partner_ids, context):
+ for contact in (partner.child_ids or [partner]):
+ # make sure that each contact appears at most once in the list
+ if contact.id not in contact_ids:
+ contact_ids.add(contact.id)
+ in_portal = False
+ if contact.user_ids:
+ in_portal = portal_id in [g.id for g in contact.user_ids[0].groups_id]
+ user_changes.append((0, 0, {
+ 'partner_id': contact.id,
+ 'email': contact.email,
+ 'in_portal': in_portal,
+ }))
+ return {'value': {'user_ids': user_changes}}
+
+ def action_apply(self, cr, uid, ids, context=None):
+ wizard = self.browse(cr, uid, ids[0], context)
+ portal_user_ids = [user.id for user in wizard.user_ids]
+ self.pool.get('portal.wizard.user').action_apply(cr, uid, portal_user_ids, context)
return {'type': 'ir.actions.act_window_close'}
-wizard()
-
-
-
class wizard_user(osv.osv_memory):
"""
A model to configure users in the portal wizard.
"""
- _name = 'res.portal.wizard.user'
+ _name = 'portal.wizard.user'
_description = 'Portal User Config'
_columns = {
- 'wizard_id': fields.many2one('res.portal.wizard', required=True,
- string='Wizard'),
- 'name': fields.char(size=64, required=True,
- string='User Name',
- help="The user's real name"),
- 'email': fields.char(size=64, required=True,
- string='Email',
- help="Will be used as user login. "
- "Also necessary to send the account information to new users"),
- 'lang': fields.selection(_lang_get, required=True,
- string='Language',
- help="The language for the user's user interface"),
- 'partner_id': fields.many2one('res.partner',
- string='Partner'),
+ 'wizard_id': fields.many2one('portal.wizard', string='Wizard', required=True),
+ 'partner_id': fields.many2one('res.partner', string='Contact', required=True, readonly=True),
+ 'email': fields.char(size=240, string='Email'),
+ 'in_portal': fields.boolean('In Portal'),
}
- def _check_email(self, cr, uid, ids):
- """ check syntax of email address """
- for wuser in self.browse(cr, uid, ids):
- if not email_re.match(wuser.email): return False
- return True
+ def create(self, cr, uid, values, context=None):
+ """ overridden to update the partner's email (if necessary) """
+ id = super(wizard_user, self).create(cr, uid, values, context)
+ wuser = self.browse(cr, uid, id, context)
+ if wuser.partner_id.email != wuser.email:
+ wuser.partner_id.write({'email': wuser.email})
+ return id
- _constraints = [
- (_check_email, 'Invalid email address', ['email']),
- ]
+ def action_apply(self, cr, uid, ids, context=None):
+ res_users = self.pool.get('res.users')
+ for wizard_user in self.browse(cr, SUPERUSER_ID, ids, context):
+ portal = wizard_user.wizard_id.portal_id
+ user = self._retrieve_user(cr, SUPERUSER_ID, wizard_user, context)
+ if wizard_user.in_portal:
+ # create a user if necessary, and make sure it is in the portal group
+ if not user:
+ user = self._create_user(cr, SUPERUSER_ID, wizard_user, context)
+ if (not user.active) or (portal not in user.groups_id):
+ user.write({'active': True, 'groups_id': [(4, portal.id)]})
+ wizard_user = self.browse(cr, SUPERUSER_ID, wizard_user.id, context)
+ self._send_email(cr, uid, wizard_user, context)
+ else:
+ # remove the user (if it exists) from the portal group
+ if user and (portal in user.groups_id):
+ # if user belongs to portal only, deactivate it
+ if len(user.groups_id) <= 1:
+ user.write({'groups_id': [(3, portal.id)], 'active': False})
+ else:
+ user.write({'groups_id': [(3, portal.id)]})
+ wizard_user = self.browse(cr, SUPERUSER_ID, wizard_user.id, context)
+ self._send_email(cr, uid, wizard_user, context)
-wizard_user()
+ def _retrieve_user(self, cr, uid, wizard_user, context=None):
+ """ retrieve the (possibly inactive) user corresponding to wizard_user.partner_id
+ @param wizard_user: browse record of model portal.wizard.user
+ @return: browse record of model res.users
+ """
+ if wizard_user.partner_id.user_ids:
+ return wizard_user.partner_id.user_ids[0]
+ # the user may be inactive, search for it
+ res_users = self.pool.get('res.users')
+ domain = [('partner_id', '=', wizard_user.partner_id.id), ('active', '=', False)]
+ user_ids = res_users.search(cr, uid, domain)
+ return user_ids and res_users.browse(cr, uid, user_ids[0], context) or False
+ def _create_user(self, cr, uid, wizard_user, context=None):
+ """ create a new user for wizard_user.partner_id
+ @param wizard_user: browse record of model portal.wizard.user
+ @return: browse record of model res.users
+ """
+ res_users = self.pool.get('res.users')
+ create_context = dict(context or {}, noshortcut=True) # to prevent shortcut creation
+ values = {
+ 'login': extract_email(wizard_user.email),
+ 'password': random_password(),
+ 'partner_id': wizard_user.partner_id.id,
+ 'groups_id': [(6, 0, [])],
+ 'share': True,
+ }
+ user_id = res_users.create(cr, uid, values, context=create_context)
+ return res_users.browse(cr, uid, user_id, context)
+ def _send_email(self, cr, uid, wizard_user, context=None):
+ """ send notification email to a new/former portal user
+ @param wizard_user: browse record of model portal.wizard.user
+ @return: the id of the created mail.mail record
+ """
+ this_context = context
+ this_user = self.pool.get('res.users').browse(cr, SUPERUSER_ID, uid, context)
+ if not this_user.email:
+ raise osv.except_osv(_('Email required'),
+ _('You must have an email address in your User Preferences to send emails.'))
+ # determine subject and body in the portal user's language
+ url = self.pool.get('ir.config_parameter').get_param(cr, SUPERUSER_ID, 'web.base.url', context=this_context)
+ user = self._retrieve_user(cr, SUPERUSER_ID, wizard_user, context)
+ context = dict(this_context or {}, lang=user.lang)
+ data = {
+ 'company': this_user.company_id.name,
+ 'portal': wizard_user.wizard_id.portal_id.name,
+ 'welcome_message': wizard_user.wizard_id.welcome_message or "",
+ 'goodbye_message': wizard_user.wizard_id.goodbye_message or "",
+ 'url': url or _("(missing url)"),
+ 'db': cr.dbname,
+ 'login': user.login,
+ 'password': user.password,
+ 'name': user.name
+ }
+ if wizard_user.in_portal:
+ subject = _(WELCOME_EMAIL_SUBJECT) % data
+ body = _(WELCOME_EMAIL_BODY) % data
+ else:
+ subject = _(GOODBYE_EMAIL_SUBJECT) % data
+ body = _(GOODBYE_EMAIL_BODY) % data
+
+ mail_mail = self.pool.get('mail.mail')
+ mail_values = {
+ 'email_from': this_user.email,
+ 'email_to': user.email,
+ 'subject': subject,
+ 'body_html': '%s
' % body,
+ 'state': 'outgoing',
+ }
+ return mail_mail.create(cr, uid, mail_values, context=this_context)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/portal/wizard/portal_wizard_view.xml b/addons/portal/wizard/portal_wizard_view.xml
index f3cd5c98bb4..c8e3f30b128 100644
--- a/addons/portal/wizard/portal_wizard_view.xml
+++ b/addons/portal/wizard/portal_wizard_view.xml
@@ -3,28 +3,34 @@
+ groups="base.group_partner_manager"/>
- Add Portal Access
- res.portal.wizard
+ Portal Access Management
+ portal.wizard
-
diff --git a/addons/portal/wizard/share_wizard.py b/addons/portal/wizard/share_wizard.py
index ca950a61b08..b1b6e980dec 100644
--- a/addons/portal/wizard/share_wizard.py
+++ b/addons/portal/wizard/share_wizard.py
@@ -44,9 +44,6 @@ class share_wizard_portal(osv.TransientModel):
'group_ids': fields.many2many('res.groups', 'share_wizard_res_group_rel', 'share_id', 'group_id', 'Existing groups', domain=[('share', '=', False)]),
}
- def is_portal_manager(self, cr, uid, context=None):
- return self.has_group(cr, uid, module='portal', group_xml_id='group_portal_manager', context=context)
-
def _check_preconditions(self, cr, uid, wizard_data, context=None):
if wizard_data.user_type == 'existing':
self._assert(wizard_data.user_ids,
@@ -122,16 +119,14 @@ class share_wizard_portal(osv.TransientModel):
# alter the rules of the groups so they can see the shared data
if wizard_data.group_ids:
# get the list of portals and the related groups to install their menus.
- Portals = self.pool.get('res.portal')
- all_portals = Portals.browse(cr, UID_ROOT, Portals.search(cr, UID_ROOT, [])) #no context!
- all_portal_group_ids = [p.group_id.id for p in all_portals]
+ res_groups = self.pool.get('res.groups')
+ all_portal_group_ids = res_groups.search(cr, UID_ROOT, [('is_portal', '=', True)])
# populate result lines with the users of each group and
# setup the menu for portal groups
for group in wizard_data.group_ids:
if group.id in all_portal_group_ids:
- portal = all_portals[all_portal_group_ids.index(group.id)]
- self._create_shared_data_menu(cr, uid, wizard_data, portal, context=context)
+ self._create_shared_data_menu(cr, uid, wizard_data, group.id, context=context)
for user in group.users:
new_line = {'user_id': user.id,
diff --git a/addons/portal/wizard/share_wizard_view.xml b/addons/portal/wizard/share_wizard_view.xml
index 72ae857eaaf..065a7aa317e 100644
--- a/addons/portal/wizard/share_wizard_view.xml
+++ b/addons/portal/wizard/share_wizard_view.xml
@@ -36,12 +36,12 @@
-
+
-
-
+
+
diff --git a/addons/portal_claim/security/ir.model.access.csv b/addons/portal_claim/security/ir.model.access.csv
index 554c66cc998..ab2a2f66770 100644
--- a/addons/portal_claim/security/ir.model.access.csv
+++ b/addons/portal_claim/security/ir.model.access.csv
@@ -1,3 +1,3 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
-access_crm_claim,crm.claim,crm_claim.model_crm_claim,portal.group_portal_member,1,0,0,0
-access_crm_claim_stage,crm.claim.stage,crm_claim.model_crm_claim_stage,portal.group_portal_member,1,0,0,0
+access_crm_claim,crm.claim,crm_claim.model_crm_claim,portal.group_portal,1,0,0,0
+access_crm_claim_stage,crm.claim.stage,crm_claim.model_crm_claim_stage,portal.group_portal,1,0,0,0
diff --git a/addons/portal_claim/security/portal_security.xml b/addons/portal_claim/security/portal_security.xml
index e902bd043ad..9fc47c4cfb0 100644
--- a/addons/portal_claim/security/portal_security.xml
+++ b/addons/portal_claim/security/portal_security.xml
@@ -6,7 +6,7 @@
Portal Personal Claims
[('partner_id','child_of',user.partner_id.id)]
-
+
diff --git a/addons/portal_event/security/ir.model.access.csv b/addons/portal_event/security/ir.model.access.csv
index b418acbb9c4..7418b08bb4b 100644
--- a/addons/portal_event/security/ir.model.access.csv
+++ b/addons/portal_event/security/ir.model.access.csv
@@ -1,3 +1,3 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
-access_event,event,event.model_event_event,portal.group_portal_member,1,0,0,0
-access_registration,registration,event.model_event_registration,portal.group_portal_member,1,0,0,0
+access_event,event,event.model_event_event,portal.group_portal,1,0,0,0
+access_registration,registration,event.model_event_registration,portal.group_portal,1,0,0,0
diff --git a/addons/portal_event/security/portal_security.xml b/addons/portal_event/security/portal_security.xml
index 6a3ed0ac786..74b2372c147 100644
--- a/addons/portal_event/security/portal_security.xml
+++ b/addons/portal_event/security/portal_security.xml
@@ -6,14 +6,14 @@
Portal Visible Events
[('visibility', '=', 'public')]
-
+
Portal Personal Registrations
[('partner_id','child_of',user.partner_id.id)]
-
+
diff --git a/addons/portal_hr_employees/security/ir.model.access.csv b/addons/portal_hr_employees/security/ir.model.access.csv
index 6131f49d749..d18aeb90e1c 100644
--- a/addons/portal_hr_employees/security/ir.model.access.csv
+++ b/addons/portal_hr_employees/security/ir.model.access.csv
@@ -1,6 +1,6 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
-access_hr_employee_user,hr.employee user,hr.model_hr_employee,portal.group_portal_member,1,0,0,0
-access_res_partner,res.partner,base.model_res_partner,portal.group_portal_member,1,0,0,0
-access_res_partner_address,res.partner_address,base.model_res_partner_address,portal.group_portal_member,1,0,0,0
-access_res_partner_category,res.partner_category,base.model_res_partner_category,portal.group_portal_member,1,0,0,0
-access_res_partner_title,res.partner_title,base.model_res_partner_title,portal.group_portal_member,1,0,0,0
+access_hr_employee_user,hr.employee user,hr.model_hr_employee,portal.group_portal,1,0,0,0
+access_res_partner,res.partner,base.model_res_partner,portal.group_portal,1,0,0,0
+access_res_partner_address,res.partner_address,base.model_res_partner_address,portal.group_portal,1,0,0,0
+access_res_partner_category,res.partner_category,base.model_res_partner_category,portal.group_portal,1,0,0,0
+access_res_partner_title,res.partner_title,base.model_res_partner_title,portal.group_portal,1,0,0,0
diff --git a/addons/portal_project/security/ir.model.access.csv b/addons/portal_project/security/ir.model.access.csv
index dceca5ba8bb..85463868ee1 100644
--- a/addons/portal_project/security/ir.model.access.csv
+++ b/addons/portal_project/security/ir.model.access.csv
@@ -1,5 +1,5 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
-access_task,tasks,project.model_project_task,portal.group_portal_member,1,0,0,0
-access_task_type,task_type,project.model_project_task_type,portal.group_portal_member,1,0,0,0
-access_task_work,task_work,project.model_project_task_work,portal.group_portal_member,1,0,0,0
-access_project_category,project_category,project.model_project_category,portal.group_portal_member,1,0,0,0
+access_task,tasks,project.model_project_task,portal.group_portal,1,0,0,0
+access_task_type,task_type,project.model_project_task_type,portal.group_portal,1,0,0,0
+access_task_work,task_work,project.model_project_task_work,portal.group_portal,1,0,0,0
+access_project_category,project_category,project.model_project_category,portal.group_portal,1,0,0,0
diff --git a/addons/portal_project/security/portal_security.xml b/addons/portal_project/security/portal_security.xml
index b995c79bbbc..b9d37cec099 100644
--- a/addons/portal_project/security/portal_security.xml
+++ b/addons/portal_project/security/portal_security.xml
@@ -6,7 +6,7 @@
Portal Personal Task
[('partner_id','child_of',user.partner_id.id)]
-
+
diff --git a/addons/portal_project_issue/portal_project_issue_view.xml b/addons/portal_project_issue/portal_project_issue_view.xml
index b4bff8a158a..6502d92b4dc 100644
--- a/addons/portal_project_issue/portal_project_issue_view.xml
+++ b/addons/portal_project_issue/portal_project_issue_view.xml
@@ -28,6 +28,7 @@
+
Creation:
diff --git a/addons/portal_project_issue/security/ir.model.access.csv b/addons/portal_project_issue/security/ir.model.access.csv
index 5257f9b6d02..80a38366b51 100644
--- a/addons/portal_project_issue/security/ir.model.access.csv
+++ b/addons/portal_project_issue/security/ir.model.access.csv
@@ -1,3 +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,portal.group_portal_member,1,0,0,0
-access_case_section,crm_case_section,crm.model_crm_case_section,portal.group_portal_member,1,0,0,0
+access_issues,project_issue,project_issue.model_project_issue,portal.group_portal,1,0,0,0
+access_case_section,crm_case_section,crm.model_crm_case_section,portal.group_portal,1,0,0,0
diff --git a/addons/portal_project_issue/security/portal_security.xml b/addons/portal_project_issue/security/portal_security.xml
index 4ef8da5e4b6..358b5e6a0ad 100644
--- a/addons/portal_project_issue/security/portal_security.xml
+++ b/addons/portal_project_issue/security/portal_security.xml
@@ -6,7 +6,7 @@
Portal Personal Issues
[('partner_id','child_of',user.partner_id.id)]
-
+
diff --git a/addons/portal_sale/security/ir.model.access.csv b/addons/portal_sale/security/ir.model.access.csv
index 32266499af7..751c0b9baff 100644
--- a/addons/portal_sale/security/ir.model.access.csv
+++ b/addons/portal_sale/security/ir.model.access.csv
@@ -1,33 +1,33 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
-access_sale_order,sale.order,sale.model_sale_order,portal.group_portal_member,1,0,0,0
-access_sale_order_line,sale.order.line,sale.model_sale_order_line,portal.group_portal_member,1,0,0,0
-access_stock_picking,stock.picking,stock.model_stock_picking,portal.group_portal_member,1,0,0,0
-access_stock_picking.out,stock.picking.out,stock.model_stock_picking_out,portal.group_portal_member,1,0,0,0
-access_stock_move,stock.move,stock.model_stock_move,portal.group_portal_member,1,0,0,0
-access_stock_warehouse_orderpoint,stock.warehouse.orderpoint,procurement.model_stock_warehouse_orderpoint,portal.group_portal_member,1,0,0,0
-access_account_invoice,account.invoice,account.model_account_invoice,portal.group_portal_member,1,0,0,0
-access_account_invoice_tax,account.invoice.tax,account.model_account_invoice_tax,portal.group_portal_member,1,0,0,0
-access_account_invoice_line,account.invoice.line,account.model_account_invoice_line,portal.group_portal_member,1,0,0,0
-access_account_journal,account.journal,account.model_account_journal,portal.group_portal_member,1,0,0,0
-access_account_voucher,account.voucher,account_voucher.model_account_voucher,portal.group_portal_member,1,0,0,0
-access_account_voucher_line,account.voucher.line,account_voucher.model_account_voucher_line,portal.group_portal_member,1,0,0,0
-access_account_move,account.move,account.model_account_move,portal.group_portal_member,1,0,0,0
-access_account_move_line,account.move.line,account.model_account_move_line,portal.group_portal_member,1,0,0,0
-access_account_move_reconcile,account.move.reconcile,account.model_account_move_reconcile,portal.group_portal_member,1,0,0,0
-access_account_fiscalyear,account.sequence.fiscalyear,account.model_account_sequence_fiscalyear,portal.group_portal_member,1,0,0,0
-access_sale_shop,sale.shop,sale.model_sale_shop,portal.group_portal_member,1,0,0,0
-access_product_list,product.pricelist,product.model_product_pricelist,portal.group_portal_member,1,0,0,0
-access_product,product.product,product.model_product_product,portal.group_portal_member,1,0,0,0
-access_res_partner,res.partner,base.model_res_partner,portal.group_portal_member,1,0,0,0
-access_product_uom,product.uom,product.model_product_uom,portal.group_portal_member,1,0,0,0
-access_account_tax,account.tax,account.model_account_tax,portal.group_portal_member,1,0,0,0
-access_mrp_property,mrp.property,procurement.model_mrp_property,portal.group_portal_member,1,0,0,0
-access_product_template,product.template,product.model_product_template,portal.group_portal_member,1,0,0,0
-access_stock_warehouse,stock.warehouse,stock.model_stock_warehouse,portal.group_portal_member,1,0,0,0
-access_stock_location,stock.location,stock.model_stock_location,portal.group_portal_member,1,0,0,0
-access_account_fiscalyear,account.fiscalyear,account.model_account_fiscalyear,portal.group_portal_member,1,0,0,0
-access_res_partner_category,res.partner.category,base.model_res_partner_category,portal.group_portal_member,1,0,0,0
-access_product_supplierinfo,product.supplierinfo,product.model_product_supplierinfo,portal.group_portal_member,1,0,0,0
-access_product_packaging,product.packaging,product.model_product_packaging,portal.group_portal_member,1,0,0,0
-access_account_period,account.period,account.model_account_period,portal.group_portal_member,1,0,0,0
-access_account_account,account.account,account.model_account_account,portal.group_portal_member,1,0,0,0
+access_sale_order,sale.order,sale.model_sale_order,portal.group_portal,1,0,0,0
+access_sale_order_line,sale.order.line,sale.model_sale_order_line,portal.group_portal,1,0,0,0
+access_stock_picking,stock.picking,stock.model_stock_picking,portal.group_portal,1,0,0,0
+access_stock_picking.out,stock.picking.out,stock.model_stock_picking_out,portal.group_portal,1,0,0,0
+access_stock_move,stock.move,stock.model_stock_move,portal.group_portal,1,0,0,0
+access_stock_warehouse_orderpoint,stock.warehouse.orderpoint,procurement.model_stock_warehouse_orderpoint,portal.group_portal,1,0,0,0
+access_account_invoice,account.invoice,account.model_account_invoice,portal.group_portal,1,0,0,0
+access_account_invoice_tax,account.invoice.tax,account.model_account_invoice_tax,portal.group_portal,1,0,0,0
+access_account_invoice_line,account.invoice.line,account.model_account_invoice_line,portal.group_portal,1,0,0,0
+access_account_journal,account.journal,account.model_account_journal,portal.group_portal,1,0,0,0
+access_account_voucher,account.voucher,account_voucher.model_account_voucher,portal.group_portal,1,0,0,0
+access_account_voucher_line,account.voucher.line,account_voucher.model_account_voucher_line,portal.group_portal,1,0,0,0
+access_account_move,account.move,account.model_account_move,portal.group_portal,1,0,0,0
+access_account_move_line,account.move.line,account.model_account_move_line,portal.group_portal,1,0,0,0
+access_account_move_reconcile,account.move.reconcile,account.model_account_move_reconcile,portal.group_portal,1,0,0,0
+access_account_fiscalyear,account.sequence.fiscalyear,account.model_account_sequence_fiscalyear,portal.group_portal,1,0,0,0
+access_sale_shop,sale.shop,sale.model_sale_shop,portal.group_portal,1,0,0,0
+access_product_list,product.pricelist,product.model_product_pricelist,portal.group_portal,1,0,0,0
+access_product,product.product,product.model_product_product,portal.group_portal,1,0,0,0
+access_res_partner,res.partner,base.model_res_partner,portal.group_portal,1,0,0,0
+access_product_uom,product.uom,product.model_product_uom,portal.group_portal,1,0,0,0
+access_account_tax,account.tax,account.model_account_tax,portal.group_portal,1,0,0,0
+access_mrp_property,mrp.property,procurement.model_mrp_property,portal.group_portal,1,0,0,0
+access_product_template,product.template,product.model_product_template,portal.group_portal,1,0,0,0
+access_stock_warehouse,stock.warehouse,stock.model_stock_warehouse,portal.group_portal,1,0,0,0
+access_stock_location,stock.location,stock.model_stock_location,portal.group_portal,1,0,0,0
+access_account_fiscalyear,account.fiscalyear,account.model_account_fiscalyear,portal.group_portal,1,0,0,0
+access_res_partner_category,res.partner.category,base.model_res_partner_category,portal.group_portal,1,0,0,0
+access_product_supplierinfo,product.supplierinfo,product.model_product_supplierinfo,portal.group_portal,1,0,0,0
+access_product_packaging,product.packaging,product.model_product_packaging,portal.group_portal,1,0,0,0
+access_account_period,account.period,account.model_account_period,portal.group_portal,1,0,0,0
+access_account_account,account.account,account.model_account_account,portal.group_portal,1,0,0,0
diff --git a/addons/portal_sale/security/portal_security.xml b/addons/portal_sale/security/portal_security.xml
index f69fd283db6..8028d5360c4 100644
--- a/addons/portal_sale/security/portal_security.xml
+++ b/addons/portal_sale/security/portal_security.xml
@@ -7,42 +7,42 @@
Portal Personal Quotations/Sales Orders
[('partner_id','child_of',user.partner_id.id)]
-
+
Portal Personal Delivery Orders
[('partner_id','child_of',[user.partner_id.id])]
-
+
Portal Personal Delivery Orders Out
[('partner_id','child_of',[user.partner_id.id])]
-
+
Portal Personal Account Invoices
[('partner_id','child_of',user.partner_id.id)]
-
+
Portal Personal Payments
[('partner_id','child_of',user.partner_id.id)]
-
+
Portal Personal Contacts
[('id','child_of',user.partner_id.id)]
-
+
diff --git a/addons/procurement/procurement.py b/addons/procurement/procurement.py
index ec1dc4b26fb..842f9ec27fa 100644
--- a/addons/procurement/procurement.py
+++ b/addons/procurement/procurement.py
@@ -554,7 +554,7 @@ class stock_warehouse_orderpoint(osv.osv):
'logic': fields.selection([('max','Order to Max'),('price','Best price (not yet active!)')], 'Reordering Mode', required=True),
'warehouse_id': fields.many2one('stock.warehouse', 'Warehouse', required=True, ondelete="cascade"),
'location_id': fields.many2one('stock.location', 'Location', required=True, ondelete="cascade"),
- 'product_id': fields.many2one('product.product', 'Product', required=True, ondelete='cascade', domain=[('type','=','product')]),
+ 'product_id': fields.many2one('product.product', 'Product', required=True, ondelete='cascade', domain=[('type','!=','service')]),
'product_uom': fields.many2one('product.uom', 'Product Unit of Measure', required=True),
'product_min_qty': fields.float('Minimum Quantity', required=True,
help="When the virtual stock goes below the Min Quantity specified for this field, OpenERP generates "\
diff --git a/addons/project/i18n/ar.po b/addons/project/i18n/ar.po
index 2daeaaa5198..20df0ff7e60 100644
--- a/addons/project/i18n/ar.po
+++ b/addons/project/i18n/ar.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:41+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@@ -108,7 +108,7 @@ msgstr "ساعات التحقق من الصلاحية"
#. module: project
#: view:project.project:0
msgid "Pending Projects"
-msgstr ""
+msgstr "مشاريع قيد الإنتظار"
#. module: project
#: help:project.task,remaining_hours:0
@@ -563,7 +563,7 @@ msgstr "فتح المشاريع"
#: code:addons/project/project.py:358
#, python-format
msgid "You must assign members on the project '%s' !"
-msgstr ""
+msgstr "يجب تعيين أعضاء في المشروع '%s' !"
#. module: project
#: view:report.project.task.user:0
@@ -641,7 +641,7 @@ msgstr "وسط"
#. module: project
#: view:project.task:0 view:project.task.history.cumulative:0
msgid "Pending Tasks"
-msgstr ""
+msgstr "مهام قيد الإنتظار"
#. module: project
#: view:project.task:0 field:project.task,remaining_hours:0
@@ -682,7 +682,7 @@ msgstr "معلومات"
#. module: project
#: view:project.task:0 view:project.task.history.cumulative:0
msgid "Unassigned Tasks"
-msgstr ""
+msgstr "مهام غير معينة"
#. module: project
#: view:report.project.task.user:0
@@ -789,6 +789,7 @@ msgid ""
"You cannot delete a project containing tasks. I suggest you to desactivate "
"it."
msgstr ""
+"لا يمكنك حذف المهام المحتواة في المشروع. انا اقترح لك جعلها غير نشطة."
#. module: project
#: view:project.vs.hours:0
@@ -813,7 +814,7 @@ msgstr "ساعات تأخير"
#. module: project
#: selection:project.task,priority:0
msgid "Very important"
-msgstr ""
+msgstr "شديد الأهمية"
#. module: project
#: model:ir.actions.act_window,name:project.action_project_task_user_tree
@@ -834,6 +835,8 @@ msgid ""
"If you check this field, the project manager will receive an email each time "
"a task is completed by his team."
msgstr ""
+"إذا قمت بتحديد هذا الحقل فإن مدير المشروع سوف يتلقى رسالة بريد إلكتروني في "
+"كل مرة يتم الانتهاء من المهمة لفريقه."
#. module: project
#: model:ir.model,name:project.model_project_project
@@ -867,7 +870,7 @@ msgstr "مراحل"
#. module: project
#: view:project.task:0
msgid "Change to Previous Stage"
-msgstr ""
+msgstr "التغيير للمرحلة السابقة"
#. module: project
#: model:ir.actions.todo.category,name:project.category_project_config
@@ -910,7 +913,7 @@ msgstr "الرئيسي"
#. module: project
#: view:project.task:0
msgid "Mark as Blocked"
-msgstr ""
+msgstr "تحدد كمحظورة"
#. module: project
#: model:ir.actions.act_window,help:project.action_view_task
@@ -999,7 +1002,7 @@ msgstr "الساعات المخططة"
#. module: project
#: model:ir.actions.act_window,name:project.action_review_task_stage
msgid "Review Task Stages"
-msgstr ""
+msgstr "استعراض مراحل المهمة"
#. module: project
#: view:project.project:0
@@ -1009,7 +1012,7 @@ msgstr "الحالات: %(الحالة)"
#. module: project
#: help:project.task,sequence:0
msgid "Gives the sequence order when displaying a list of tasks."
-msgstr ""
+msgstr "يعطي النظام تسلسل عند عرض قائمة المهام."
#. module: project
#: view:project.project:0 view:project.task:0
@@ -1021,7 +1024,7 @@ msgstr "تاريخ البدء"
#: selection:project.task.history,kanban_state:0
#: selection:project.task.history.cumulative,kanban_state:0
msgid "Ready To Pull"
-msgstr ""
+msgstr "على استعداد للسحب"
#. module: project
#: view:project.task:0 field:project.task,parent_ids:0
@@ -1034,7 +1037,7 @@ msgstr "المهام الاساسية"
#: view:project.task.history.cumulative:0
#: selection:project.task.history.cumulative,kanban_state:0
msgid "Blocked"
-msgstr ""
+msgstr "محظورة"
#. module: project
#: help:project.task,progress:0
@@ -1042,6 +1045,8 @@ msgid ""
"If the task has a progress of 99.99% you should close the task if it's "
"finished or reevaluate the time"
msgstr ""
+"إذا كانت المهمة لديها من التقدم 99.99٪ يجب إغلاق المهمة إذا تم الإنتهاء أو "
+"إعادة تقييم الوقت"
#. module: project
#: view:project.project:0
@@ -1070,7 +1075,7 @@ msgstr "عمليات الفواتير"
#. module: project
#: view:project.task:0
msgid "For changing to delegate state"
-msgstr ""
+msgstr "لتغيير تفويض حالة"
#. module: project
#: field:project.task,priority:0 field:report.project.task.user,priority:0
@@ -1097,7 +1102,7 @@ msgstr "اعادة تقييم.المهمة.المشروع"
#: code:addons/project/wizard/project_task_delegate.py:81
#, python-format
msgid "CHECK: %s"
-msgstr ""
+msgstr "التحقق: %s"
#. module: project
#: view:project.project:0
@@ -1152,7 +1157,7 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Change Type"
-msgstr ""
+msgstr "تغير النوع"
#. module: project
#: help:project.project,members:0
@@ -1198,7 +1203,7 @@ msgstr "اسم المشروع"
#: model:ir.model,name:project.model_project_task_history
#: model:ir.model,name:project.model_project_task_history_cumulative
msgid "History of Tasks"
-msgstr ""
+msgstr "تاريخ المهام"
#. module: project
#: help:project.task.delegate,state:0
@@ -1212,7 +1217,7 @@ msgstr ""
#: code:addons/project/wizard/mail_compose_message.py:45
#, python-format
msgid "Please specify the Customer or email address of Customer."
-msgstr ""
+msgstr "يرجى تحديد العميل أو عنوان البريد الإلكتروني للعملاء."
#. module: project
#: selection:report.project.task.user,month:0
@@ -1265,7 +1270,7 @@ msgstr "نوفمبر"
#. module: project
#: model:ir.actions.act_window,name:project.action_create_initial_projects_installer
msgid "Create your Firsts Projects"
-msgstr ""
+msgstr "إنشاء أوليات مشاريعك"
#. module: project
#: code:addons/project/project.py:229
@@ -1276,7 +1281,7 @@ msgstr "تم غلق المشروع ‘%s‘."
#. module: project
#: view:project.task.history.cumulative:0
msgid "Tasks's Cumulative Flow"
-msgstr ""
+msgstr "المهام والتدفق التراكمي"
#. module: project
#: view:project.task:0
@@ -1291,7 +1296,7 @@ msgstr "أكتوبر"
#. module: project
#: view:project.task:0
msgid "Validate planned time and open task"
-msgstr ""
+msgstr "التحقق من صحة الوقت المخطط له والمهام المفتوحة"
#. module: project
#: help:project.task,delay_hours:0
@@ -1299,10 +1304,12 @@ msgid ""
"Computed as difference between planned hours by the project manager and the "
"total hours of the task."
msgstr ""
+"تحسب الفرق بين الساعات المخطط لها من قبل مدير المشروع والساعات الإجمالية "
+"للمهمة."
#. module: project
#: view:project.task:0
-msgid "Delegations History"
+msgid "Delegation"
msgstr ""
#. module: project
@@ -1331,7 +1338,7 @@ msgstr "الشركات"
#. module: project
#: view:project.project:0
msgid "Projects in which I am a member."
-msgstr ""
+msgstr "المشاريع التي أنا عضو."
#. module: project
#: view:project.project:0
@@ -1426,7 +1433,7 @@ msgstr "مرشحات مفصلة..."
#: code:addons/project/project.py:1148
#, python-format
msgid "Please delete the project linked with this account first."
-msgstr ""
+msgstr "رجاء قم بحذف رابط المشروع مع هذا الحساب أولاً"
#. module: project
#: field:project.task,total_hours:0 field:project.vs.hours,total_hours:0
@@ -1527,7 +1534,7 @@ msgstr "قيد التقدم"
#. module: project
#: view:project.task.history.cumulative:0
msgid "Task's Analysis"
-msgstr ""
+msgstr "تحليل المهمة"
#. module: project
#: code:addons/project/project.py:789
@@ -1536,11 +1543,13 @@ msgid ""
"Child task still open.\n"
"Please cancel or complete child task first."
msgstr ""
+"المهمة الوليدة التي لا تزال مفتوحة .\n"
+" يرجى إلغاء أو إكمال المهمة الوليدة أولاص."
#. module: project
#: view:project.task.type:0
msgid "Stages common to all projects"
-msgstr ""
+msgstr "مشاريع مشتركة بين جميع المراحل"
#. module: project
#: constraint:project.task:0
@@ -1561,7 +1570,7 @@ msgstr ""
#. module: project
#: view:project.project:0
msgid "Projects in which I am a manager"
-msgstr ""
+msgstr "المشاريع التي أنا مديرها"
#. module: project
#: code:addons/project/project.py:959
@@ -1660,6 +1669,8 @@ msgid ""
"If you check this field, this stage will be proposed by default on each new "
"project. It will not assign this stage to existing projects."
msgstr ""
+"إذا قمت بتحديد هذا الحقل، سيتم اقترح هذه المرحلة بشكل افتراضي على كل مشروع "
+"جديد. وسوف يتم تعيين هذه المرحلة للمشاريع القائمة."
#. module: project
#: view:board.board:0
@@ -1720,7 +1731,7 @@ msgstr "مجموع الساعات الكلية لكل المهام المتعل
#. module: project
#: field:project.task.type,project_default:0
msgid "Common to All Projects"
-msgstr ""
+msgstr "مشاريع مشتركة بين الجميع"
#. module: project
#: model:process.transition,note:project.process_transition_opendonetask0
@@ -1773,7 +1784,7 @@ msgstr "ملخص العمل"
#. module: project
#: view:project.task.history.cumulative:0
msgid "Month-2"
-msgstr ""
+msgstr "الشهر-2"
#. module: project
#: help:report.project.task.user,closing_days:0
@@ -1821,6 +1832,8 @@ msgid ""
"The stages can be common to all project or specific to one project. Each "
"task will follow the different stages in order to be closed."
msgstr ""
+"يمكن للمراحل تكون مشتركة بين جميع المشاريع أو محددة لمشروع واحد. كل مهمة سوف "
+"تتبع المراحل المختلفة من أجل أن تكون مغلقة."
#. module: project
#: help:project.project,sequence:0
@@ -1949,7 +1962,7 @@ msgstr "تم الغاء المهمة ‘%s‘."
#. module: project
#: view:project.task:0 view:res.partner:0
msgid "For changing to open state"
-msgstr ""
+msgstr "للتغير إلى الحالة المفتوحة"
#. module: project
#: model:ir.model,name:project.model_res_partner view:project.project:0
@@ -1983,7 +1996,7 @@ msgstr "تذييل البريد"
#. module: project
#: view:project.task:0 view:project.task.history.cumulative:0
msgid "In Progress Tasks"
-msgstr ""
+msgstr "مهام في قيد التقدم"
#~ msgid "Timesheets"
#~ msgstr "الجداول الزمنية"
diff --git a/addons/project/i18n/bg.po b/addons/project/i18n/bg.po
index a315365a91f..49dcf3643f9 100644
--- a/addons/project/i18n/bg.po
+++ b/addons/project/i18n/bg.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:41+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@@ -1276,7 +1276,7 @@ msgstr ""
#. module: project
#: view:project.task:0
-msgid "Delegations History"
+msgid "Delegation"
msgstr ""
#. module: project
diff --git a/addons/project/i18n/bs.po b/addons/project/i18n/bs.po
index 24d31217ffa..5c3eea9984d 100644
--- a/addons/project/i18n/bs.po
+++ b/addons/project/i18n/bs.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:41+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@@ -1275,7 +1275,7 @@ msgstr ""
#. module: project
#: view:project.task:0
-msgid "Delegations History"
+msgid "Delegation"
msgstr ""
#. module: project
diff --git a/addons/project/i18n/ca.po b/addons/project/i18n/ca.po
index 6a40897c8ed..e778a8896b7 100644
--- a/addons/project/i18n/ca.po
+++ b/addons/project/i18n/ca.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:41+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@@ -1322,7 +1322,7 @@ msgstr ""
#. module: project
#: view:project.task:0
-msgid "Delegations History"
+msgid "Delegation"
msgstr ""
#. module: project
diff --git a/addons/project/i18n/cs.po b/addons/project/i18n/cs.po
index a7e4885e245..36e82a8f3b2 100644
--- a/addons/project/i18n/cs.po
+++ b/addons/project/i18n/cs.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:41+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
"X-Poedit-Language: Czech\n"
#. module: project
@@ -1298,7 +1298,7 @@ msgstr ""
#. module: project
#: view:project.task:0
-msgid "Delegations History"
+msgid "Delegation"
msgstr ""
#. module: project
diff --git a/addons/project/i18n/da.po b/addons/project/i18n/da.po
index 564c176fed0..98fc1ef4647 100644
--- a/addons/project/i18n/da.po
+++ b/addons/project/i18n/da.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:41+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@@ -1276,7 +1276,7 @@ msgstr ""
#. module: project
#: view:project.task:0
-msgid "Delegations History"
+msgid "Delegation"
msgstr ""
#. module: project
diff --git a/addons/project/i18n/de.po b/addons/project/i18n/de.po
index cba84622d8c..c466f2eab86 100644
--- a/addons/project/i18n/de.po
+++ b/addons/project/i18n/de.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@@ -1336,8 +1336,8 @@ msgstr ""
#. module: project
#: view:project.task:0
-msgid "Delegations History"
-msgstr "Delegationsverlauf"
+msgid "Delegation"
+msgstr ""
#. module: project
#: model:ir.model,name:project.model_res_users
@@ -2573,3 +2573,6 @@ msgstr "Aufgaben in Bearbeitung"
#~ msgid "E-mail composition wizard"
#~ msgstr "Email-Zusammensetzung Assistent"
+
+#~ msgid "Delegations History"
+#~ msgstr "Delegationsverlauf"
diff --git a/addons/project/i18n/el.po b/addons/project/i18n/el.po
index 01b1e053d58..816dd09338a 100644
--- a/addons/project/i18n/el.po
+++ b/addons/project/i18n/el.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
"X-Poedit-Country: GREECE\n"
"X-Poedit-Language: Greek\n"
"X-Poedit-SourceCharset: utf-8\n"
@@ -1287,7 +1287,7 @@ msgstr ""
#. module: project
#: view:project.task:0
-msgid "Delegations History"
+msgid "Delegation"
msgstr ""
#. module: project
diff --git a/addons/project/i18n/es.po b/addons/project/i18n/es.po
index a66d47e5974..a36f22d27a9 100644
--- a/addons/project/i18n/es.po
+++ b/addons/project/i18n/es.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@@ -1325,8 +1325,8 @@ msgstr ""
#. module: project
#: view:project.task:0
-msgid "Delegations History"
-msgstr "Histórico de delegaciones"
+msgid "Delegation"
+msgstr ""
#. module: project
#: model:ir.model,name:project.model_res_users
@@ -2568,3 +2568,6 @@ msgstr ""
#~ msgid "E-mail composition wizard"
#~ msgstr "Asistente de composición de e-mail"
+
+#~ msgid "Delegations History"
+#~ msgstr "Histórico de delegaciones"
diff --git a/addons/project/i18n/es_AR.po b/addons/project/i18n/es_AR.po
index 3a33ad460f2..7f0221c2cfd 100644
--- a/addons/project/i18n/es_AR.po
+++ b/addons/project/i18n/es_AR.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@@ -1284,7 +1284,7 @@ msgstr ""
#. module: project
#: view:project.task:0
-msgid "Delegations History"
+msgid "Delegation"
msgstr ""
#. module: project
diff --git a/addons/project/i18n/es_CR.po b/addons/project/i18n/es_CR.po
index 6024d528a28..141882c6f34 100644
--- a/addons/project/i18n/es_CR.po
+++ b/addons/project/i18n/es_CR.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:43+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
"Language: \n"
#. module: project
@@ -1333,8 +1333,8 @@ msgstr ""
#. module: project
#: view:project.task:0
-msgid "Delegations History"
-msgstr "Histórico de delegaciones"
+msgid "Delegation"
+msgstr ""
#. module: project
#: model:ir.model,name:project.model_res_users
@@ -2582,3 +2582,6 @@ msgstr "Tarea en progreso"
#~ msgid "E-mail composition wizard"
#~ msgstr "Asistente de composición de e-mail"
+
+#~ msgid "Delegations History"
+#~ msgstr "Histórico de delegaciones"
diff --git a/addons/project/i18n/es_EC.po b/addons/project/i18n/es_EC.po
index 89168f88a42..fded4d36c68 100644
--- a/addons/project/i18n/es_EC.po
+++ b/addons/project/i18n/es_EC.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:56+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:43+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@@ -1330,8 +1330,8 @@ msgstr ""
#. module: project
#: view:project.task:0
-msgid "Delegations History"
-msgstr "Histórico de delegaciones"
+msgid "Delegation"
+msgstr ""
#. module: project
#: model:ir.model,name:project.model_res_users
@@ -2568,3 +2568,6 @@ msgstr "Tareas en progreso"
#~ msgid "E-mail composition wizard"
#~ msgstr "Asistente de composición de e-mail"
+
+#~ msgid "Delegations History"
+#~ msgstr "Histórico de delegaciones"
diff --git a/addons/project/i18n/es_PY.po b/addons/project/i18n/es_PY.po
index aff45cd4e54..3c62d81eb51 100644
--- a/addons/project/i18n/es_PY.po
+++ b/addons/project/i18n/es_PY.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:56+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:43+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@@ -1276,7 +1276,7 @@ msgstr ""
#. module: project
#: view:project.task:0
-msgid "Delegations History"
+msgid "Delegation"
msgstr ""
#. module: project
diff --git a/addons/project/i18n/et.po b/addons/project/i18n/et.po
index 664b39d8b90..7e86ce9ef99 100644
--- a/addons/project/i18n/et.po
+++ b/addons/project/i18n/et.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@@ -1282,7 +1282,7 @@ msgstr ""
#. module: project
#: view:project.task:0
-msgid "Delegations History"
+msgid "Delegation"
msgstr ""
#. module: project
diff --git a/addons/project/i18n/eu.po b/addons/project/i18n/eu.po
index 3ead5319319..110df09b142 100644
--- a/addons/project/i18n/eu.po
+++ b/addons/project/i18n/eu.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:41+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@@ -1280,7 +1280,7 @@ msgstr ""
#. module: project
#: view:project.task:0
-msgid "Delegations History"
+msgid "Delegation"
msgstr ""
#. module: project
diff --git a/addons/project/i18n/fi.po b/addons/project/i18n/fi.po
index fde023a2443..7f9e5bb70e5 100644
--- a/addons/project/i18n/fi.po
+++ b/addons/project/i18n/fi.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@@ -1299,8 +1299,8 @@ msgstr ""
#. module: project
#: view:project.task:0
-msgid "Delegations History"
-msgstr "Delegointien historia"
+msgid "Delegation"
+msgstr ""
#. module: project
#: model:ir.model,name:project.model_res_users
@@ -2338,3 +2338,6 @@ msgstr "Meneilläänolevat tehtävät"
#~ msgid "E-mail composition wizard"
#~ msgstr "Sähköpostin luonti velho"
+
+#~ msgid "Delegations History"
+#~ msgstr "Delegointien historia"
diff --git a/addons/project/i18n/fr.po b/addons/project/i18n/fr.po
index 4c0e87af64b..8d1bd208da9 100644
--- a/addons/project/i18n/fr.po
+++ b/addons/project/i18n/fr.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@@ -1338,8 +1338,8 @@ msgstr ""
#. module: project
#: view:project.task:0
-msgid "Delegations History"
-msgstr "Historique des délégations"
+msgid "Delegation"
+msgstr ""
#. module: project
#: model:ir.model,name:project.model_res_users
@@ -2587,5 +2587,8 @@ msgstr "Tâches en cours"
#~ msgid "Manager Email"
#~ msgstr "Courriel du responsable"
+#~ msgid "Delegations History"
+#~ msgstr "Historique des délégations"
+
#~ msgid "E-mail composition wizard"
#~ msgstr "Assistant de composition de courriels"
diff --git a/addons/project/i18n/gl.po b/addons/project/i18n/gl.po
index 2b83f0924db..ad9e073ff1a 100644
--- a/addons/project/i18n/gl.po
+++ b/addons/project/i18n/gl.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@@ -1276,7 +1276,7 @@ msgstr ""
#. module: project
#: view:project.task:0
-msgid "Delegations History"
+msgid "Delegation"
msgstr ""
#. module: project
diff --git a/addons/project/i18n/gu.po b/addons/project/i18n/gu.po
index 325d77c09ec..e7d8eb536a7 100644
--- a/addons/project/i18n/gu.po
+++ b/addons/project/i18n/gu.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@@ -1276,7 +1276,7 @@ msgstr ""
#. module: project
#: view:project.task:0
-msgid "Delegations History"
+msgid "Delegation"
msgstr ""
#. module: project
diff --git a/addons/project/i18n/hr.po b/addons/project/i18n/hr.po
index 9309d95cd1b..7603340fbfa 100644
--- a/addons/project/i18n/hr.po
+++ b/addons/project/i18n/hr.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
"Language: hr\n"
#. module: project
@@ -1283,7 +1283,7 @@ msgstr ""
#. module: project
#: view:project.task:0
-msgid "Delegations History"
+msgid "Delegation"
msgstr ""
#. module: project
diff --git a/addons/project/i18n/hu.po b/addons/project/i18n/hu.po
index ca553216211..4f293a3b302 100644
--- a/addons/project/i18n/hu.po
+++ b/addons/project/i18n/hu.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@@ -79,7 +79,7 @@ msgstr "Nem engedélyezett művelet!"
#: code:addons/project/wizard/project_task_delegate.py:78
#, python-format
msgid "CHECK: "
-msgstr ""
+msgstr "ELLENŐRIZNI: "
#. module: project
#: field:project.task,user_email:0
@@ -263,7 +263,7 @@ msgstr "Nap"
#. module: project
#: model:ir.ui.menu,name:project.menu_project_config_project
msgid "Projects and Stages"
-msgstr ""
+msgstr "Projektek és Szakaszok"
#. module: project
#: view:project.project:0
@@ -485,7 +485,7 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Change Color"
-msgstr ""
+msgstr "Szín megváltoztatása"
#. module: project
#: constraint:account.analytic.account:0
@@ -920,7 +920,7 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Mark as Blocked"
-msgstr ""
+msgstr "Blokkoltnak jelölés"
#. module: project
#: model:ir.actions.act_window,help:project.action_view_task
@@ -1047,7 +1047,7 @@ msgstr "Forrás feladatok"
#: view:project.task.history.cumulative:0
#: selection:project.task.history.cumulative,kanban_state:0
msgid "Blocked"
-msgstr ""
+msgstr "Blokkolva"
#. module: project
#: help:project.task,progress:0
@@ -1110,7 +1110,7 @@ msgstr "project.task.reevaluate"
#: code:addons/project/wizard/project_task_delegate.py:81
#, python-format
msgid "CHECK: %s"
-msgstr ""
+msgstr "ELLENŐRIZNI: %s"
#. module: project
#: view:project.project:0
@@ -1320,7 +1320,7 @@ msgstr ""
#. module: project
#: view:project.task:0
-msgid "Delegations History"
+msgid "Delegation"
msgstr ""
#. module: project
@@ -1558,7 +1558,7 @@ msgstr ""
#. module: project
#: view:project.task.type:0
msgid "Stages common to all projects"
-msgstr ""
+msgstr "Közös használatú szakaszok"
#. module: project
#: constraint:project.task:0
@@ -2222,3 +2222,6 @@ msgstr ""
#~ msgid "Automatically synchronizes project tasks and crm cases."
#~ msgstr "Automatikusan összehangolja a projektfeladatokat és a crm eseteket."
+
+#~ msgid "Delegations History"
+#~ msgstr "Átruházás történet"
diff --git a/addons/project/i18n/id.po b/addons/project/i18n/id.po
index 22892b050d1..b20dd07eaf3 100644
--- a/addons/project/i18n/id.po
+++ b/addons/project/i18n/id.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@@ -1275,7 +1275,7 @@ msgstr ""
#. module: project
#: view:project.task:0
-msgid "Delegations History"
+msgid "Delegation"
msgstr ""
#. module: project
diff --git a/addons/project/i18n/it.po b/addons/project/i18n/it.po
index 662ea2bd962..f3e20f78c7e 100644
--- a/addons/project/i18n/it.po
+++ b/addons/project/i18n/it.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@@ -1320,7 +1320,7 @@ msgstr ""
#. module: project
#: view:project.task:0
-msgid "Delegations History"
+msgid "Delegation"
msgstr ""
#. module: project
diff --git a/addons/project/i18n/ja.po b/addons/project/i18n/ja.po
index fa91a44a984..24a8e1916cb 100644
--- a/addons/project/i18n/ja.po
+++ b/addons/project/i18n/ja.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@@ -1294,8 +1294,8 @@ msgstr "プロジェクトマネジャによる計画時間数とタスクの合
#. module: project
#: view:project.task:0
-msgid "Delegations History"
-msgstr "委任の履歴"
+msgid "Delegation"
+msgstr ""
#. module: project
#: model:ir.model,name:project.model_res_users
@@ -1969,3 +1969,6 @@ msgstr "進行中タスク"
#~ msgid "E-mail composition wizard"
#~ msgstr "Eメール作成ウィザード"
+
+#~ msgid "Delegations History"
+#~ msgstr "委任の履歴"
diff --git a/addons/project/i18n/ko.po b/addons/project/i18n/ko.po
index fe17fa20853..db3c7ea98d1 100644
--- a/addons/project/i18n/ko.po
+++ b/addons/project/i18n/ko.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@@ -1276,7 +1276,7 @@ msgstr ""
#. module: project
#: view:project.task:0
-msgid "Delegations History"
+msgid "Delegation"
msgstr ""
#. module: project
diff --git a/addons/project/i18n/lt.po b/addons/project/i18n/lt.po
index 50bca2bd371..6710b832550 100644
--- a/addons/project/i18n/lt.po
+++ b/addons/project/i18n/lt.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@@ -1285,7 +1285,7 @@ msgstr ""
#. module: project
#: view:project.task:0
-msgid "Delegations History"
+msgid "Delegation"
msgstr ""
#. module: project
diff --git a/addons/project/i18n/lv.po b/addons/project/i18n/lv.po
index 4ef32f1bc1e..0e9fdaa04f6 100644
--- a/addons/project/i18n/lv.po
+++ b/addons/project/i18n/lv.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@@ -1314,7 +1314,7 @@ msgstr ""
#. module: project
#: view:project.task:0
-msgid "Delegations History"
+msgid "Delegation"
msgstr ""
#. module: project
diff --git a/addons/project/i18n/mn.po b/addons/project/i18n/mn.po
index 21fea817261..6feb0623f9e 100644
--- a/addons/project/i18n/mn.po
+++ b/addons/project/i18n/mn.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@@ -1323,8 +1323,8 @@ msgstr ""
#. module: project
#: view:project.task:0
-msgid "Delegations History"
-msgstr "Ацагласан Түүх"
+msgid "Delegation"
+msgstr ""
#. module: project
#: model:ir.model,name:project.model_res_users
@@ -2335,3 +2335,6 @@ msgstr "Боловсруулагдаж байгаа даалгаврууд"
#~ msgid "E-mail composition wizard"
#~ msgstr "И-мэйл үүсгэх харилцах цонх"
+
+#~ msgid "Delegations History"
+#~ msgstr "Ацагласан Түүх"
diff --git a/addons/project/i18n/nb.po b/addons/project/i18n/nb.po
index 59c7111be4f..fed27a5f44c 100644
--- a/addons/project/i18n/nb.po
+++ b/addons/project/i18n/nb.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@@ -37,6 +37,7 @@ msgstr "Oppgaven '%s' er tildelt til %s."
#: constraint:res.users:0
msgid "The chosen company is not in the allowed companies for this user"
msgstr ""
+"Det valgte firmaet er ikke i listen over tillatte firmaer for denne brukeren"
#. module: project
#: view:report.project.task.user:0
@@ -81,7 +82,7 @@ msgstr "SJEKK: "
#. module: project
#: field:project.task,user_email:0
msgid "User Email"
-msgstr ""
+msgstr "E-post for bruker"
#. module: project
#: field:project.task,work_ids:0
@@ -93,7 +94,7 @@ msgstr "Arbeid utført"
#: code:addons/project/project.py:1148
#, python-format
msgid "Warning !"
-msgstr ""
+msgstr "Advarsel !"
#. module: project
#: model:ir.model,name:project.model_project_task_delegate
@@ -121,7 +122,7 @@ msgstr ""
#. module: project
#: view:project.project:0
msgid "Re-open project"
-msgstr ""
+msgstr "Gjenåpne prosjekt"
#. module: project
#: help:project.project,priority:0
@@ -131,7 +132,7 @@ msgstr ""
#. module: project
#: constraint:project.project:0
msgid "Error! project start-date must be lower then project end-date."
-msgstr ""
+msgstr "Feil! Startdato for prosjekt må være tidligere enn sluttdato."
#. module: project
#: view:project.task.reevaluate:0
@@ -180,7 +181,7 @@ msgstr "Mine oppgaver"
#. module: project
#: constraint:project.task:0
msgid "Error ! You cannot create recursive tasks."
-msgstr ""
+msgstr "Feil! Du kan ikke lage en uendelig struktur av oppgaver."
#. module: project
#: field:project.task,company_id:0 field:project.task.work,company_id:0
@@ -201,7 +202,7 @@ msgstr "Din oppgavetittel"
#. module: project
#: field:project.task.type,name:0
msgid "Stage Name"
-msgstr ""
+msgstr "Fasenavn"
#. module: project
#: model:process.transition.action,name:project.process_transition_action_openpendingtask0
@@ -211,7 +212,7 @@ msgstr ""
#. module: project
#: selection:project.task,priority:0
msgid "Important"
-msgstr ""
+msgstr "Viktig"
#. module: project
#: model:process.node,note:project.process_node_drafttask0
@@ -221,7 +222,7 @@ msgstr "Definer krav og oppgi planlagte timer"
#. module: project
#: view:project.task:0
msgid "Change Stage"
-msgstr ""
+msgstr "Endre fase"
#. module: project
#: view:project.project:0
@@ -258,7 +259,7 @@ msgstr "Dag"
#. module: project
#: model:ir.ui.menu,name:project.menu_project_config_project
msgid "Projects and Stages"
-msgstr ""
+msgstr "Prosjekter og faser"
#. module: project
#: view:project.project:0
@@ -294,12 +295,12 @@ msgstr "Mine åpne oppgaver"
#, python-format
msgid ""
"Please specify the Project Manager or email address of Project Manager."
-msgstr ""
+msgstr "Vennligst angi prosjektleder eller e-post-adresse for prosjektleder."
#. module: project
#: view:project.task:0
msgid "For cancelling the task"
-msgstr ""
+msgstr "For å avbryte oppgaven"
#. module: project
#: model:ir.model,name:project.model_project_task_work
@@ -361,7 +362,7 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Show only tasks having a deadline"
-msgstr ""
+msgstr "Vis kun oppgaver med deadline"
#. module: project
#: selection:project.task,state:0 selection:project.task.history,state:0
@@ -374,7 +375,7 @@ msgstr "Kansellert"
#. module: project
#: field:project.task,date_end:0 field:report.project.task.user,date_end:0
msgid "Ending Date"
-msgstr ""
+msgstr "Sluttdato"
#. module: project
#: view:project.project:0 field:project.project,warn_header:0
@@ -384,7 +385,7 @@ msgstr "E-post topptekst"
#. module: project
#: view:project.task:0
msgid "Change to Next Stage"
-msgstr ""
+msgstr "Endre til neste fase"
#. module: project
#: model:process.node,name:project.process_node_donetask0
@@ -394,7 +395,7 @@ msgstr "Fullførte oppgaver"
#. module: project
#: field:project.task,color:0
msgid "Color Index"
-msgstr ""
+msgstr "Fargeindeks"
#. module: project
#: model:ir.ui.menu,name:project.menu_definitions view:res.company:0
@@ -404,7 +405,7 @@ msgstr "Konfigurasjon"
#. module: project
#: view:report.project.task.user:0
msgid "Current Month"
-msgstr ""
+msgstr "Inneværende måned"
#. module: project
#: model:process.transition,note:project.process_transition_delegate0
@@ -414,7 +415,7 @@ msgstr "Delegerer oppgaver til den andre brukeren"
#. module: project
#: view:project.project:0 view:project.task:0 view:report.project.task.user:0
msgid "Group By..."
-msgstr ""
+msgstr "Grupper etter ..."
#. module: project
#: field:project.task.work,user_id:0
@@ -433,7 +434,7 @@ msgstr ""
#. module: project
#: model:project.task.type,name:project.project_tt_testing
msgid "Testing"
-msgstr ""
+msgstr "Tester"
#. module: project
#: code:addons/project/project.py:829
@@ -471,17 +472,17 @@ msgstr "_Avbryt"
#. module: project
#: view:project.task.history.cumulative:0
msgid "Ready"
-msgstr ""
+msgstr "Klar"
#. module: project
#: view:project.task:0
msgid "Change Color"
-msgstr ""
+msgstr "Bytt farge"
#. module: project
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
-msgstr ""
+msgstr "Feil! Du kan ikke opprette uendelig struktur med analytiske kontoer."
#. module: project
#: code:addons/project/project.py:264 code:addons/project/project.py:303
@@ -492,12 +493,12 @@ msgstr " (kopi)"
#. module: project
#: view:project.task:0
msgid "New Tasks"
-msgstr ""
+msgstr "Ny oppgave"
#. module: project
#: view:report.project.task.user:0 field:report.project.task.user,nbr:0
msgid "# of tasks"
-msgstr ""
+msgstr "Antall oppgaver"
#. module: project
#: view:project.task:0
@@ -517,7 +518,7 @@ msgstr ""
#. module: project
#: sql_constraint:res.users:0
msgid "You can not have two users with the same login !"
-msgstr ""
+msgstr "Du kan ikke ha to brukere med samme login!"
#. module: project
#: view:project.project:0
@@ -537,7 +538,7 @@ msgstr "Mine prosjekter"
#. module: project
#: constraint:res.company:0
msgid "Error! You can not create recursive companies."
-msgstr ""
+msgstr "Feil! Dukan ikke opprette uendelig struktur av firmaer."
#. module: project
#: view:project.task:0
@@ -552,23 +553,23 @@ msgstr "From draft state, it will come into the open state."
#. module: project
#: view:report.project.task.user:0 field:report.project.task.user,no_of_days:0
msgid "# of Days"
-msgstr ""
+msgstr "Antall dager"
#. module: project
#: view:project.project:0
msgid "Open Projects"
-msgstr ""
+msgstr "Åpne prosjekter"
#. module: project
#: code:addons/project/project.py:358
#, python-format
msgid "You must assign members on the project '%s' !"
-msgstr ""
+msgstr "Du må tilordne deltakere til prosjekt '%s'!"
#. module: project
#: view:report.project.task.user:0
msgid "In progress tasks"
-msgstr ""
+msgstr "Oppgaver i arbeid"
#. module: project
#: help:project.project,progress_rate:0
@@ -592,7 +593,7 @@ msgstr "Prosjektoppgave"
#: selection:project.task.history.cumulative,state:0
#: view:report.project.task.user:0
msgid "New"
-msgstr ""
+msgstr "Ny"
#. module: project
#: help:project.task,total_hours:0
@@ -625,7 +626,7 @@ msgstr ""
#: code:addons/project/project.py:597
#, python-format
msgid "%s (copy)"
-msgstr ""
+msgstr "%s (kopi)"
#. module: project
#: view:report.project.task.user:0
@@ -641,7 +642,7 @@ msgstr "Medium"
#. module: project
#: view:project.task:0 view:project.task.history.cumulative:0
msgid "Pending Tasks"
-msgstr ""
+msgstr "Ventende oppgaver"
#. module: project
#: view:project.task:0 field:project.task,remaining_hours:0
@@ -659,13 +660,13 @@ msgstr ""
#. module: project
#: view:report.project.task.user:0
msgid "Creation Date"
-msgstr ""
+msgstr "Opprettelsesdato"
#. module: project
#: view:project.task:0 field:project.task.history,remaining_hours:0
#: field:project.task.history.cumulative,remaining_hours:0
msgid "Remaining Time"
-msgstr ""
+msgstr "Gjenstående tid"
#. module: project
#: field:project.project,planned_hours:0
@@ -755,7 +756,7 @@ msgstr "Prosjekter"
#: field:project.task.history.cumulative,type_id:0
#: view:report.project.task.user:0 field:report.project.task.user,type_id:0
msgid "Stage"
-msgstr ""
+msgstr "Fase"
#. module: project
#: model:ir.actions.act_window,help:project.open_task_type_form
@@ -769,7 +770,7 @@ msgstr ""
#: code:addons/project/project.py:903
#, python-format
msgid "The task '%s' is opened."
-msgstr ""
+msgstr "Oppgaven '%s' er åpnet."
#. module: project
#: view:project.task:0
@@ -788,6 +789,8 @@ msgid ""
"You cannot delete a project containing tasks. I suggest you to desactivate "
"it."
msgstr ""
+"Du kan ikke slette et prosjekt som har oppgaver. Prosjektet kan evt. "
+"deaktiveres."
#. module: project
#: view:project.vs.hours:0
@@ -812,7 +815,7 @@ msgstr "Timer forsinket"
#. module: project
#: selection:project.task,priority:0
msgid "Very important"
-msgstr ""
+msgstr "Veldig viktig"
#. module: project
#: model:ir.actions.act_window,name:project.action_project_task_user_tree
@@ -833,6 +836,8 @@ msgid ""
"If you check this field, the project manager will receive an email each time "
"a task is completed by his team."
msgstr ""
+"Ved avkryssing vil prosjektleder motta en e-post hver gang en oppgave blir "
+"fullført av hans team."
#. module: project
#: model:ir.model,name:project.model_project_project
@@ -861,12 +866,12 @@ msgstr ""
#: model:ir.actions.act_window,name:project.open_task_type_form
#: model:ir.ui.menu,name:project.menu_task_types_view
msgid "Stages"
-msgstr ""
+msgstr "Faser"
#. module: project
#: view:project.task:0
msgid "Change to Previous Stage"
-msgstr ""
+msgstr "Endre til foregående fase"
#. module: project
#: model:ir.actions.todo.category,name:project.category_project_config
@@ -882,7 +887,7 @@ msgstr "Prosjekt time enhet"
#. module: project
#: view:report.project.task.user:0
msgid "In progress"
-msgstr ""
+msgstr "I arbeid"
#. module: project
#: model:ir.actions.act_window,name:project.action_project_task_delegate
@@ -909,7 +914,7 @@ msgstr "Overordnet"
#. module: project
#: view:project.task:0
msgid "Mark as Blocked"
-msgstr ""
+msgstr "Marker som blokkert"
#. module: project
#: model:ir.actions.act_window,help:project.action_view_task
@@ -952,7 +957,7 @@ msgstr ""
#. module: project
#: view:project.task.reevaluate:0
msgid "Reevaluate Task"
-msgstr ""
+msgstr "Evaluer oppgave på nytt"
#. module: project
#: view:project.task.history.cumulative:0 view:report.project.task.user:0
@@ -969,12 +974,12 @@ msgstr "Prosjektoppgaver"
#: model:ir.model,name:project.model_project_task_type
#: view:project.task.type:0
msgid "Task Stage"
-msgstr ""
+msgstr "Oppgavefase"
#. module: project
#: model:project.task.type,name:project.project_tt_specification
msgid "Design"
-msgstr ""
+msgstr "Utforming"
#. module: project
#: field:project.task,planned_hours:0
@@ -987,7 +992,7 @@ msgstr "Planlagte timer"
#. module: project
#: model:ir.actions.act_window,name:project.action_review_task_stage
msgid "Review Task Stages"
-msgstr ""
+msgstr "Gjennomgå oppgavefaser"
#. module: project
#: view:project.project:0
@@ -997,7 +1002,7 @@ msgstr ""
#. module: project
#: help:project.task,sequence:0
msgid "Gives the sequence order when displaying a list of tasks."
-msgstr ""
+msgstr "Gir sorteringsrekkefølge ved listing av oppgaver"
#. module: project
#: view:project.project:0 view:project.task:0
@@ -1022,7 +1027,7 @@ msgstr "Overordnede oppgaver"
#: view:project.task.history.cumulative:0
#: selection:project.task.history.cumulative,kanban_state:0
msgid "Blocked"
-msgstr ""
+msgstr "Blokkert"
#. module: project
#: help:project.task,progress:0
@@ -1034,7 +1039,7 @@ msgstr ""
#. module: project
#: view:project.project:0
msgid "Contact Address"
-msgstr ""
+msgstr "Kontaktadresse"
#. module: project
#: help:project.task,kanban_state:0
@@ -1137,7 +1142,7 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Change Type"
-msgstr ""
+msgstr "Endre type"
#. module: project
#: help:project.project,members:0
@@ -1145,6 +1150,8 @@ msgid ""
"Project's members are users who can have an access to the tasks related to "
"this project."
msgstr ""
+"Prosjektdeltakere er brukere som har tilgang til oppgavene som hører til "
+"prosjektet."
#. module: project
#: view:project.project:0 field:project.task,manager_id:0
@@ -1154,12 +1161,12 @@ msgstr "Prosjektleder"
#. module: project
#: view:project.task:0 view:res.partner:0
msgid "For changing to done state"
-msgstr ""
+msgstr "For å bytte til ferdig tilstand"
#. module: project
#: model:ir.model,name:project.model_report_project_task_user
msgid "Tasks by user and project"
-msgstr ""
+msgstr "Oppgaver pr. bruker og prosjekt"
#. module: project
#: selection:report.project.task.user,month:0
@@ -1171,7 +1178,7 @@ msgstr "August"
#: selection:project.task.history,kanban_state:0
#: selection:project.task.history.cumulative,kanban_state:0
msgid "Normal"
-msgstr ""
+msgstr "Normal"
#. module: project
#: view:project.project:0 field:project.project,complete_name:0
@@ -1182,7 +1189,7 @@ msgstr "Prosjektnavn"
#: model:ir.model,name:project.model_project_task_history
#: model:ir.model,name:project.model_project_task_history_cumulative
msgid "History of Tasks"
-msgstr ""
+msgstr "Oppgavehistorikk"
#. module: project
#: help:project.task.delegate,state:0
@@ -1211,7 +1218,7 @@ msgstr "Totaltid"
#: view:report.project.task.user:0
#: field:report.project.task.user,closing_days:0
msgid "Days to Close"
-msgstr ""
+msgstr "Dager til lukking"
#. module: project
#: model:ir.actions.act_window,name:project.open_board_project
@@ -1227,7 +1234,7 @@ msgstr ""
#. module: project
#: model:res.groups,name:project.group_project_user
msgid "User"
-msgstr ""
+msgstr "Bruker"
#. module: project
#: field:project.project,active:0
@@ -1238,7 +1245,7 @@ msgstr "Aktiv"
#: view:report.project.task.user:0
#: field:report.project.task.user,opening_days:0
msgid "Days to Open"
-msgstr ""
+msgstr "Dager til åpning"
#. module: project
#: selection:report.project.task.user,month:0
@@ -1254,7 +1261,7 @@ msgstr ""
#: code:addons/project/project.py:229
#, python-format
msgid "The project '%s' has been closed."
-msgstr ""
+msgstr "Prosjektet '%s' er lukket."
#. module: project
#: view:project.task.history.cumulative:0
@@ -1287,7 +1294,7 @@ msgstr ""
#. module: project
#: view:project.task:0
-msgid "Delegations History"
+msgid "Delegation"
msgstr ""
#. module: project
@@ -1301,6 +1308,8 @@ msgid ""
"If the active field is set to False, it will allow you to hide the project "
"without removing it."
msgstr ""
+"Ved å fjerne avkryssing for Aktiv vil prosjektet skjules uten å måtte "
+"slettes."
#. module: project
#: view:project.task:0
@@ -1326,7 +1335,7 @@ msgstr "Søk i prosjekt"
#: code:addons/project/project.py:251
#, python-format
msgid "The project '%s' has been opened."
-msgstr ""
+msgstr "Prosjektet '%s' er åpnet."
#. module: project
#: field:project.task.history,date:0
@@ -1401,7 +1410,7 @@ msgstr ""
#. module: project
#: view:report.project.task.user:0
msgid "Extended Filters..."
-msgstr ""
+msgstr "Utvidede filtre ..."
#. module: project
#: code:addons/project/project.py:1148
@@ -2191,3 +2200,9 @@ msgstr ""
#~ msgid "Running projects"
#~ msgstr "Løpende prosjekter"
+
+#~ msgid "Delegations History"
+#~ msgstr "Delegeringshistorikk"
+
+#~ msgid "E-mail composition wizard"
+#~ msgstr "Veiviser for opprettelse av e-post"
diff --git a/addons/project/i18n/nl.po b/addons/project/i18n/nl.po
index f84c1286285..f543f48834e 100644
--- a/addons/project/i18n/nl.po
+++ b/addons/project/i18n/nl.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@@ -920,7 +920,7 @@ msgstr "Bovenliggend"
#. module: project
#: view:project.task:0
msgid "Mark as Blocked"
-msgstr "Maarkeer als geblokkeerd"
+msgstr "Markeer als geblokkeerd"
#. module: project
#: model:ir.actions.act_window,help:project.action_view_task
@@ -1325,8 +1325,8 @@ msgstr ""
#. module: project
#: view:project.task:0
-msgid "Delegations History"
-msgstr "Deligatiehistorie"
+msgid "Delegation"
+msgstr ""
#. module: project
#: model:ir.model,name:project.model_res_users
@@ -2566,3 +2566,6 @@ msgstr "Lopende taken"
#~ msgid "E-mail composition wizard"
#~ msgstr "E-mail opmaak wizard"
+
+#~ msgid "Delegations History"
+#~ msgstr "Deligatiehistorie"
diff --git a/addons/project/i18n/nl_BE.po b/addons/project/i18n/nl_BE.po
index 4593e3cb2be..ffa8dee4875 100644
--- a/addons/project/i18n/nl_BE.po
+++ b/addons/project/i18n/nl_BE.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@@ -1317,7 +1317,7 @@ msgstr ""
#. module: project
#: view:project.task:0
-msgid "Delegations History"
+msgid "Delegation"
msgstr ""
#. module: project
diff --git a/addons/project/i18n/pl.po b/addons/project/i18n/pl.po
index cb00edd6111..9ed951bf799 100644
--- a/addons/project/i18n/pl.po
+++ b/addons/project/i18n/pl.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@@ -1322,8 +1322,8 @@ msgstr ""
#. module: project
#: view:project.task:0
-msgid "Delegations History"
-msgstr "Historia przydziałów"
+msgid "Delegation"
+msgstr ""
#. module: project
#: model:ir.model,name:project.model_res_users
@@ -2529,3 +2529,6 @@ msgstr "Zadania w toku"
#~ msgid "E-mail composition wizard"
#~ msgstr "Kreator tworzenia wiadomości"
+
+#~ msgid "Delegations History"
+#~ msgstr "Historia przydziałów"
diff --git a/addons/project/i18n/project.pot b/addons/project/i18n/project.pot
index 46cf1a9279a..4f364cc1e66 100644
--- a/addons/project/i18n/project.pot
+++ b/addons/project/i18n/project.pot
@@ -1293,7 +1293,7 @@ msgstr ""
#. module: project
#: view:project.task:0
-msgid "Delegations History"
+msgid "Delegation"
msgstr ""
#. module: project
diff --git a/addons/project/i18n/pt.po b/addons/project/i18n/pt.po
index 74d51f30434..3abfd72a81b 100644
--- a/addons/project/i18n/pt.po
+++ b/addons/project/i18n/pt.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@@ -1328,8 +1328,8 @@ msgstr ""
#. module: project
#: view:project.task:0
-msgid "Delegations History"
-msgstr "Histórico das delegações"
+msgid "Delegation"
+msgstr ""
#. module: project
#: model:ir.model,name:project.model_res_users
@@ -2561,5 +2561,8 @@ msgstr "Tarefas em progresso"
#~ msgid "Automatically synchronizes project tasks and crm cases."
#~ msgstr "Sincroniza automaticamente as tarefas do projecto e os casos de crm."
+#~ msgid "Delegations History"
+#~ msgstr "Histórico das delegações"
+
#~ msgid "E-mail composition wizard"
#~ msgstr "Assistente de composição de email"
diff --git a/addons/project/i18n/pt_BR.po b/addons/project/i18n/pt_BR.po
index caf11f137ba..98cd475cc92 100644
--- a/addons/project/i18n/pt_BR.po
+++ b/addons/project/i18n/pt_BR.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@@ -1331,8 +1331,8 @@ msgstr ""
#. module: project
#: view:project.task:0
-msgid "Delegations History"
-msgstr "Histórico de Delegações"
+msgid "Delegation"
+msgstr ""
#. module: project
#: model:ir.model,name:project.model_res_users
@@ -2559,3 +2559,6 @@ msgstr "Tarefas em Progresso"
#~ msgid "E-mail composition wizard"
#~ msgstr "Assistente de composição de E-mail."
+
+#~ msgid "Delegations History"
+#~ msgstr "Histórico de Delegações"
diff --git a/addons/project/i18n/ro.po b/addons/project/i18n/ro.po
index 2fafcf110c8..f3eb73dd786 100644
--- a/addons/project/i18n/ro.po
+++ b/addons/project/i18n/ro.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@@ -1338,8 +1338,8 @@ msgstr ""
#. module: project
#: view:project.task:0
-msgid "Delegations History"
-msgstr "Istoric Delegatii"
+msgid "Delegation"
+msgstr ""
#. module: project
#: model:ir.model,name:project.model_res_users
@@ -2286,3 +2286,6 @@ msgstr "Sarcini in desfasurare"
#~ msgid "E-mail composition wizard"
#~ msgstr "Asistent compunere e-mail"
+
+#~ msgid "Delegations History"
+#~ msgstr "Istoric Delegatii"
diff --git a/addons/project/i18n/ru.po b/addons/project/i18n/ru.po
index ff924e375e1..42a882feb17 100644
--- a/addons/project/i18n/ru.po
+++ b/addons/project/i18n/ru.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-09-15 04:55+0000\n"
-"X-Generator: Launchpad (build 15944)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@@ -1330,8 +1330,8 @@ msgstr ""
#. module: project
#: view:project.task:0
-msgid "Delegations History"
-msgstr "История Делегирования"
+msgid "Delegation"
+msgstr ""
#. module: project
#: model:ir.model,name:project.model_res_users
@@ -2387,5 +2387,8 @@ msgstr "Задания в работе"
#~ msgid "project.installer"
#~ msgstr "project.installer"
+#~ msgid "Delegations History"
+#~ msgstr "История Делегирования"
+
#~ msgid "E-mail composition wizard"
#~ msgstr "Мастер создания электронной почты"
diff --git a/addons/project/i18n/sk.po b/addons/project/i18n/sk.po
index 8fff648e513..e73a5b7e0bb 100644
--- a/addons/project/i18n/sk.po
+++ b/addons/project/i18n/sk.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@@ -1276,7 +1276,7 @@ msgstr ""
#. module: project
#: view:project.task:0
-msgid "Delegations History"
+msgid "Delegation"
msgstr ""
#. module: project
diff --git a/addons/project/i18n/sl.po b/addons/project/i18n/sl.po
index a1fbb859a5b..e14fb9acb57 100644
--- a/addons/project/i18n/sl.po
+++ b/addons/project/i18n/sl.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@@ -1275,7 +1275,7 @@ msgstr ""
#. module: project
#: view:project.task:0
-msgid "Delegations History"
+msgid "Delegation"
msgstr ""
#. module: project
diff --git a/addons/project/i18n/sq.po b/addons/project/i18n/sq.po
index 56deafc1420..75cf3348b8b 100644
--- a/addons/project/i18n/sq.po
+++ b/addons/project/i18n/sq.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:41+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@@ -1276,7 +1276,7 @@ msgstr ""
#. module: project
#: view:project.task:0
-msgid "Delegations History"
+msgid "Delegation"
msgstr ""
#. module: project
diff --git a/addons/project/i18n/sv.po b/addons/project/i18n/sv.po
index 0ddcb5ba646..e48077a544b 100644
--- a/addons/project/i18n/sv.po
+++ b/addons/project/i18n/sv.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@@ -1326,8 +1326,8 @@ msgstr ""
#. module: project
#: view:project.task:0
-msgid "Delegations History"
-msgstr "Delegeringshistorik"
+msgid "Delegation"
+msgstr ""
#. module: project
#: model:ir.model,name:project.model_res_users
@@ -2349,6 +2349,9 @@ msgstr "Pågående aktiviteter"
#~ msgid "Planned"
#~ msgstr "Planned"
+#~ msgid "Delegations History"
+#~ msgstr "Delegeringshistorik"
+
#~ msgid "E-mail composition wizard"
#~ msgstr "E-post editor"
diff --git a/addons/project/i18n/tlh.po b/addons/project/i18n/tlh.po
index cf9fc993586..b0a60c6fa8e 100644
--- a/addons/project/i18n/tlh.po
+++ b/addons/project/i18n/tlh.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@@ -1275,7 +1275,7 @@ msgstr ""
#. module: project
#: view:project.task:0
-msgid "Delegations History"
+msgid "Delegation"
msgstr ""
#. module: project
diff --git a/addons/project/i18n/tr.po b/addons/project/i18n/tr.po
index ff2ed9a3b4d..1cb7bd887b2 100644
--- a/addons/project/i18n/tr.po
+++ b/addons/project/i18n/tr.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@@ -1283,7 +1283,7 @@ msgstr ""
#. module: project
#: view:project.task:0
-msgid "Delegations History"
+msgid "Delegation"
msgstr ""
#. module: project
diff --git a/addons/project/i18n/uk.po b/addons/project/i18n/uk.po
index 9aa0fcefa8f..31d082bb410 100644
--- a/addons/project/i18n/uk.po
+++ b/addons/project/i18n/uk.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@@ -1275,7 +1275,7 @@ msgstr ""
#. module: project
#: view:project.task:0
-msgid "Delegations History"
+msgid "Delegation"
msgstr ""
#. module: project
diff --git a/addons/project/i18n/vi.po b/addons/project/i18n/vi.po
index 5fa2656c267..c60e76d0290 100644
--- a/addons/project/i18n/vi.po
+++ b/addons/project/i18n/vi.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@@ -1276,7 +1276,7 @@ msgstr ""
#. module: project
#: view:project.task:0
-msgid "Delegations History"
+msgid "Delegation"
msgstr ""
#. module: project
diff --git a/addons/project/i18n/zh_CN.po b/addons/project/i18n/zh_CN.po
index 85bc1101182..89c2b76e4c7 100644
--- a/addons/project/i18n/zh_CN.po
+++ b/addons/project/i18n/zh_CN.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:43+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@@ -1286,8 +1286,8 @@ msgstr "计算公式为:项目经理估算的时间和实际花费的时间的
#. module: project
#: view:project.task:0
-msgid "Delegations History"
-msgstr "委派历史"
+msgid "Delegation"
+msgstr ""
#. module: project
#: model:ir.model,name:project.model_res_users
@@ -2444,3 +2444,6 @@ msgstr "进行中的任务"
#~ msgid "E-mail composition wizard"
#~ msgstr "邮件合并向导"
+
+#~ msgid "Delegations History"
+#~ msgstr "委派历史"
diff --git a/addons/project/i18n/zh_TW.po b/addons/project/i18n/zh_TW.po
index 248cb18f42c..3d27b0070cd 100644
--- a/addons/project/i18n/zh_TW.po
+++ b/addons/project/i18n/zh_TW.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-21 04:43+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@@ -1279,7 +1279,7 @@ msgstr ""
#. module: project
#: view:project.task:0
-msgid "Delegations History"
+msgid "Delegation"
msgstr ""
#. module: project
diff --git a/addons/project/project.py b/addons/project/project.py
index 35be1d82c6e..f15656905ca 100644
--- a/addons/project/project.py
+++ b/addons/project/project.py
@@ -49,8 +49,9 @@ class project_task_type(osv.osv):
}
_defaults = {
'sequence': 1,
- 'state': 'draft',
+ 'state': 'open',
'fold': False,
+ 'case_default': True,
}
_order = 'sequence'
diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml
index a5fd28fc06a..83d3414f74e 100644
--- a/addons/project/project_view.xml
+++ b/addons/project/project_view.xml
@@ -130,7 +130,7 @@
-
+
@@ -143,7 +143,6 @@
-
@@ -294,16 +293,14 @@
Click to start a new project.
-
-
+
Projects are used to organize your activities; plan
tasks, track issues, invoice timesheets. You can define
internal projects (R&D, Improve Sales Process),
private projects (My Todos) or customer ones.
-
-
- You will be able collaborate with internal users on
- projects or invite customers to share your activities.
+
+ You will be able collaborate with internal users on
+ projects or invite customers to share your activities.
@@ -402,8 +399,6 @@
states="cancelled,done" context="{'button_reactivate':True}"/>
-
@@ -450,7 +445,9 @@
-
+
+
@@ -517,7 +514,7 @@
Edit...
Delete
-
+
- 1
- 2
- 5
@@ -534,7 +531,8 @@
-
+ oe_kanban_text_red
+
@@ -795,7 +793,7 @@
-
+
diff --git a/addons/project/res_config.py b/addons/project/res_config.py
index 6642dbf485d..85b4bd7001b 100644
--- a/addons/project/res_config.py
+++ b/addons/project/res_config.py
@@ -30,7 +30,7 @@ class project_configuration(osv.osv_memory):
'module_project_mrp': fields.boolean('Generate tasks from sale orders',
help ="""This feature automatically creates project tasks from service products in sale orders.
More precisely, tasks are created for procurement lines with product of type 'Service',
- procurement method 'Make to Order', and supply method 'Produce'.
+ procurement method 'Make to Order', and supply method 'Manufacture'.
This installs the module project_mrp."""),
'module_pad': fields.boolean("Use integrated collaborative note pads on task",
help="""Lets the company customize which Pad installation should be used to link to new pads
@@ -52,7 +52,7 @@ class project_configuration(osv.osv_memory):
'module_project_issue_sheet': fields.boolean("Invoice working time on issues",
help="""Provides timesheet support for the issues/bugs management in project.
This installs the module project_issue_sheet."""),
- 'group_tasks_work_on_tasks': fields.boolean("Compute work activities on tasks",
+ 'group_tasks_work_on_tasks': fields.boolean("Log work activities on tasks",
implied_group='project.group_tasks_work_on_tasks',
help="Allows you to compute work on tasks."),
'group_time_work_estimation_tasks': fields.boolean("Manage time estimation on tasks",
@@ -72,4 +72,9 @@ class project_configuration(osv.osv_memory):
user = self.pool.get('res.users').browse(cr, uid, uid, context)
user.company_id.write({'project_time_mode_id': config.time_unit.id})
+ def onchange_time_estimation_project_timesheet(self, cr, uid, ids, group_time_work_estimation_tasks, module_project_timesheet):
+ if group_time_work_estimation_tasks or module_project_timesheet:
+ return {'value': {'group_tasks_work_on_tasks': True}}
+ return {}
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/project/res_config_view.xml b/addons/project/res_config_view.xml
index 56803484adf..207f35da72e 100644
--- a/addons/project/res_config_view.xml
+++ b/addons/project/res_config_view.xml
@@ -29,7 +29,7 @@
-
+
@@ -50,7 +50,7 @@
-
+
diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml
index fea22c519a8..8d54520261f 100644
--- a/addons/project_issue/project_issue_view.xml
+++ b/addons/project_issue/project_issue_view.xml
@@ -100,8 +100,6 @@
states="open"/>
-
@@ -118,7 +116,11 @@
-
+
+
+
+
+
@@ -269,9 +271,7 @@