From cb81b9b6d5647709f5705a47fb51f5c807f754d6 Mon Sep 17 00:00:00 2001
From: "Anand Patel (OpenERP)"
Date: Wed, 18 Jul 2012 12:02:34 +0530
Subject: [PATCH 01/82] [FIX][TRUNK]Sale order reference changed in sale order
calendar view
lp bug: https://launchpad.net/bugs/1003861 fixed
bzr revid: pan@tinyerp.com-20120718063234-jnhjkhrjnnocg4ag
---
addons/web_calendar/static/src/js/calendar.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/addons/web_calendar/static/src/js/calendar.js b/addons/web_calendar/static/src/js/calendar.js
index 59ca58bec86..2989b31ddfa 100644
--- a/addons/web_calendar/static/src/js/calendar.js
+++ b/addons/web_calendar/static/src/js/calendar.js
@@ -387,8 +387,8 @@ instance.web_calendar.CalendarView = instance.web.View.extend({
}
},
get_event_data: function(event_obj) {
- var data = {
- name: event_obj.text
+ var data = {
+ //name: event_obj.text
};
data[this.date_start] = instance.web.datetime_to_str(event_obj.start_date);
if (this.date_stop) {
From aa6aa08f8d08d21834d72466f7f0518783052f90 Mon Sep 17 00:00:00 2001
From: "Anand Patel (OpenERP)"
Date: Wed, 29 Aug 2012 15:46:42 +0530
Subject: [PATCH 02/82] [FIX][TRUNK]Sale order reference changed in sale order
calendar view
bzr revid: pan@tinyerp.com-20120829101642-04qta93yeifjew1i
---
addons/web_calendar/static/src/js/calendar.js | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/addons/web_calendar/static/src/js/calendar.js b/addons/web_calendar/static/src/js/calendar.js
index b1c164a3c61..4b839f0666a 100644
--- a/addons/web_calendar/static/src/js/calendar.js
+++ b/addons/web_calendar/static/src/js/calendar.js
@@ -388,9 +388,7 @@ instance.web_calendar.CalendarView = instance.web.View.extend({
}
},
get_event_data: function(event_obj) {
- var data = {
- //name: event_obj.text
- };
+ var data = {};
data[this.date_start] = instance.web.datetime_to_str(event_obj.start_date);
if (this.date_stop) {
data[this.date_stop] = instance.web.datetime_to_str(event_obj.end_date);
From 2a1bd62ed539a7613d04ed37ac631b8a8c2a6822 Mon Sep 17 00:00:00 2001
From: "Foram Katharotiya (OpenERP)"
Date: Wed, 3 Oct 2012 11:18:46 +0530
Subject: [PATCH 03/82] [IMP] dialog after survey is completed says Complete
Survey rename it to Survey Completed
bzr revid: fka@tinyerp.com-20121003054846-6yy1eicqk5oqancq
---
addons/survey/wizard/survey_answer.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/survey/wizard/survey_answer.py b/addons/survey/wizard/survey_answer.py
index 8ece1e184cf..76d2f012be8 100644
--- a/addons/survey/wizard/survey_answer.py
+++ b/addons/survey/wizard/survey_answer.py
@@ -435,7 +435,7 @@ class survey_question_wiz(osv.osv_memory):
xml_form = etree.Element('form', {'string': _('Complete Survey Answer')})
xml_footer = etree.SubElement(xml_form, 'footer', {'col': '6', 'colspan': '4' ,'class': 'oe_survey_title_height'})
- etree.SubElement(xml_form, 'separator', {'string': 'Complete Survey', 'colspan': "4"})
+ etree.SubElement(xml_form, 'separator', {'string': 'Survey Completed', 'colspan': "4"})
etree.SubElement(xml_form, 'label', {'string': 'Thanks for your Answer'})
etree.SubElement(xml_form, 'newline')
etree.SubElement(xml_footer, 'button', {'special':"cancel",'string':"OK",'colspan':"2",'class':'oe_highlight'})
From 38bca04309f47d2e13b8f26374efeb28d900da54 Mon Sep 17 00:00:00 2001
From: "Foram Katharotiya (OpenERP)"
Date: Wed, 3 Oct 2012 11:37:49 +0530
Subject: [PATCH 04/82] [IMP] remove Survey Open Date field in survey
bzr revid: fka@tinyerp.com-20121003060749-wr41pmtkfhdfdcr5
---
addons/survey/survey.py | 3 +--
addons/survey/survey_demo.xml | 3 ---
addons/survey/survey_view.xml | 3 ---
3 files changed, 1 insertion(+), 8 deletions(-)
diff --git a/addons/survey/survey.py b/addons/survey/survey.py
index d01140092d4..a996c4312ab 100644
--- a/addons/survey/survey.py
+++ b/addons/survey/survey.py
@@ -53,7 +53,6 @@ class survey(osv.osv):
'id': fields.integer('ID'),
'title': fields.char('Survey Title', size=128, required=1),
'page_ids': fields.one2many('survey.page', 'survey_id', 'Page'),
- 'date_open': fields.datetime('Survey Open Date', readonly=1),
'date_close': fields.datetime('Survey Close Date', readonly=1),
'max_response_limit': fields.integer('Maximum Answer Limit',
help="Set to one if survey is answerable only once"),
@@ -80,7 +79,7 @@ class survey(osv.osv):
}
def survey_open(self, cr, uid, ids, arg):
- self.write(cr, uid, ids, {'state': 'open', 'date_open': strftime("%Y-%m-%d %H:%M:%S")})
+ self.write(cr, uid, ids, {'state': 'open'})
return True
def survey_close(self, cr, uid, ids, arg):
diff --git a/addons/survey/survey_demo.xml b/addons/survey/survey_demo.xml
index 6f89095c699..f9a3e8f3159 100644
--- a/addons/survey/survey_demo.xml
+++ b/addons/survey/survey_demo.xml
@@ -17,7 +17,6 @@
1
1
5
-
@@ -166,7 +165,6 @@
1
1
5
-
@@ -633,7 +631,6 @@
1
1
5
-
diff --git a/addons/survey/survey_view.xml b/addons/survey/survey_view.xml
index 01d6098df55..c71e4e8d537 100644
--- a/addons/survey/survey_view.xml
+++ b/addons/survey/survey_view.xml
@@ -220,7 +220,6 @@
-
@@ -253,7 +252,6 @@
-
@@ -295,7 +293,6 @@
-
From 70d971c3d71ba0dd49cad49a3088e3b386b4bbf0 Mon Sep 17 00:00:00 2001
From: "Foram Katharotiya (OpenERP)"
Date: Wed, 3 Oct 2012 12:04:32 +0530
Subject: [PATCH 05/82] [IMP] every field editable in survey when survey is in
open state
bzr revid: fka@tinyerp.com-20121003063432-nktuyqz1batgu0ne
---
addons/survey/survey.py | 8 ++++----
addons/survey/survey_view.xml | 6 +++---
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/addons/survey/survey.py b/addons/survey/survey.py
index a996c4312ab..999dec0aadc 100644
--- a/addons/survey/survey.py
+++ b/addons/survey/survey.py
@@ -60,10 +60,10 @@ class survey(osv.osv):
help="Set to one if you require only one Answer per user"),
'state': fields.selection([('open', 'Open'), ('cancel', 'Cancelled'),('close', 'Closed') ], 'Status', readonly=True),
'responsible_id': fields.many2one('res.users', 'Responsible', help="User responsible for survey"),
- 'tot_start_survey': fields.integer("Total Started Survey", readonly=1),
- 'tot_comp_survey': fields.integer("Total Completed Survey", readonly=1),
+ 'tot_start_survey': fields.integer("Total Started Survey"),
+ 'tot_comp_survey': fields.integer("Total Completed Survey"),
'note': fields.text('Description', size=128),
- 'history': fields.one2many('survey.history', 'survey_id', 'History Lines', readonly=True),
+ 'history': fields.one2many('survey.history', 'survey_id', 'History Lines'),
'users': fields.many2many('res.users', 'survey_users_rel', 'sid', 'uid', 'Users'),
'send_response': fields.boolean('Email Notification on Answer'),
'type': fields.many2one('survey.type', 'Type'),
@@ -187,7 +187,7 @@ class survey_history(osv.osv):
'date': fields.datetime('Date started', readonly=1),
}
_defaults = {
- 'date': lambda * a: datetime.datetime.now()
+ 'date': lambda * a: strftime("%Y-%m-%d %H:%M:%S")
}
survey_history()
diff --git a/addons/survey/survey_view.xml b/addons/survey/survey_view.xml
index c71e4e8d537..a03df6800e7 100644
--- a/addons/survey/survey_view.xml
+++ b/addons/survey/survey_view.xml
@@ -49,8 +49,8 @@
-
-
+
+
@@ -215,7 +215,7 @@
-
+
From 9f79e73ac88f12770cffb43b41d5f81fafc30db0 Mon Sep 17 00:00:00 2001
From: "Foram Katharotiya (OpenERP)"
Date: Wed, 3 Oct 2012 12:53:48 +0530
Subject: [PATCH 06/82] [IMP] Add m2m_tags for Select Partne & change default
mail subject in send invitation
bzr revid: fka@tinyerp.com-20121003072348-lw76eoym8i3jdqcc
---
addons/survey/wizard/survey_send_invitation.py | 4 ++--
addons/survey/wizard/survey_send_invitation.xml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/addons/survey/wizard/survey_send_invitation.py b/addons/survey/wizard/survey_send_invitation.py
index 5677a985e09..61e1dd23665 100644
--- a/addons/survey/wizard/survey_send_invitation.py
+++ b/addons/survey/wizard/survey_send_invitation.py
@@ -50,8 +50,6 @@ class survey_send_invitation(osv.osv_memory):
_defaults = {
'send_mail': lambda *a: 1,
'send_mail_existing': lambda *a: 1,
- 'mail_subject': lambda *a: "Invitation",
- 'mail_subject_existing': lambda *a: "Invitation",
'mail_from': lambda *a: tools.config['email_from']
}
@@ -75,6 +73,8 @@ class survey_send_invitation(osv.osv_memory):
data['mail'] = '''Hello %(name)s, \n\n We are inviting you for following survey. \
\n ''' + name + '''\n Your login ID: %(login)s, Your password: %(passwd)s
\n link :- http://'''+ str(socket.gethostname()) + ''':8080 \n\n Thanks,'''
+ data['mail_subject'] = "Invitation for " + sur.title
+ data['mail_subject_existing'] = "Invitation for " + sur.title
return data
def create_report(self, cr, uid, res_ids, report_name=False, file_name=False):
diff --git a/addons/survey/wizard/survey_send_invitation.xml b/addons/survey/wizard/survey_send_invitation.xml
index 340cb58b5cf..a611973d772 100644
--- a/addons/survey/wizard/survey_send_invitation.xml
+++ b/addons/survey/wizard/survey_send_invitation.xml
@@ -16,7 +16,7 @@
-
+
From 6ff616dd04e02303c855dc0a51b397810e9f8739 Mon Sep 17 00:00:00 2001
From: "Foram Katharotiya (OpenERP)"
Date: Wed, 3 Oct 2012 14:50:43 +0530
Subject: [PATCH 07/82] [IMP] improve code
bzr revid: fka@tinyerp.com-20121003092043-e3id1isgm65itoef
---
addons/survey/survey.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/survey/survey.py b/addons/survey/survey.py
index 999dec0aadc..6e350ccf9ce 100644
--- a/addons/survey/survey.py
+++ b/addons/survey/survey.py
@@ -187,7 +187,7 @@ class survey_history(osv.osv):
'date': fields.datetime('Date started', readonly=1),
}
_defaults = {
- 'date': lambda * a: strftime("%Y-%m-%d %H:%M:%S")
+ 'date': lambda * a: datetime.datetime.now()
}
survey_history()
From f2ebee24e88f642dddfb339b00c8ca6f73467da1 Mon Sep 17 00:00:00 2001
From: "Foram Katharotiya (OpenERP)"
Date: Wed, 3 Oct 2012 16:05:24 +0530
Subject: [PATCH 08/82] [IMP] improve code
bzr revid: fka@tinyerp.com-20121003103524-j480eazwonxu1g4y
---
addons/survey/wizard/survey_send_invitation.py | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/addons/survey/wizard/survey_send_invitation.py b/addons/survey/wizard/survey_send_invitation.py
index 61e1dd23665..8c9bb2a7fbe 100644
--- a/addons/survey/wizard/survey_send_invitation.py
+++ b/addons/survey/wizard/survey_send_invitation.py
@@ -50,7 +50,6 @@ class survey_send_invitation(osv.osv_memory):
_defaults = {
'send_mail': lambda *a: 1,
'send_mail_existing': lambda *a: 1,
- 'mail_from': lambda *a: tools.config['email_from']
}
def genpasswd(self):
@@ -68,13 +67,14 @@ class survey_send_invitation(osv.osv_memory):
name += "\t --> " + sur.title + "\n"
if sur.state != 'open':
msg += sur.title + "\n"
+ data['mail_subject'] = "Invitation for " + sur.title
+ data['mail_subject_existing'] = "Invitation for " + sur.title
+ data['mail_from'] = sur.responsible_id.email
if msg:
raise osv.except_osv(_('Warning!'), _('%sSurvey is not in open state') % msg)
data['mail'] = '''Hello %(name)s, \n\n We are inviting you for following survey. \
\n ''' + name + '''\n Your login ID: %(login)s, Your password: %(passwd)s
\n link :- http://'''+ str(socket.gethostname()) + ''':8080 \n\n Thanks,'''
- data['mail_subject'] = "Invitation for " + sur.title
- data['mail_subject_existing'] = "Invitation for " + sur.title
return data
def create_report(self, cr, uid, res_ids, report_name=False, file_name=False):
From 064d80917e76d52e133b6609cdc3ce3fbaf9d4f9 Mon Sep 17 00:00:00 2001
From: "Foram Katharotiya (OpenERP)"
Date: Wed, 3 Oct 2012 17:19:46 +0530
Subject: [PATCH 09/82] [IMP] change old port 8080
bzr revid: fka@tinyerp.com-20121003114946-n25y3i5yx2s3bild
---
addons/survey/wizard/survey_send_invitation.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/survey/wizard/survey_send_invitation.py b/addons/survey/wizard/survey_send_invitation.py
index 8c9bb2a7fbe..b6d68a47004 100644
--- a/addons/survey/wizard/survey_send_invitation.py
+++ b/addons/survey/wizard/survey_send_invitation.py
@@ -74,7 +74,7 @@ class survey_send_invitation(osv.osv_memory):
raise osv.except_osv(_('Warning!'), _('%sSurvey is not in open state') % msg)
data['mail'] = '''Hello %(name)s, \n\n We are inviting you for following survey. \
\n ''' + name + '''\n Your login ID: %(login)s, Your password: %(passwd)s
- \n link :- http://'''+ str(socket.gethostname()) + ''':8080 \n\n Thanks,'''
+ \n link :- http://'''+ str(socket.gethostname()) + ''':8069 \n\n Thanks,'''
return data
def create_report(self, cr, uid, res_ids, report_name=False, file_name=False):
From c2eb5616b7ed3ffb84ef1094b8296b20e5ab9174 Mon Sep 17 00:00:00 2001
From: "Foram Katharotiya (OpenERP)"
Date: Thu, 4 Oct 2012 14:43:51 +0530
Subject: [PATCH 10/82] [IMP] improve code
bzr revid: fka@tinyerp.com-20121004091351-sky1or0w62lqmf1d
---
addons/survey/survey.py | 10 ++++++----
addons/survey/survey_demo.xml | 3 +++
addons/survey/survey_view.xml | 3 +++
3 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/addons/survey/survey.py b/addons/survey/survey.py
index 6e350ccf9ce..b3d38aeeb4d 100644
--- a/addons/survey/survey.py
+++ b/addons/survey/survey.py
@@ -53,6 +53,7 @@ class survey(osv.osv):
'id': fields.integer('ID'),
'title': fields.char('Survey Title', size=128, required=1),
'page_ids': fields.one2many('survey.page', 'survey_id', 'Page'),
+ 'date_open': fields.datetime('Survey Open Date', readonly=1),
'date_close': fields.datetime('Survey Close Date', readonly=1),
'max_response_limit': fields.integer('Maximum Answer Limit',
help="Set to one if survey is answerable only once"),
@@ -60,10 +61,10 @@ class survey(osv.osv):
help="Set to one if you require only one Answer per user"),
'state': fields.selection([('open', 'Open'), ('cancel', 'Cancelled'),('close', 'Closed') ], 'Status', readonly=True),
'responsible_id': fields.many2one('res.users', 'Responsible', help="User responsible for survey"),
- 'tot_start_survey': fields.integer("Total Started Survey"),
- 'tot_comp_survey': fields.integer("Total Completed Survey"),
+ 'tot_start_survey': fields.integer("Total Started Survey", readonly=1),
+ 'tot_comp_survey': fields.integer("Total Completed Survey", readonly=1),
'note': fields.text('Description', size=128),
- 'history': fields.one2many('survey.history', 'survey_id', 'History Lines'),
+ 'history': fields.one2many('survey.history', 'survey_id', 'History Lines', readonly=True),
'users': fields.many2many('res.users', 'survey_users_rel', 'sid', 'uid', 'Users'),
'send_response': fields.boolean('Email Notification on Answer'),
'type': fields.many2one('survey.type', 'Type'),
@@ -76,10 +77,11 @@ class survey(osv.osv):
'tot_comp_survey': lambda * a: 0,
'send_response': lambda * a: 1,
'response_user': lambda * a:1,
+ 'date_open': strftime("%Y-%m-%d %H:%M:%S"),
}
def survey_open(self, cr, uid, ids, arg):
- self.write(cr, uid, ids, {'state': 'open'})
+ self.write(cr, uid, ids, {'state': 'open', 'date_open': strftime("%Y-%m-%d %H:%M:%S")})
return True
def survey_close(self, cr, uid, ids, arg):
diff --git a/addons/survey/survey_demo.xml b/addons/survey/survey_demo.xml
index f9a3e8f3159..6f89095c699 100644
--- a/addons/survey/survey_demo.xml
+++ b/addons/survey/survey_demo.xml
@@ -17,6 +17,7 @@
1
1
5
+
@@ -165,6 +166,7 @@
1
1
5
+
@@ -631,6 +633,7 @@
1
1
5
+
diff --git a/addons/survey/survey_view.xml b/addons/survey/survey_view.xml
index a03df6800e7..e6d92b72ba1 100644
--- a/addons/survey/survey_view.xml
+++ b/addons/survey/survey_view.xml
@@ -220,6 +220,7 @@
+
@@ -252,6 +253,7 @@
+
@@ -293,6 +295,7 @@
+
From 9dd89df9ce1132de0174ea56145237f9006787e8 Mon Sep 17 00:00:00 2001
From: "Foram Katharotiya (OpenERP)"
Date: Thu, 4 Oct 2012 16:47:03 +0530
Subject: [PATCH 11/82] [IMP] make all fields readable in close state
bzr revid: fka@tinyerp.com-20121004111703-nrzz774gjydu0oo8
---
addons/survey/survey_view.xml | 14 +++++++-------
addons/survey/wizard/survey_answer.py | 2 +-
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/addons/survey/survey_view.xml b/addons/survey/survey_view.xml
index e6d92b72ba1..c0bf7d25b7b 100644
--- a/addons/survey/survey_view.xml
+++ b/addons/survey/survey_view.xml
@@ -38,15 +38,15 @@
-
+
-
-
-
+
+
+
@@ -55,7 +55,7 @@
-
+
-
+
-
+
diff --git a/addons/survey/wizard/survey_answer.py b/addons/survey/wizard/survey_answer.py
index 76d2f012be8..5a027601446 100644
--- a/addons/survey/wizard/survey_answer.py
+++ b/addons/survey/wizard/survey_answer.py
@@ -429,7 +429,7 @@ class survey_question_wiz(osv.osv_memory):
vals['attachment_ids'] = [(0,0,{'name': a_name,
'datas_fname': a_name,
'datas': str(a_content).encode('base64')})
- for a_name, a_content in attachments]
+ for a_name, a_content in attachments.items()]
self.pool.get('mail.mail').create(cr, uid, vals, context=context)
xml_form = etree.Element('form', {'string': _('Complete Survey Answer')})
From f07e90b5cbfa0fbd8f8b57fa097bb5ba8f93a2cd Mon Sep 17 00:00:00 2001
From: "Foram Katharotiya (OpenERP)"
Date: Fri, 5 Oct 2012 11:08:34 +0530
Subject: [PATCH 12/82] [IMP] solve error When click on Edit Survey
bzr revid: fka@tinyerp.com-20121005053834-62y619ae1xe10ojg
---
addons/survey/wizard/survey_answer.py | 43 ++++++++++++++-------------
1 file changed, 23 insertions(+), 20 deletions(-)
diff --git a/addons/survey/wizard/survey_answer.py b/addons/survey/wizard/survey_answer.py
index 5a027601446..10ab4bf82da 100644
--- a/addons/survey/wizard/survey_answer.py
+++ b/addons/survey/wizard/survey_answer.py
@@ -112,26 +112,29 @@ class survey_question_wiz(osv.osv_memory):
flag = False
fields = {}
if sur_name_read.page == "next" or sur_name_rec.page_no == -1:
- if total_pages > sur_name_rec.page_no + 1:
- if ((context.has_key('active') and not context.get('active', False)) \
- or not context.has_key('active')) and not sur_name_rec.page_no + 1:
- if sur_rec.state != "open" :
- raise osv.except_osv(_('Warning!'),_("You cannot answer because the survey is not open."))
- cr.execute('select count(id) from survey_history where user_id=%s\
- and survey_id=%s', (uid,survey_id))
- res = cr.fetchone()[0]
- user_limit = survey_obj.browse(cr, uid, survey_id)
- user_limit = user_limit.response_user
- if user_limit and res >= user_limit:
- raise osv.except_osv(_('Warning!'),_("You cannot answer this survey more than %s times.") % (user_limit))
-
- if sur_rec.max_response_limit and sur_rec.max_response_limit <= sur_rec.tot_start_survey and not sur_name_rec.page_no + 1:
- survey_obj.write(cr, uid, survey_id, {'state':'close', 'date_close':strftime("%Y-%m-%d %H:%M:%S")})
-
- p_id = p_id[sur_name_rec.page_no + 1]
- surv_name_wiz.write(cr, uid, [context['sur_name_id'],], {'page_no' : sur_name_rec.page_no + 1})
- flag = True
- page_number += 1
+ if total_pages:
+ if total_pages > sur_name_rec.page_no + 1:
+ if ((context.has_key('active') and not context.get('active', False)) \
+ or not context.has_key('active')) and not sur_name_rec.page_no + 1:
+ if sur_rec.state != "open" :
+ raise osv.except_osv(_('Warning!'),_("You cannot answer because the survey is not open."))
+ cr.execute('select count(id) from survey_history where user_id=%s\
+ and survey_id=%s', (uid,survey_id))
+ res = cr.fetchone()[0]
+ user_limit = survey_obj.browse(cr, uid, survey_id)
+ user_limit = user_limit.response_user
+ if user_limit and res >= user_limit:
+ raise osv.except_osv(_('Warning!'),_("You cannot answer this survey more than %s times.") % (user_limit))
+
+ if sur_rec.max_response_limit and sur_rec.max_response_limit <= sur_rec.tot_start_survey and not sur_name_rec.page_no + 1:
+ survey_obj.write(cr, uid, survey_id, {'state':'close', 'date_close':strftime("%Y-%m-%d %H:%M:%S")})
+
+ p_id = p_id[sur_name_rec.page_no + 1]
+ surv_name_wiz.write(cr, uid, [context['sur_name_id'],], {'page_no' : sur_name_rec.page_no + 1})
+ flag = True
+ page_number += 1
+ else:
+ raise osv.except_osv(_('Warning!'),_('This survey has no pages defined. Please define the pages first.'))
if sur_name_rec.page_no > - 1:
pre_button = True
else:
From dab351dcc7d8680b91ba99a235811958b41917dc Mon Sep 17 00:00:00 2001
From: "Foram Katharotiya (OpenERP)"
Date: Fri, 5 Oct 2012 11:53:07 +0530
Subject: [PATCH 13/82] [IMP] solve error When no pages define on test survey
bzr revid: fka@tinyerp.com-20121005062307-er263zwe3mm9dgt3
---
addons/survey/survey.py | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/addons/survey/survey.py b/addons/survey/survey.py
index b3d38aeeb4d..809079eaedb 100644
--- a/addons/survey/survey.py
+++ b/addons/survey/survey.py
@@ -164,10 +164,14 @@ class survey(osv.osv):
'context': context
}
def test_survey(self, cr, uid, ids, context=None):
- sur_obj = self.read(cr, uid, ids,['title'], context=context)
+ sur_obj = self.read(cr, uid, ids,['title','page_ids'], context=context)
for sur in sur_obj:
name = sur['title']
- context.update({'active':True,'survey_id': ids[0]})
+ pages = sur['page_ids']
+ if not pages:
+ raise osv.except_osv(_('Warning!'), _('This survey has no pages defined. Please define pages first.'))
+ else:
+ context.update({'active':True,'survey_id': ids[0]})
return {
'view_type': 'form',
'view_mode': 'form',
From b2661913d4ae1ca15e558ed5b8310d78a0fcc4a2 Mon Sep 17 00:00:00 2001
From: "Foram Katharotiya (OpenERP)"
Date: Fri, 5 Oct 2012 16:01:36 +0530
Subject: [PATCH 14/82] [IMP] solve error When no pages define in edit survey
bzr revid: fka@tinyerp.com-20121005103136-ji9uo2h4eow9aqec
---
addons/survey/wizard/survey_answer.py | 18 ++++++++++++++----
1 file changed, 14 insertions(+), 4 deletions(-)
diff --git a/addons/survey/wizard/survey_answer.py b/addons/survey/wizard/survey_answer.py
index 5a027601446..7e1417ecdb7 100644
--- a/addons/survey/wizard/survey_answer.py
+++ b/addons/survey/wizard/survey_answer.py
@@ -134,6 +134,8 @@ class survey_question_wiz(osv.osv_memory):
page_number += 1
if sur_name_rec.page_no > - 1:
pre_button = True
+ else:
+ flag = True
else:
if sur_name_rec.page_no != 0:
p_id = p_id[sur_name_rec.page_no - 1]
@@ -146,7 +148,15 @@ class survey_question_wiz(osv.osv_memory):
pre_button = True
if flag:
pag_rec = page_obj.browse(cr, uid, p_id, context=context)
- xml_form = etree.Element('form', {'string': tools.ustr(pag_rec.title or sur_rec.title)})
+ note = False
+ question_ids = []
+ if pag_rec:
+ title = pag_rec.title
+ note = pag_rec.note
+ question_ids=pag_rec.question_ids
+ else:
+ title=sur_rec.title
+ xml_form = etree.Element('form', {'string': tools.ustr(title)})
if context.has_key('active') and context.get('active',False) and context.has_key('edit'):
context.update({'page_id' : tools.ustr(p_id),'page_number' : sur_name_rec.page_no , 'transfer' : sur_name_read.transfer})
xml_group3 = etree.SubElement(xml_form, 'group', {'col': '4', 'colspan': '4'})
@@ -174,10 +184,10 @@ class survey_question_wiz(osv.osv_memory):
fields["wizardid_" + str(wiz_id)] = {'type':'char', 'size' : 255, 'string':"", 'views':{}}
etree.SubElement(xml_form, 'field', {'invisible':'1','name': "wizardid_" + str(wiz_id),'default':str(lambda *a: 0),'modifiers':'{"invisible":true}'})
- if pag_rec.note:
- for que_test in pag_rec.note.split('\n'):
+ if note:
+ for que_test in note.split('\n'):
etree.SubElement(xml_form, 'label', {'string': to_xml(tools.ustr(que_test)), 'align':"0.0"})
- que_ids = pag_rec.question_ids
+ que_ids = question_ids
qu_no = 0
for que in que_ids:
From 09e5d404df56c542e7f9f8b6256d77183797b9ba Mon Sep 17 00:00:00 2001
From: "Divyesh Makwana (Open ERP)"
Date: Mon, 8 Oct 2012 14:18:04 +0530
Subject: [PATCH 15/82] [IMP] mail : Improved the terminologies.
bzr revid: mdi@tinyerp.com-20121008084804-9mmxzdlyxhyarf0j
---
addons/mail/mail_message.py | 4 ++--
addons/mail/mail_thread_view.xml | 2 +-
addons/mail/wizard/mail_compose_message_view.xml | 4 ++--
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/addons/mail/mail_message.py b/addons/mail/mail_message.py
index bbf68509277..61ea9fb9f6b 100644
--- a/addons/mail/mail_message.py
+++ b/addons/mail/mail_message.py
@@ -580,11 +580,11 @@ class mail_message(osv.Model):
partner_wo_email_lst.append(partner)
if not partner_wo_email_lst:
return {}
- warning_msg = _('The following partners chosen as recipients for the email have no email address linked :')
+ warning_msg = _('The following contacts do not have an email address specified.')
for partner in partner_wo_email_lst:
warning_msg += '\n- %s' % (partner.name)
return {'warning': {
- 'title': _('Partners email addresses not found'),
+ 'title': _('Email not found'),
'message': warning_msg,
}
}
diff --git a/addons/mail/mail_thread_view.xml b/addons/mail/mail_thread_view.xml
index 3507e7c449f..5f504f3c3da 100644
--- a/addons/mail/mail_thread_view.xml
+++ b/addons/mail/mail_thread_view.xml
@@ -9,7 +9,7 @@
sequence="10"/>
-
+
diff --git a/addons/mail/wizard/mail_compose_message_view.xml b/addons/mail/wizard/mail_compose_message_view.xml
index 0f384dc5a0d..c7b9ed36a39 100644
--- a/addons/mail/wizard/mail_compose_message_view.xml
+++ b/addons/mail/wizard/mail_compose_message_view.xml
@@ -58,10 +58,10 @@
-
-
Date: Mon, 8 Oct 2012 14:35:29 +0530
Subject: [PATCH 16/82] [IMP] mail : Partners should always be replaced with
Customer, Supplier, or Contact (if it can be both).
bzr revid: mdi@tinyerp.com-20121008090529-pi43dm3zxc1jsqbm
---
addons/mail/mail_message.py | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/addons/mail/mail_message.py b/addons/mail/mail_message.py
index 61ea9fb9f6b..68e40ef705c 100644
--- a/addons/mail/mail_message.py
+++ b/addons/mail/mail_message.py
@@ -580,8 +580,13 @@ class mail_message(osv.Model):
partner_wo_email_lst.append(partner)
if not partner_wo_email_lst:
return {}
- warning_msg = _('The following contacts do not have an email address specified.')
for partner in partner_wo_email_lst:
+ terminology = 'Contact'
+ if partner.customer and not partner.supplier:
+ terminology = 'Customer'
+ elif partner.supplier and not partner.customer:
+ terminology = 'Supplier'
+ warning_msg = _('The following %s do not have an email address specified.') % (terminology,)
warning_msg += '\n- %s' % (partner.name)
return {'warning': {
'title': _('Email not found'),
From 65e70487c2842b72a2236876650a3dc4e595808f Mon Sep 17 00:00:00 2001
From: "Divyesh Makwana (Open ERP)"
Date: Mon, 8 Oct 2012 14:40:18 +0530
Subject: [PATCH 17/82] [IMP] mail : Partners should always be replaced with
Customer, Supplier, or Contact (if it can be both).
bzr revid: mdi@tinyerp.com-20121008091018-s116zi83vwfqkngy
---
addons/mail/mail_message.py | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/addons/mail/mail_message.py b/addons/mail/mail_message.py
index 68e40ef705c..df169f94404 100644
--- a/addons/mail/mail_message.py
+++ b/addons/mail/mail_message.py
@@ -581,11 +581,11 @@ class mail_message(osv.Model):
if not partner_wo_email_lst:
return {}
for partner in partner_wo_email_lst:
- terminology = 'Contact'
+ terminology = 'contact'
if partner.customer and not partner.supplier:
- terminology = 'Customer'
+ terminology = 'customer'
elif partner.supplier and not partner.customer:
- terminology = 'Supplier'
+ terminology = 'supplier'
warning_msg = _('The following %s do not have an email address specified.') % (terminology,)
warning_msg += '\n- %s' % (partner.name)
return {'warning': {
From 39eea5b86c60ba3f3314d3397eadbbe00f6c1beb Mon Sep 17 00:00:00 2001
From: "Divyesh Makwana (Open ERP)"
Date: Mon, 8 Oct 2012 15:00:50 +0530
Subject: [PATCH 18/82] [IMP] procurement : 'Compute schedulers' should be 'Run
schedulers'.
bzr revid: mdi@tinyerp.com-20121008093050-xvhx0vtz010xk2qg
---
addons/procurement/wizard/schedulers_all_view.xml | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/addons/procurement/wizard/schedulers_all_view.xml b/addons/procurement/wizard/schedulers_all_view.xml
index 2e72dfdbadc..321f05bb223 100644
--- a/addons/procurement/wizard/schedulers_all_view.xml
+++ b/addons/procurement/wizard/schedulers_all_view.xml
@@ -2,10 +2,10 @@
-
+
- Compute Schedulers
+ Run Schedulers
procurement.order.compute.all
@@ -21,7 +21,7 @@
-
Date: Mon, 8 Oct 2012 15:44:22 +0530
Subject: [PATCH 19/82] [IMP]all : improve string
bzr revid: mma@tinyerp.com-20121008101422-hen3r94996e6pzye
---
addons/base_calendar/base_calendar.py | 6 ++---
addons/base_calendar/crm_meeting_view.xml | 2 +-
.../crm_partner_assign/res_partner_view.xml | 2 +-
addons/hr_expense/hr_expense.py | 2 +-
addons/membership/membership.py | 2 +-
addons/product/product_view.xml | 4 ++--
addons/sale/sale_view.xml | 22 +++++++++++++++++--
7 files changed, 29 insertions(+), 11 deletions(-)
diff --git a/addons/base_calendar/base_calendar.py b/addons/base_calendar/base_calendar.py
index 5b8c41787d4..bcfb9340966 100644
--- a/addons/base_calendar/base_calendar.py
+++ b/addons/base_calendar/base_calendar.py
@@ -1016,9 +1016,9 @@ defines the list of date/time exceptions for a recurring calendar component."),
rule or repeating pattern of time to exclude from the recurring rule."),
'rrule': fields.function(_get_rulestring, type='char', size=124, \
fnct_inv=_rrule_write, store=True, string='Recurrent Rule'),
- 'rrule_type': fields.selection([('none', ''), ('daily', 'Daily'), \
- ('weekly', 'Weekly'), ('monthly', 'Monthly'), \
- ('yearly', 'Yearly'),],
+ 'rrule_type': fields.selection([('none', ''), ('daily', 'Day(s)'), \
+ ('weekly', 'Week(s)'), ('monthly', 'Month(s)'), \
+ ('yearly', 'Year(s)'),],
'Recurrency', states={'done': [('readonly', True)]},
help="Let the event automatically repeat at that interval"),
'alarm_id': fields.many2one('res.alarm', 'Reminder', states={'done': [('readonly', True)]},
diff --git a/addons/base_calendar/crm_meeting_view.xml b/addons/base_calendar/crm_meeting_view.xml
index adcfc23a520..26c11262a2c 100644
--- a/addons/base_calendar/crm_meeting_view.xml
+++ b/addons/base_calendar/crm_meeting_view.xml
@@ -86,7 +86,7 @@
-
+
diff --git a/addons/crm_partner_assign/res_partner_view.xml b/addons/crm_partner_assign/res_partner_view.xml
index f5a1e9aad25..d1e72432550 100644
--- a/addons/crm_partner_assign/res_partner_view.xml
+++ b/addons/crm_partner_assign/res_partner_view.xml
@@ -77,7 +77,7 @@
-
+
diff --git a/addons/hr_expense/hr_expense.py b/addons/hr_expense/hr_expense.py
index 91dc44fed61..a0d133aef86 100644
--- a/addons/hr_expense/hr_expense.py
+++ b/addons/hr_expense/hr_expense.py
@@ -233,7 +233,7 @@ hr_expense_expense()
class product_product(osv.osv):
_inherit = "product.product"
_columns = {
- 'hr_expense_ok': fields.boolean('Can Constitute an Expense', help="Determines if the product can be visible in the list of product within a selection from an HR expense sheet line."),
+ 'hr_expense_ok': fields.boolean('Can be Expensed', help="Determines if the product can be visible in the list of product within a selection from an HR expense sheet line."),
}
def on_change_hr_expense_ok(self, cr, uid, id, hr_expense_ok):
diff --git a/addons/membership/membership.py b/addons/membership/membership.py
index 87af723f2f9..f3192948afc 100644
--- a/addons/membership/membership.py
+++ b/addons/membership/membership.py
@@ -323,7 +323,7 @@ class Partner(osv.osv):
help = 'The price negotiated by the partner'),
'membership_state': fields.function(
__get_membership_state,
- string = 'Current Membership State', type = 'selection',
+ string = 'Current Membership Status', type = 'selection',
selection = STATE,
store = {
'account.invoice': (_get_invoice_partner, ['state'], 10),
diff --git a/addons/product/product_view.xml b/addons/product/product_view.xml
index 8c19aee026f..266a70e0fe3 100644
--- a/addons/product/product_view.xml
+++ b/addons/product/product_view.xml
@@ -144,7 +144,7 @@
-
+
@@ -763,7 +763,7 @@
-
+
diff --git a/addons/sale/sale_view.xml b/addons/sale/sale_view.xml
index 5505a6a88b5..920e64d46da 100644
--- a/addons/sale/sale_view.xml
+++ b/addons/sale/sale_view.xml
@@ -131,7 +131,24 @@
-
+
+
+
+
+
+
+
+
+
+
+
+ sale.order.tree
+ sale.order
+ 2
+
+
+
+
@@ -358,7 +375,7 @@
- Sales Orders
+ Sale Orders
ir.actions.act_window
sale.order
form
@@ -405,6 +422,7 @@
ir.actions.act_window
sale.order
form
+
tree,form,calendar,graph
{'show_address': 1}
[('state','in',('draft','sent','cancel'))]
From 31336151de7d65cbc2fe324c071d7167d1ae72ec Mon Sep 17 00:00:00 2001
From: "Divyesh Makwana (Open ERP)"
Date: Mon, 8 Oct 2012 15:58:36 +0530
Subject: [PATCH 20/82] [IMP] mrp_byproduct : Renamed 'subproduct' to
'byproduct'.
bzr revid: mdi@tinyerp.com-20121008102836-rwd3ooy413yxqou8
---
addons/{mrp_subproduct => mrp_byproduct}/__init__.py | 2 +-
.../{mrp_subproduct => mrp_byproduct}/__openerp__.py | 10 +++++-----
addons/{mrp_subproduct => mrp_byproduct}/i18n/ab.po | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/ar.po | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/bg.po | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/bs.po | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/ca.po | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/cs.po | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/da.po | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/de.po | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/es.po | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/es_AR.po | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/es_CR.po | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/es_EC.po | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/es_MX.po | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/es_VE.po | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/et.po | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/fi.po | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/fr.po | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/gl.po | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/hr.po | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/hu.po | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/id.po | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/it.po | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/ja.po | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/ko.po | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/lt.po | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/mn.po | 0
.../i18n/mrp_subproduct.pot | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/nb.po | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/nl.po | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/nl_BE.po | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/oc.po | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/pl.po | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/pt.po | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/pt_BR.po | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/ro.po | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/ru.po | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/sk.po | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/sl.po | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/sq.po | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/sr.po | 0
.../{mrp_subproduct => mrp_byproduct}/i18n/sr@latin.po | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/sv.po | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/tlh.po | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/tr.po | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/uk.po | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/vi.po | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/zh_CN.po | 0
addons/{mrp_subproduct => mrp_byproduct}/i18n/zh_TW.po | 0
.../mrp_byproduct.py} | 10 +++++-----
.../mrp_byproduct_view.xml} | 6 +++---
.../security/ir.model.access.csv | 0
.../test/mrp_byproduct.yml} | 0
54 files changed, 14 insertions(+), 14 deletions(-)
rename addons/{mrp_subproduct => mrp_byproduct}/__init__.py (97%)
rename addons/{mrp_subproduct => mrp_byproduct}/__openerp__.py (88%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/ab.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/ar.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/bg.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/bs.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/ca.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/cs.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/da.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/de.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/es.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/es_AR.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/es_CR.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/es_EC.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/es_MX.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/es_VE.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/et.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/fi.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/fr.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/gl.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/hr.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/hu.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/id.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/it.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/ja.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/ko.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/lt.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/mn.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/mrp_subproduct.pot (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/nb.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/nl.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/nl_BE.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/oc.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/pl.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/pt.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/pt_BR.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/ro.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/ru.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/sk.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/sl.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/sq.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/sr.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/sr@latin.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/sv.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/tlh.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/tr.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/uk.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/vi.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/zh_CN.po (100%)
rename addons/{mrp_subproduct => mrp_byproduct}/i18n/zh_TW.po (100%)
rename addons/{mrp_subproduct/mrp_subproduct.py => mrp_byproduct/mrp_byproduct.py} (92%)
rename addons/{mrp_subproduct/mrp_subproduct_view.xml => mrp_byproduct/mrp_byproduct_view.xml} (86%)
rename addons/{mrp_subproduct => mrp_byproduct}/security/ir.model.access.csv (100%)
rename addons/{mrp_subproduct/test/mrp_subproduct.yml => mrp_byproduct/test/mrp_byproduct.yml} (100%)
diff --git a/addons/mrp_subproduct/__init__.py b/addons/mrp_byproduct/__init__.py
similarity index 97%
rename from addons/mrp_subproduct/__init__.py
rename to addons/mrp_byproduct/__init__.py
index 5b48431ef16..7e507e0fe0a 100644
--- a/addons/mrp_subproduct/__init__.py
+++ b/addons/mrp_byproduct/__init__.py
@@ -18,5 +18,5 @@
# along with this program. If not, see .
#
##############################################################################
-import mrp_subproduct
+import mrp_byproduct
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/mrp_subproduct/__openerp__.py b/addons/mrp_byproduct/__openerp__.py
similarity index 88%
rename from addons/mrp_subproduct/__openerp__.py
rename to addons/mrp_byproduct/__openerp__.py
index 6475cbe4a91..58e7a194771 100644
--- a/addons/mrp_subproduct/__openerp__.py
+++ b/addons/mrp_byproduct/__openerp__.py
@@ -21,14 +21,14 @@
{
- 'name': 'MRP Subproducts',
+ 'name': 'MRP Byproducts',
'version': '1.0',
'category': 'Manufacturing',
'description': """
This module allows you to produce several products from one production order.
=============================================================================
-You can configure sub-products in the bill of material.
+You can configure by-products in the bill of material.
Without this module:
--------------------
@@ -40,14 +40,14 @@ With this module:
""",
'author': 'OpenERP SA',
'website': 'http://www.openerp.com',
- 'images': ['images/bom_subproduct.jpeg'],
+ 'images': ['images/bom_byproduct.jpeg'],
'depends': ['base', 'mrp'],
'data': [
'security/ir.model.access.csv',
- 'mrp_subproduct_view.xml'
+ 'mrp_byproduct_view.xml'
],
'demo': [],
- 'test': ['test/mrp_subproduct.yml'],
+ 'test': ['test/mrp_byproduct.yml'],
'installable': True,
'auto_install': False,
}
diff --git a/addons/mrp_subproduct/i18n/ab.po b/addons/mrp_byproduct/i18n/ab.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/ab.po
rename to addons/mrp_byproduct/i18n/ab.po
diff --git a/addons/mrp_subproduct/i18n/ar.po b/addons/mrp_byproduct/i18n/ar.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/ar.po
rename to addons/mrp_byproduct/i18n/ar.po
diff --git a/addons/mrp_subproduct/i18n/bg.po b/addons/mrp_byproduct/i18n/bg.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/bg.po
rename to addons/mrp_byproduct/i18n/bg.po
diff --git a/addons/mrp_subproduct/i18n/bs.po b/addons/mrp_byproduct/i18n/bs.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/bs.po
rename to addons/mrp_byproduct/i18n/bs.po
diff --git a/addons/mrp_subproduct/i18n/ca.po b/addons/mrp_byproduct/i18n/ca.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/ca.po
rename to addons/mrp_byproduct/i18n/ca.po
diff --git a/addons/mrp_subproduct/i18n/cs.po b/addons/mrp_byproduct/i18n/cs.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/cs.po
rename to addons/mrp_byproduct/i18n/cs.po
diff --git a/addons/mrp_subproduct/i18n/da.po b/addons/mrp_byproduct/i18n/da.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/da.po
rename to addons/mrp_byproduct/i18n/da.po
diff --git a/addons/mrp_subproduct/i18n/de.po b/addons/mrp_byproduct/i18n/de.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/de.po
rename to addons/mrp_byproduct/i18n/de.po
diff --git a/addons/mrp_subproduct/i18n/es.po b/addons/mrp_byproduct/i18n/es.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/es.po
rename to addons/mrp_byproduct/i18n/es.po
diff --git a/addons/mrp_subproduct/i18n/es_AR.po b/addons/mrp_byproduct/i18n/es_AR.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/es_AR.po
rename to addons/mrp_byproduct/i18n/es_AR.po
diff --git a/addons/mrp_subproduct/i18n/es_CR.po b/addons/mrp_byproduct/i18n/es_CR.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/es_CR.po
rename to addons/mrp_byproduct/i18n/es_CR.po
diff --git a/addons/mrp_subproduct/i18n/es_EC.po b/addons/mrp_byproduct/i18n/es_EC.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/es_EC.po
rename to addons/mrp_byproduct/i18n/es_EC.po
diff --git a/addons/mrp_subproduct/i18n/es_MX.po b/addons/mrp_byproduct/i18n/es_MX.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/es_MX.po
rename to addons/mrp_byproduct/i18n/es_MX.po
diff --git a/addons/mrp_subproduct/i18n/es_VE.po b/addons/mrp_byproduct/i18n/es_VE.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/es_VE.po
rename to addons/mrp_byproduct/i18n/es_VE.po
diff --git a/addons/mrp_subproduct/i18n/et.po b/addons/mrp_byproduct/i18n/et.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/et.po
rename to addons/mrp_byproduct/i18n/et.po
diff --git a/addons/mrp_subproduct/i18n/fi.po b/addons/mrp_byproduct/i18n/fi.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/fi.po
rename to addons/mrp_byproduct/i18n/fi.po
diff --git a/addons/mrp_subproduct/i18n/fr.po b/addons/mrp_byproduct/i18n/fr.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/fr.po
rename to addons/mrp_byproduct/i18n/fr.po
diff --git a/addons/mrp_subproduct/i18n/gl.po b/addons/mrp_byproduct/i18n/gl.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/gl.po
rename to addons/mrp_byproduct/i18n/gl.po
diff --git a/addons/mrp_subproduct/i18n/hr.po b/addons/mrp_byproduct/i18n/hr.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/hr.po
rename to addons/mrp_byproduct/i18n/hr.po
diff --git a/addons/mrp_subproduct/i18n/hu.po b/addons/mrp_byproduct/i18n/hu.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/hu.po
rename to addons/mrp_byproduct/i18n/hu.po
diff --git a/addons/mrp_subproduct/i18n/id.po b/addons/mrp_byproduct/i18n/id.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/id.po
rename to addons/mrp_byproduct/i18n/id.po
diff --git a/addons/mrp_subproduct/i18n/it.po b/addons/mrp_byproduct/i18n/it.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/it.po
rename to addons/mrp_byproduct/i18n/it.po
diff --git a/addons/mrp_subproduct/i18n/ja.po b/addons/mrp_byproduct/i18n/ja.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/ja.po
rename to addons/mrp_byproduct/i18n/ja.po
diff --git a/addons/mrp_subproduct/i18n/ko.po b/addons/mrp_byproduct/i18n/ko.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/ko.po
rename to addons/mrp_byproduct/i18n/ko.po
diff --git a/addons/mrp_subproduct/i18n/lt.po b/addons/mrp_byproduct/i18n/lt.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/lt.po
rename to addons/mrp_byproduct/i18n/lt.po
diff --git a/addons/mrp_subproduct/i18n/mn.po b/addons/mrp_byproduct/i18n/mn.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/mn.po
rename to addons/mrp_byproduct/i18n/mn.po
diff --git a/addons/mrp_subproduct/i18n/mrp_subproduct.pot b/addons/mrp_byproduct/i18n/mrp_subproduct.pot
similarity index 100%
rename from addons/mrp_subproduct/i18n/mrp_subproduct.pot
rename to addons/mrp_byproduct/i18n/mrp_subproduct.pot
diff --git a/addons/mrp_subproduct/i18n/nb.po b/addons/mrp_byproduct/i18n/nb.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/nb.po
rename to addons/mrp_byproduct/i18n/nb.po
diff --git a/addons/mrp_subproduct/i18n/nl.po b/addons/mrp_byproduct/i18n/nl.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/nl.po
rename to addons/mrp_byproduct/i18n/nl.po
diff --git a/addons/mrp_subproduct/i18n/nl_BE.po b/addons/mrp_byproduct/i18n/nl_BE.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/nl_BE.po
rename to addons/mrp_byproduct/i18n/nl_BE.po
diff --git a/addons/mrp_subproduct/i18n/oc.po b/addons/mrp_byproduct/i18n/oc.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/oc.po
rename to addons/mrp_byproduct/i18n/oc.po
diff --git a/addons/mrp_subproduct/i18n/pl.po b/addons/mrp_byproduct/i18n/pl.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/pl.po
rename to addons/mrp_byproduct/i18n/pl.po
diff --git a/addons/mrp_subproduct/i18n/pt.po b/addons/mrp_byproduct/i18n/pt.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/pt.po
rename to addons/mrp_byproduct/i18n/pt.po
diff --git a/addons/mrp_subproduct/i18n/pt_BR.po b/addons/mrp_byproduct/i18n/pt_BR.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/pt_BR.po
rename to addons/mrp_byproduct/i18n/pt_BR.po
diff --git a/addons/mrp_subproduct/i18n/ro.po b/addons/mrp_byproduct/i18n/ro.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/ro.po
rename to addons/mrp_byproduct/i18n/ro.po
diff --git a/addons/mrp_subproduct/i18n/ru.po b/addons/mrp_byproduct/i18n/ru.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/ru.po
rename to addons/mrp_byproduct/i18n/ru.po
diff --git a/addons/mrp_subproduct/i18n/sk.po b/addons/mrp_byproduct/i18n/sk.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/sk.po
rename to addons/mrp_byproduct/i18n/sk.po
diff --git a/addons/mrp_subproduct/i18n/sl.po b/addons/mrp_byproduct/i18n/sl.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/sl.po
rename to addons/mrp_byproduct/i18n/sl.po
diff --git a/addons/mrp_subproduct/i18n/sq.po b/addons/mrp_byproduct/i18n/sq.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/sq.po
rename to addons/mrp_byproduct/i18n/sq.po
diff --git a/addons/mrp_subproduct/i18n/sr.po b/addons/mrp_byproduct/i18n/sr.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/sr.po
rename to addons/mrp_byproduct/i18n/sr.po
diff --git a/addons/mrp_subproduct/i18n/sr@latin.po b/addons/mrp_byproduct/i18n/sr@latin.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/sr@latin.po
rename to addons/mrp_byproduct/i18n/sr@latin.po
diff --git a/addons/mrp_subproduct/i18n/sv.po b/addons/mrp_byproduct/i18n/sv.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/sv.po
rename to addons/mrp_byproduct/i18n/sv.po
diff --git a/addons/mrp_subproduct/i18n/tlh.po b/addons/mrp_byproduct/i18n/tlh.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/tlh.po
rename to addons/mrp_byproduct/i18n/tlh.po
diff --git a/addons/mrp_subproduct/i18n/tr.po b/addons/mrp_byproduct/i18n/tr.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/tr.po
rename to addons/mrp_byproduct/i18n/tr.po
diff --git a/addons/mrp_subproduct/i18n/uk.po b/addons/mrp_byproduct/i18n/uk.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/uk.po
rename to addons/mrp_byproduct/i18n/uk.po
diff --git a/addons/mrp_subproduct/i18n/vi.po b/addons/mrp_byproduct/i18n/vi.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/vi.po
rename to addons/mrp_byproduct/i18n/vi.po
diff --git a/addons/mrp_subproduct/i18n/zh_CN.po b/addons/mrp_byproduct/i18n/zh_CN.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/zh_CN.po
rename to addons/mrp_byproduct/i18n/zh_CN.po
diff --git a/addons/mrp_subproduct/i18n/zh_TW.po b/addons/mrp_byproduct/i18n/zh_TW.po
similarity index 100%
rename from addons/mrp_subproduct/i18n/zh_TW.po
rename to addons/mrp_byproduct/i18n/zh_TW.po
diff --git a/addons/mrp_subproduct/mrp_subproduct.py b/addons/mrp_byproduct/mrp_byproduct.py
similarity index 92%
rename from addons/mrp_subproduct/mrp_subproduct.py
rename to addons/mrp_byproduct/mrp_byproduct.py
index bacdeb2c675..bf2a798aeff 100644
--- a/addons/mrp_subproduct/mrp_subproduct.py
+++ b/addons/mrp_byproduct/mrp_byproduct.py
@@ -30,10 +30,10 @@ class mrp_subproduct(osv.osv):
'product_id': fields.many2one('product.product', 'Product', required=True),
'product_qty': fields.float('Product Qty', digits_compute=dp.get_precision('Product Unit of Measure'), required=True),
'product_uom': fields.many2one('product.uom', 'Product Unit of Measure', required=True),
- 'subproduct_type': fields.selection([('fixed','Fixed'),('variable','Variable')], 'Quantity Type', required=True, help="Define how the quantity of subproducts will be set on the production orders using this BoM.\
- 'Fixed' depicts a situation where the quantity of created subproduct is always equal to the quantity set on the BoM, regardless of how many are created in the production order.\
+ 'subproduct_type': fields.selection([('fixed','Fixed'),('variable','Variable')], 'Quantity Type', required=True, help="Define how the quantity of byproducts will be set on the production orders using this BoM.\
+ 'Fixed' depicts a situation where the quantity of created byproduct is always equal to the quantity set on the BoM, regardless of how many are created in the production order.\
By opposition, 'Variable' means that the quantity will be computed as\
- '(quantity of subproduct set on the BoM / quantity of manufactured product set on the BoM * quantity of manufactured product in the production order.)'"),
+ '(quantity of byproduct set on the BoM / quantity of manufactured product set on the BoM * quantity of manufactured product in the production order.)'"),
'bom_id': fields.many2one('mrp.bom', 'BoM'),
}
_defaults={
@@ -59,7 +59,7 @@ class mrp_bom(osv.osv):
_inherit='mrp.bom'
_columns={
- 'sub_products':fields.one2many('mrp.subproduct', 'bom_id', 'sub_products'),
+ 'sub_products':fields.one2many('mrp.subproduct', 'bom_id', 'Byproducts'),
}
mrp_bom()
@@ -106,7 +106,7 @@ class mrp_production(osv.osv):
def _get_subproduct_factor(self, cr, uid, production_id, move_id=None, context=None):
"""Compute the factor to compute the qty of procucts to produce for the given production_id. By default,
it's always equal to the quantity encoded in the production order or the production wizard, but with
- the module mrp_subproduct installed it can differ for subproducts having type 'variable'.
+ the module mrp_byproduct installed it can differ for byproducts having type 'variable'.
:param production_id: ID of the mrp.order
:param move_id: ID of the stock move that needs to be produced. Identify the product to produce.
:return: The factor to apply to the quantity that we should produce for the given production order and stock move.
diff --git a/addons/mrp_subproduct/mrp_subproduct_view.xml b/addons/mrp_byproduct/mrp_byproduct_view.xml
similarity index 86%
rename from addons/mrp_subproduct/mrp_subproduct_view.xml
rename to addons/mrp_byproduct/mrp_byproduct_view.xml
index 94da87ef0de..754d7ef1b34 100644
--- a/addons/mrp_subproduct/mrp_subproduct_view.xml
+++ b/addons/mrp_byproduct/mrp_byproduct_view.xml
@@ -7,15 +7,15 @@
-
+
-
+
-
-
+
From 79b2eae9eb6b2b72cc5029c3ac087e3d293fafef Mon Sep 17 00:00:00 2001
From: "Mayur Maheshwari (OpenERP)"
Date: Mon, 8 Oct 2012 16:22:22 +0530
Subject: [PATCH 23/82] [IMP]all : improve button string
bzr revid: mma@tinyerp.com-20121008105222-9n6sfk9xnerfwxgj
---
addons/base_vat/base_vat_view.xml | 2 +-
addons/project_gtd/project_gtd_view.xml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/addons/base_vat/base_vat_view.xml b/addons/base_vat/base_vat_view.xml
index ec98b7922de..6d15099dc5a 100644
--- a/addons/base_vat/base_vat_view.xml
+++ b/addons/base_vat/base_vat_view.xml
@@ -11,7 +11,7 @@
-
+
diff --git a/addons/project_gtd/project_gtd_view.xml b/addons/project_gtd/project_gtd_view.xml
index fdb8ae8495c..da9ffebc0d4 100644
--- a/addons/project_gtd/project_gtd_view.xml
+++ b/addons/project_gtd/project_gtd_view.xml
@@ -93,7 +93,7 @@
-
+
From 9487c2d9ba9381e04c677d861864e29895f48e8e Mon Sep 17 00:00:00 2001
From: "Mayur Maheshwari (OpenERP)"
Date: Mon, 8 Oct 2012 16:35:49 +0530
Subject: [PATCH 24/82] [IMP]account : improve string
bzr revid: mma@tinyerp.com-20121008110549-zt946y9190avok3d
---
addons/account/account_invoice.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py
index c543b493831..71f37180848 100644
--- a/addons/account/account_invoice.py
+++ b/addons/account/account_invoice.py
@@ -206,7 +206,7 @@ class account_invoice(osv.osv):
('open','Open'),
('paid','Paid'),
('cancel','Cancelled'),
- ],'State', select=True, readonly=True,
+ ],'Status', select=True, readonly=True,
help=' * The \'Draft\' state is used when a user is encoding a new and unconfirmed Invoice. \
\n* The \'Pro-forma\' when invoice is in Pro-forma state,invoice does not have an invoice number. \
\n* The \'Open\' state is used when user create invoice,a invoice number is generated.Its in open state till user does not pay invoice. \
From 0f2c1ef0df4cc84089a5b4982965065c3ec6e242 Mon Sep 17 00:00:00 2001
From: "Mayur Maheshwari (OpenERP)"
Date: Mon, 8 Oct 2012 18:50:14 +0530
Subject: [PATCH 25/82] [IMP]purchase,stock : improve string
bzr revid: mma@tinyerp.com-20121008132014-iv7zc5ux9raopaip
---
addons/purchase/purchase_view.xml | 6 +++---
addons/stock/stock.py | 8 ++++----
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/addons/purchase/purchase_view.xml b/addons/purchase/purchase_view.xml
index 7702d182b09..fe69c952f4a 100644
--- a/addons/purchase/purchase_view.xml
+++ b/addons/purchase/purchase_view.xml
@@ -82,7 +82,7 @@
action="base.action_partner_supplier_form" sequence="15"/>
-
@@ -262,7 +262,7 @@
-
+
@@ -356,7 +356,7 @@
-
+
diff --git a/addons/stock/stock.py b/addons/stock/stock.py
index 91e300eaa07..7538f76cebd 100644
--- a/addons/stock/stock.py
+++ b/addons/stock/stock.py
@@ -627,7 +627,7 @@ class stock_picking(osv.osv):
_columns = {
'name': fields.char('Reference', size=64, select=True, states={'done':[('readonly', True)], 'cancel':[('readonly',True)]}),
- 'origin': fields.char('Source', size=64, states={'done':[('readonly', True)], 'cancel':[('readonly',True)]}, help="Reference of the document", select=True),
+ 'origin': fields.char('Source Document', size=64, states={'done':[('readonly', True)], 'cancel':[('readonly',True)]}, help="Reference of the document", select=True),
'backorder_id': fields.many2one('stock.picking', 'Back Order of', states={'done':[('readonly', True)], 'cancel':[('readonly',True)]}, help="If this shipment was split, then this field links to the shipment which contains the already processed part.", select=True),
'type': fields.selection([('out', 'Sending Goods'), ('in', 'Getting Goods'), ('internal', 'Internal')], 'Shipping Type', required=True, select=True, readonly=True, help="Shipping type specify, goods coming in or going out."),
'note': fields.text('Notes', states={'done':[('readonly', True)], 'cancel':[('readonly',True)]}),
@@ -653,8 +653,8 @@ class stock_picking(osv.osv):
* Cancelled: has been cancelled, can't be confirmed anymore"""
),
'min_date': fields.function(get_min_max_date, fnct_inv=_set_minimum_date, multi="min_max_date",
- store=True, type='datetime', string='Scheduled Date', select=1, help="Scheduled date for the shipment to be processed"),
- 'date': fields.datetime('Date', help="Creation date, usually the date of the order.", select=True, states={'done':[('readonly', True)], 'cancel':[('readonly',True)]}),
+ store=True, type='datetime', string='Scheduled Time', select=1, help="Scheduled date for the shipment to be processed"),
+ 'date': fields.datetime('Time', help="Creation date, usually the date of the order.", select=True, states={'done':[('readonly', True)], 'cancel':[('readonly',True)]}),
'date_done': fields.datetime('Date Done', help="Date of Completion", states={'done':[('readonly', True)], 'cancel':[('readonly',True)]}),
'max_date': fields.function(get_min_max_date, fnct_inv=_set_maximum_date, multi="min_max_date",
store=True, type='datetime', string='Max. Expected Date', select=2),
@@ -3047,7 +3047,7 @@ class stock_picking_in(osv.osv):
('assigned', 'Ready to Receive'),
('done', 'Received'),
('cancel', 'Cancelled'),],
- 'State', readonly=True, select=True,
+ 'Status', readonly=True, select=True,
help="""* Draft: not confirmed yet and will not be scheduled until confirmed\n
* Waiting Another Operation: waiting for another move to proceed before it becomes automatically available (e.g. in Make-To-Order flows)\n
* Waiting Availability: still waiting for the availability of products\n
From d430a8976dc3e86efb74a97c76f93a90d49b646d Mon Sep 17 00:00:00 2001
From: "Mayur Maheshwari (OpenERP)"
Date: Tue, 9 Oct 2012 10:51:31 +0530
Subject: [PATCH 26/82] [IMP]purchase: improve menu string
bzr revid: mma@tinyerp.com-20121009052131-vwy6zp7xdtqv0780
---
addons/stock/stock_view.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/stock/stock_view.xml b/addons/stock/stock_view.xml
index f5320a963c7..0f9cd0c817b 100644
--- a/addons/stock/stock_view.xml
+++ b/addons/stock/stock_view.xml
@@ -1482,7 +1482,7 @@
- Receive Products
+ Incoming Products
stock.move
ir.actions.act_window
form
From d12acd17a0b5b82ed8a14432f5569f6393bed93e Mon Sep 17 00:00:00 2001
From: "Mayur Maheshwari (OpenERP)"
Date: Tue, 9 Oct 2012 11:00:02 +0530
Subject: [PATCH 27/82] [IMP]membership : improve string
bzr revid: mma@tinyerp.com-20121009053002-188wqmud5wtywxjy
---
addons/membership/membership.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/membership/membership.py b/addons/membership/membership.py
index f3192948afc..c5e2ed3a0bc 100644
--- a/addons/membership/membership.py
+++ b/addons/membership/membership.py
@@ -150,7 +150,7 @@ class membership_line(osv.osv):
'account_invoice_line': fields.many2one('account.invoice.line', 'Account Invoice line', readonly=True),
'account_invoice_id': fields.related('account_invoice_line', 'invoice_id', type='many2one', relation='account.invoice', string='Invoice', readonly=True),
'state': fields.function(_state,
- string='Membership State', type='selection',
+ string='Membership Status', type='selection',
selection=STATE, store = {
'account.invoice': (_get_membership_lines, ['state'], 10),
'res.partner': (_get_partners, ['membership_state'], 12),
From a4fe575abc4a6b74a9e3d38fce6a3755c52f8096 Mon Sep 17 00:00:00 2001
From: "Mayur Maheshwari (OpenERP)"
Date: Tue, 9 Oct 2012 11:31:37 +0530
Subject: [PATCH 28/82] [IMP]event : improve string
bzr revid: mma@tinyerp.com-20121009060137-tuaclaj2dm8vr8x0
---
addons/event/event_view.xml | 4 ++--
addons/event_moodle/wizard_moodle.xml | 8 ++++----
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml
index b46fafe270f..e31e3c3d0cf 100644
--- a/addons/event/event_view.xml
+++ b/addons/event/event_view.xml
@@ -15,7 +15,7 @@
id="event_main_menu"
groups="base.group_user"
sequence="80"/>
-
+
@@ -223,7 +223,7 @@
-
+
diff --git a/addons/event_moodle/wizard_moodle.xml b/addons/event_moodle/wizard_moodle.xml
index 6eda25fcc4d..8dbe5d485f9 100644
--- a/addons/event_moodle/wizard_moodle.xml
+++ b/addons/event_moodle/wizard_moodle.xml
@@ -8,7 +8,7 @@
From 91b257b0e8cd27aa63ab86cf498b8c67ae1f4b47 Mon Sep 17 00:00:00 2001
From: "Mayur Maheshwari (OpenERP)"
Date: Tue, 9 Oct 2012 14:31:58 +0530
Subject: [PATCH 29/82] [IMP]event : improve kanban view tickets condition
bzr revid: mma@tinyerp.com-20121009090158-btfq6ypk6f7wio41
---
addons/event/event_view.xml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml
index e31e3c3d0cf..5f14c354f53 100644
--- a/addons/event/event_view.xml
+++ b/addons/event/event_view.xml
@@ -271,8 +271,8 @@
@
Organized by
Only
- No ticket available.
-
+ No ticket available.
+
tickets
From 239690244363afd54eeea1c1f776f2dd113d54b2 Mon Sep 17 00:00:00 2001
From: "Foram Katharotiya (OpenERP)"
Date: Tue, 9 Oct 2012 17:34:17 +0530
Subject: [PATCH 30/82] [IMP] improve code
bzr revid: fka@tinyerp.com-20121009120417-ncg1zoqfnfkyi8cx
---
addons/survey/wizard/survey_answer.py | 43 +++++++++++++--------------
1 file changed, 20 insertions(+), 23 deletions(-)
diff --git a/addons/survey/wizard/survey_answer.py b/addons/survey/wizard/survey_answer.py
index a75a08cc974..7e1417ecdb7 100644
--- a/addons/survey/wizard/survey_answer.py
+++ b/addons/survey/wizard/survey_answer.py
@@ -112,29 +112,26 @@ class survey_question_wiz(osv.osv_memory):
flag = False
fields = {}
if sur_name_read.page == "next" or sur_name_rec.page_no == -1:
- if total_pages:
- if total_pages > sur_name_rec.page_no + 1:
- if ((context.has_key('active') and not context.get('active', False)) \
- or not context.has_key('active')) and not sur_name_rec.page_no + 1:
- if sur_rec.state != "open" :
- raise osv.except_osv(_('Warning!'),_("You cannot answer because the survey is not open."))
- cr.execute('select count(id) from survey_history where user_id=%s\
- and survey_id=%s', (uid,survey_id))
- res = cr.fetchone()[0]
- user_limit = survey_obj.browse(cr, uid, survey_id)
- user_limit = user_limit.response_user
- if user_limit and res >= user_limit:
- raise osv.except_osv(_('Warning!'),_("You cannot answer this survey more than %s times.") % (user_limit))
-
- if sur_rec.max_response_limit and sur_rec.max_response_limit <= sur_rec.tot_start_survey and not sur_name_rec.page_no + 1:
- survey_obj.write(cr, uid, survey_id, {'state':'close', 'date_close':strftime("%Y-%m-%d %H:%M:%S")})
-
- p_id = p_id[sur_name_rec.page_no + 1]
- surv_name_wiz.write(cr, uid, [context['sur_name_id'],], {'page_no' : sur_name_rec.page_no + 1})
- flag = True
- page_number += 1
- else:
- raise osv.except_osv(_('Warning!'),_('This survey has no pages defined. Please define the pages first.'))
+ if total_pages > sur_name_rec.page_no + 1:
+ if ((context.has_key('active') and not context.get('active', False)) \
+ or not context.has_key('active')) and not sur_name_rec.page_no + 1:
+ if sur_rec.state != "open" :
+ raise osv.except_osv(_('Warning!'),_("You cannot answer because the survey is not open."))
+ cr.execute('select count(id) from survey_history where user_id=%s\
+ and survey_id=%s', (uid,survey_id))
+ res = cr.fetchone()[0]
+ user_limit = survey_obj.browse(cr, uid, survey_id)
+ user_limit = user_limit.response_user
+ if user_limit and res >= user_limit:
+ raise osv.except_osv(_('Warning!'),_("You cannot answer this survey more than %s times.") % (user_limit))
+
+ if sur_rec.max_response_limit and sur_rec.max_response_limit <= sur_rec.tot_start_survey and not sur_name_rec.page_no + 1:
+ survey_obj.write(cr, uid, survey_id, {'state':'close', 'date_close':strftime("%Y-%m-%d %H:%M:%S")})
+
+ p_id = p_id[sur_name_rec.page_no + 1]
+ surv_name_wiz.write(cr, uid, [context['sur_name_id'],], {'page_no' : sur_name_rec.page_no + 1})
+ flag = True
+ page_number += 1
if sur_name_rec.page_no > - 1:
pre_button = True
else:
From df9e56d33dfbb9bb61ca46ef36ca79122d9722ad Mon Sep 17 00:00:00 2001
From: "Mayur Maheshwari (OpenERP)"
Date: Wed, 10 Oct 2012 10:45:22 +0530
Subject: [PATCH 31/82] [IMP]sale: improve priority og quotation tree view
bzr revid: mma@tinyerp.com-20121010051522-9spi85rv30vwibr7
---
addons/sale/sale_view.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/sale/sale_view.xml b/addons/sale/sale_view.xml
index 920e64d46da..3639fc5571f 100644
--- a/addons/sale/sale_view.xml
+++ b/addons/sale/sale_view.xml
@@ -144,7 +144,7 @@
sale.order.tree
sale.order
- 2
+ 4
From c1fdc5b3662b1a2bb23da2d2005dc176a4430c21 Mon Sep 17 00:00:00 2001
From: "Purnendu Singh (OpenERP)"
Date: Thu, 11 Oct 2012 19:05:06 +0530
Subject: [PATCH 32/82] [IMP] mail: rename variable and improve msg
bzr revid: psi@tinyerp.com-20121011133506-knjykwttndmwawc7
---
addons/mail/mail_message.py | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/addons/mail/mail_message.py b/addons/mail/mail_message.py
index b7176e3dc40..34a9116216e 100644
--- a/addons/mail/mail_message.py
+++ b/addons/mail/mail_message.py
@@ -580,12 +580,12 @@ class mail_message(osv.Model):
if not partner_wo_email_lst:
return {}
for partner in partner_wo_email_lst:
- terminology = 'contact'
+ recipients = "contacts"
if partner.customer and not partner.supplier:
- terminology = 'customer'
+ recipients = "customers"
elif partner.supplier and not partner.customer:
- terminology = 'supplier'
- warning_msg = _('The following %s do not have an email address specified.') % (terminology,)
+ recipients = "suppliers"
+ warning_msg = _('The following %s do not have an email address specified.') % (recipients,)
warning_msg += '\n- %s' % (partner.name)
return {'warning': {
'title': _('Email not found'),
From 3a6f2942d69961b536c5276bda686c0a4a9a49e0 Mon Sep 17 00:00:00 2001
From: "Mayur Maheshwari (OpenERP)"
Date: Fri, 12 Oct 2012 14:53:30 +0530
Subject: [PATCH 33/82] [IMP]product: remove conflicts
bzr revid: mma@tinyerp.com-20121012092330-j8r0kbmbx5pawrxf
---
addons/product/product_view.xml | 8 --------
1 file changed, 8 deletions(-)
diff --git a/addons/product/product_view.xml b/addons/product/product_view.xml
index 6a8830b5307..cc068d16a76 100644
--- a/addons/product/product_view.xml
+++ b/addons/product/product_view.xml
@@ -722,14 +722,6 @@
-<<<<<<< TREE
-
-
-
-
-
-=======
->>>>>>> MERGE-SOURCE
From 2bf21d63e5847b17971bdc0c72ae0cb81096a2ab Mon Sep 17 00:00:00 2001
From: "Mayur Maheshwari (OpenERP)"
Date: Fri, 12 Oct 2012 15:03:32 +0530
Subject: [PATCH 34/82] [IMP]project_gtd: added string timeframe
bzr revid: mma@tinyerp.com-20121012093332-noo1hs6e86e2wmlh
---
addons/project_gtd/project_gtd_view.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/project_gtd/project_gtd_view.xml b/addons/project_gtd/project_gtd_view.xml
index a7026da8854..8f34d6b337b 100644
--- a/addons/project_gtd/project_gtd_view.xml
+++ b/addons/project_gtd/project_gtd_view.xml
@@ -93,7 +93,7 @@
-
+
From 65ff8505bd3e83642c792690dff013035a435694 Mon Sep 17 00:00:00 2001
From: "Mayur Maheshwari (OpenERP)"
Date: Fri, 12 Oct 2012 15:38:37 +0530
Subject: [PATCH 35/82] [IMP]stock: imporve tool tip
bzr revid: mma@tinyerp.com-20121012100837-vjbvvo4zejduhqd2
---
addons/stock/stock.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/addons/stock/stock.py b/addons/stock/stock.py
index 77944cf6d10..ab29b93bc0f 100644
--- a/addons/stock/stock.py
+++ b/addons/stock/stock.py
@@ -653,8 +653,8 @@ class stock_picking(osv.osv):
* Cancelled: has been cancelled, can't be confirmed anymore"""
),
'min_date': fields.function(get_min_max_date, fnct_inv=_set_minimum_date, multi="min_max_date",
- store=True, type='datetime', string='Scheduled Time', select=1, help="Scheduled date for the shipment to be processed"),
- 'date': fields.datetime('Time', help="Creation date, usually the date of the order.", select=True, states={'done':[('readonly', True)], 'cancel':[('readonly',True)]}),
+ store=True, type='datetime', string='Scheduled Time', select=1, help="Scheduled time for the shipment to be processed"),
+ 'date': fields.datetime('Time', help="Creation time, usually the time of the order.", select=True, states={'done':[('readonly', True)], 'cancel':[('readonly',True)]}),
'date_done': fields.datetime('Date Done', help="Date of Completion", states={'done':[('readonly', True)], 'cancel':[('readonly',True)]}),
'max_date': fields.function(get_min_max_date, fnct_inv=_set_maximum_date, multi="min_max_date",
store=True, type='datetime', string='Max. Expected Date', select=2),
From 0b878800299b9a1f7d55d4db5a6bc15826f392e1 Mon Sep 17 00:00:00 2001
From: "Mayur Maheshwari (OpenERP)"
Date: Fri, 12 Oct 2012 17:12:58 +0530
Subject: [PATCH 36/82] [IMP]all: imporve string state to status
bzr revid: mma@tinyerp.com-20121012114258-w2q3hg1wb5wlt8wi
---
addons/account/account.py | 6 +++---
addons/account/account_invoice.py | 10 +++++-----
addons/account/account_move_line.py | 2 +-
addons/account/account_view.xml | 2 +-
.../account/report/account_invoice_report.py | 2 +-
addons/account_asset/account_asset.py | 6 +++---
addons/account_payment/account_payment.py | 2 +-
addons/account_voucher/account_voucher.py | 8 ++++----
.../report/account_voucher_sales_receipt.py | 2 +-
addons/auth_signup/res_users.py | 2 +-
addons/crm/crm.py | 2 +-
addons/crm/crm_lead.py | 10 +++++-----
addons/crm/crm_phonecall.py | 8 ++++----
addons/crm_claim/crm_claim.py | 12 +++++------
addons/crm_helpdesk/crm_helpdesk.py | 8 ++++----
addons/event/event.py | 2 +-
addons/hr_holidays/hr_holidays.py | 8 ++++----
addons/hr_payroll/hr_payroll.py | 8 ++++----
addons/hr_recruitment/hr_recruitment.py | 12 +++++------
.../report/hr_recruitment_report.py | 2 +-
.../wizard/hr_timesheet_sign_in_out.py | 4 ++--
.../hr_timesheet_sheet/hr_timesheet_sheet.py | 6 +++---
.../l10n_in_hr_payroll/l10n_in_hr_payroll.py | 2 +-
.../report/payment_advice_report.py | 2 +-
.../report/payslip_report.py | 2 +-
addons/membership/membership.py | 2 +-
addons/mrp/mrp.py | 12 +++++------
addons/mrp_operations/mrp_operations.py | 10 +++++-----
addons/mrp_repair/mrp_repair.py | 20 +++++++++----------
addons/point_of_sale/point_of_sale.py | 4 ++--
addons/point_of_sale/point_of_sale_view.xml | 2 +-
.../wizard/pos_session_opening.py | 4 ++--
addons/procurement/procurement.py | 4 ++--
addons/project/project.py | 10 +++++-----
addons/project_issue/project_issue.py | 10 +++++-----
addons/project_long_term/project_long_term.py | 4 ++--
addons/purchase/purchase.py | 10 +++++-----
addons/purchase/report/purchase_report.py | 2 +-
addons/sale/report/sale_report.py | 2 +-
addons/sale/sale.py | 12 +++++------
addons/sale_stock/report/sale_report.py | 2 +-
addons/sale_stock/sale_stock.py | 6 +++---
addons/stock/stock.py | 2 +-
addons/stock/stock_view.xml | 2 +-
44 files changed, 125 insertions(+), 125 deletions(-)
diff --git a/addons/account/account.py b/addons/account/account.py
index 46cfaf645a8..c18574bcae6 100644
--- a/addons/account/account.py
+++ b/addons/account/account.py
@@ -1007,7 +1007,7 @@ class account_period(osv.osv):
'date_stop': fields.date('End of Period', required=True, states={'done':[('readonly',True)]}),
'fiscalyear_id': fields.many2one('account.fiscalyear', 'Fiscal Year', required=True, states={'done':[('readonly',True)]}, select=True),
'state': fields.selection([('draft','Open'), ('done','Closed')], 'Status', readonly=True,
- help='When monthly periods are created. The state is \'Draft\'. At the end of monthly period it is in \'Done\' state.'),
+ help='When monthly periods are created. The status is \'Draft\'. At the end of monthly period it is in \'Done\' status.'),
'company_id': fields.related('fiscalyear_id', 'company_id', type='many2one', relation='res.company', string='Company', store=True, readonly=True)
}
_defaults = {
@@ -1134,7 +1134,7 @@ class account_journal_period(osv.osv):
'icon': fields.function(_icon_get, string='Icon', type='char', size=32),
'active': fields.boolean('Active', required=True, help="If the active field is set to False, it will allow you to hide the journal period without removing it."),
'state': fields.selection([('draft','Draft'), ('printed','Printed'), ('done','Done')], 'Status', required=True, readonly=True,
- help='When journal period is created. The state is \'Draft\'. If a report is printed it comes to \'Printed\' state. When all transactions are done, it comes in \'Done\' state.'),
+ help='When journal period is created. The status is \'Draft\'. If a report is printed it comes to \'Printed\' status. When all transactions are done, it comes in \'Done\' status.'),
'fiscalyear_id': fields.related('period_id', 'fiscalyear_id', string='Fiscal Year', type='many2one', relation='account.fiscalyear'),
'company_id': fields.related('journal_id', 'company_id', type='many2one', relation='res.company', string='Company', store=True, readonly=True)
}
@@ -1282,7 +1282,7 @@ class account_move(osv.osv):
'period_id': fields.many2one('account.period', 'Period', required=True, states={'posted':[('readonly',True)]}),
'journal_id': fields.many2one('account.journal', 'Journal', required=True, states={'posted':[('readonly',True)]}),
'state': fields.selection([('draft','Unposted'), ('posted','Posted')], 'Status', required=True, readonly=True,
- help='All manually created new journal entries are usually in the state \'Unposted\', but you can set the option to skip that state on the related journal. In that case, they will behave as journal entries automatically created by the system on document validation (invoices, bank statements...) and will be created in \'Posted\' state.'),
+ help='All manually created new journal entries are usually in the status \'Unposted\', but you can set the option to skip that status on the related journal. In that case, they will behave as journal entries automatically created by the system on document validation (invoices, bank statements...) and will be created in \'Posted\' status.'),
'line_id': fields.one2many('account.move.line', 'move_id', 'Entries', states={'posted':[('readonly',True)]}),
'to_check': fields.boolean('To Review', help='Check this box if you are unsure of that journal entry and if you want to note it as \'to be reviewed\' by an accounting expert.'),
'partner_id': fields.related('line_id', 'partner_id', type="many2one", relation="res.partner", string="Partner", store=True),
diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py
index c3f507f1787..7f98bd5fa36 100644
--- a/addons/account/account_invoice.py
+++ b/addons/account/account_invoice.py
@@ -207,11 +207,11 @@ class account_invoice(osv.osv):
('paid','Paid'),
('cancel','Cancelled'),
],'Status', select=True, readonly=True,
- help=' * The \'Draft\' state is used when a user is encoding a new and unconfirmed Invoice. \
- \n* The \'Pro-forma\' when invoice is in Pro-forma state,invoice does not have an invoice number. \
- \n* The \'Open\' state is used when user create invoice,a invoice number is generated.Its in open state till user does not pay invoice. \
- \n* The \'Paid\' state is set automatically when the invoice is paid. Its related journal entries may or may not be reconciled. \
- \n* The \'Cancelled\' state is used when user cancel invoice.'),
+ help=' * The \'Draft\' status is used when a user is encoding a new and unconfirmed Invoice. \
+ \n* The \'Pro-forma\' when invoice is in Pro-forma status,invoice does not have an invoice number. \
+ \n* The \'Open\' status is used when user create invoice,a invoice number is generated.Its in open status till user does not pay invoice. \
+ \n* The \'Paid\' status is set automatically when the invoice is paid. Its related journal entries may or may not be reconciled. \
+ \n* The \'Cancelled\' status is used when user cancel invoice.'),
'sent': fields.boolean('Sent', readonly=True, help="It indicates that the invoice has been sent."),
'date_invoice': fields.date('Invoice Date', readonly=True, states={'draft':[('readonly',False)]}, select=True, help="Keep empty to use the current date"),
'date_due': fields.date('Due Date', readonly=True, states={'draft':[('readonly',False)]}, select=True,
diff --git a/addons/account/account_move_line.py b/addons/account/account_move_line.py
index b111cf2b771..b6d02ef6eac 100644
--- a/addons/account/account_move_line.py
+++ b/addons/account/account_move_line.py
@@ -515,7 +515,7 @@ class account_move_line(osv.osv):
'centralisation': fields.selection([('normal','Normal'),('credit','Credit Centralisation'),('debit','Debit Centralisation'),('currency','Currency Adjustment')], 'Centralisation', size=8),
'balance': fields.function(_balance, fnct_search=_balance_search, string='Balance'),
'state': fields.selection([('draft','Unbalanced'), ('valid','Valid')], 'Status', readonly=True,
- help='When new move line is created the state will be \'Draft\'.\n* When all the payments are done it will be in \'Valid\' state.'),
+ help='When new move line is created the status will be \'Draft\'.\n* When all the payments are done it will be in \'Valid\' status.'),
'tax_code_id': fields.many2one('account.tax.code', 'Tax Account', help="The Account can either be a base tax code or a tax code account."),
'tax_amount': fields.float('Tax/Base Amount', digits_compute=dp.get_precision('Account'), select=True, help="If the Tax account is a tax code account, this field will contain the taxed amount.If the tax account is base tax code, "\
"this field will contain the basic amount(without tax)."),
diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml
index d98b53ebbbd..d50364cec37 100644
--- a/addons/account/account_view.xml
+++ b/addons/account/account_view.xml
@@ -1863,7 +1863,7 @@
-
+
diff --git a/addons/account/report/account_invoice_report.py b/addons/account/report/account_invoice_report.py
index d4362484588..9c25934d8fd 100644
--- a/addons/account/report/account_invoice_report.py
+++ b/addons/account/report/account_invoice_report.py
@@ -63,7 +63,7 @@ class account_invoice_report(osv.osv):
('open','Open'),
('paid','Done'),
('cancel','Cancelled')
- ], 'Invoice State', readonly=True),
+ ], 'Invoice Status', readonly=True),
'date_due': fields.date('Due Date', readonly=True),
'account_id': fields.many2one('account.account', 'Account',readonly=True),
'account_line_id': fields.many2one('account.account', 'Account Line',readonly=True),
diff --git a/addons/account_asset/account_asset.py b/addons/account_asset/account_asset.py
index 4c6f9b7a637..585798a5235 100644
--- a/addons/account_asset/account_asset.py
+++ b/addons/account_asset/account_asset.py
@@ -226,9 +226,9 @@ class account_asset_asset(osv.osv):
'child_ids': fields.one2many('account.asset.asset', 'parent_id', 'Children Assets'),
'purchase_date': fields.date('Purchase Date', required=True, readonly=True, states={'draft':[('readonly',False)]}),
'state': fields.selection([('draft','Draft'),('open','Running'),('close','Close')], 'Status', required=True,
- help="When an asset is created, the state is 'Draft'.\n" \
- "If the asset is confirmed, the state goes in 'Running' and the depreciation lines can be posted in the accounting.\n" \
- "You can manually close an asset when the depreciation is over. If the last line of depreciation is posted, the asset automatically goes in that state."),
+ help="When an asset is created, the status is 'Draft'.\n" \
+ "If the asset is confirmed, the status goes in 'Running' and the depreciation lines can be posted in the accounting.\n" \
+ "You can manually close an asset when the depreciation is over. If the last line of depreciation is posted, the asset automatically goes in that status."),
'active': fields.boolean('Active'),
'partner_id': fields.many2one('res.partner', 'Partner', readonly=True, states={'draft':[('readonly',False)]}),
'method': fields.selection([('linear','Linear'),('degressive','Degressive')], 'Computation Method', required=True, readonly=True, states={'draft':[('readonly',False)]}, help="Choose the method to use to compute the amount of depreciation lines.\n"\
diff --git a/addons/account_payment/account_payment.py b/addons/account_payment/account_payment.py
index fceff99b3f2..0f6dca56d15 100644
--- a/addons/account_payment/account_payment.py
+++ b/addons/account_payment/account_payment.py
@@ -95,7 +95,7 @@ class payment_order(osv.osv):
('cancel', 'Cancelled'),
('open', 'Confirmed'),
('done', 'Done')], 'Status', select=True,
- help='When an order is placed the state is \'Draft\'.\n Once the bank is confirmed the state is set to \'Confirmed\'.\n Then the order is paid the state is \'Done\'.'),
+ help='When an order is placed the status is \'Draft\'.\n Once the bank is confirmed the status is set to \'Confirmed\'.\n Then the order is paid the status is \'Done\'.'),
'line_ids': fields.one2many('payment.line', 'order_id', 'Payment lines', states={'done': [('readonly', True)]}),
'total': fields.function(_total, string="Total", type='float'),
'user_id': fields.many2one('res.users', 'Responsible', required=True, states={'done': [('readonly', True)]}),
diff --git a/addons/account_voucher/account_voucher.py b/addons/account_voucher/account_voucher.py
index f97f3f6af3c..7b887d88d2e 100644
--- a/addons/account_voucher/account_voucher.py
+++ b/addons/account_voucher/account_voucher.py
@@ -278,10 +278,10 @@ class account_voucher(osv.osv):
('proforma','Pro-forma'),
('posted','Posted')
], 'Status', readonly=True, size=32,
- help=' * The \'Draft\' state is used when a user is encoding a new and unconfirmed Voucher. \
- \n* The \'Pro-forma\' when voucher is in Pro-forma state,voucher does not have an voucher number. \
- \n* The \'Posted\' state is used when user create voucher,a voucher number is generated and voucher entries are created in account \
- \n* The \'Cancelled\' state is used when user cancel voucher.'),
+ help=' * The \'Draft\' status is used when a user is encoding a new and unconfirmed Voucher. \
+ \n* The \'Pro-forma\' when voucher is in Pro-forma status,voucher does not have an voucher number. \
+ \n* The \'Posted\' status is used when user create voucher,a voucher number is generated and voucher entries are created in account \
+ \n* The \'Cancelled\' status is used when user cancel voucher.'),
'amount': fields.float('Total', digits_compute=dp.get_precision('Account'), required=True, readonly=True, states={'draft':[('readonly',False)]}),
'tax_amount':fields.float('Tax Amount', digits_compute=dp.get_precision('Account'), readonly=True, states={'draft':[('readonly',False)]}),
'reference': fields.char('Ref #', size=64, readonly=True, states={'draft':[('readonly',False)]}, help="Transaction reference number."),
diff --git a/addons/account_voucher/report/account_voucher_sales_receipt.py b/addons/account_voucher/report/account_voucher_sales_receipt.py
index 53aa5cd4a0d..fdadfc6bc94 100644
--- a/addons/account_voucher/report/account_voucher_sales_receipt.py
+++ b/addons/account_voucher/report/account_voucher_sales_receipt.py
@@ -52,7 +52,7 @@ class sale_receipt_report(osv.osv):
('proforma','Pro-forma'),
('posted','Posted'),
('cancel','Cancelled')
- ], 'Voucher State', readonly=True),
+ ], 'Voucher Status', readonly=True),
'pay_now':fields.selection([
('pay_now','Pay Directly'),
('pay_later','Pay Later or Group Funds'),
diff --git a/addons/auth_signup/res_users.py b/addons/auth_signup/res_users.py
index 59196c4da87..69eee4f18e0 100644
--- a/addons/auth_signup/res_users.py
+++ b/addons/auth_signup/res_users.py
@@ -138,7 +138,7 @@ class res_users(osv.Model):
for user in self.browse(cr, uid, ids, context))
_columns = {
- 'state': fields.function(_get_state, string='State', type='selection',
+ 'state': fields.function(_get_state, string='Status', type='selection',
selection=[('new', 'New'), ('active', 'Active'), ('reset', 'Resetting Password')]),
}
diff --git a/addons/crm/crm.py b/addons/crm/crm.py
index d5f5b2511d1..eb602b98c09 100644
--- a/addons/crm/crm.py
+++ b/addons/crm/crm.py
@@ -77,7 +77,7 @@ class crm_case_stage(osv.osv):
help="Link between stages and sales teams. When set, this limitate the current stage to the selected sales teams."),
'state': fields.selection(AVAILABLE_STATES, 'Related Status', required=True,
help="The status of your document will automatically change regarding the selected stage. " \
- "For example, if a stage is related to the state 'Close', when your document reaches this stage, it is automatically closed."),
+ "For example, if a stage is related to the status 'Close', when your document reaches this stage, it is automatically closed."),
'case_default': fields.boolean('Common to All Teams',
help="If you check this field, this stage will be proposed by default on each sales team. It will not assign this stage to existing teams."),
'fold': fields.boolean('Hide in Views when Empty',
diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py
index 48c6491a7c3..63b08898056 100644
--- a/addons/crm/crm_lead.py
+++ b/addons/crm/crm_lead.py
@@ -223,11 +223,11 @@ class crm_lead(base_stage, format_address, osv.osv):
'day_close': fields.function(_compute_day, string='Days to Close', \
multi='day_close', type="float", store=True),
'state': fields.related('stage_id', 'state', type="selection", store=True,
- selection=crm.AVAILABLE_STATES, string="State", readonly=True,
- help='The state is set to \'Draft\', when a case is created.\
- If the case is in progress the state is set to \'Open\'.\
- When the case is over, the state is set to \'Done\'.\
- If the case needs to be reviewed then the state is \
+ selection=crm.AVAILABLE_STATES, string="Status", readonly=True,
+ help='The Status is set to \'Draft\', when a case is created.\
+ If the case is in progress the Status is set to \'Open\'.\
+ When the case is over, the Status is set to \'Done\'.\
+ If the case needs to be reviewed then the Status is \
set to \'Pending\'.'),
# Only used for type opportunity
diff --git a/addons/crm/crm_phonecall.py b/addons/crm/crm_phonecall.py
index 44894fc881d..d53fb454112 100644
--- a/addons/crm/crm_phonecall.py
+++ b/addons/crm/crm_phonecall.py
@@ -50,10 +50,10 @@ class crm_phonecall(base_state, osv.osv):
('cancel', 'Cancelled'),
('done', 'Held'),],
string='Status', size=16, readonly=True,
- help='The state is set to \'Todo\', when a case is created.\
- If the case is in progress the state is set to \'Open\'.\
- When the call is over, the state is set to \'Held\'.\
- If the call needs to be done then the state is set to \'Not Held\'.'),
+ help='The Status is set to \'Todo\', when a case is created.\
+ If the case is in progress the Status is set to \'Open\'.\
+ When the call is over, the Status is set to \'Held\'.\
+ If the call needs to be done then the Status is set to \'Not Held\'.'),
'email_from': fields.char('Email', size=128, help="These people will receive email."),
'date_open': fields.datetime('Opened', readonly=True),
# phonecall fields
diff --git a/addons/crm_claim/crm_claim.py b/addons/crm_claim/crm_claim.py
index c88b2fe26af..ff7bae18dce 100644
--- a/addons/crm_claim/crm_claim.py
+++ b/addons/crm_claim/crm_claim.py
@@ -50,7 +50,7 @@ class crm_claim_stage(osv.osv):
'sequence': fields.integer('Sequence', help="Used to order stages. Lower is better."),
'section_ids':fields.many2many('crm.case.section', 'section_claim_stage_rel', 'stage_id', 'section_id', string='Sections',
help="Link between stages and sales teams. When set, this limitate the current stage to the selected sales teams."),
- 'state': fields.selection(crm.AVAILABLE_STATES, 'State', required=True, help="The related state for the stage. The state of your document will automatically change regarding the selected stage. For example, if a stage is related to the state 'Close', when your document reaches this stage, it will be automatically have the 'closed' state."),
+ 'state': fields.selection(crm.AVAILABLE_STATES, 'Status', required=True, help="The related status for the stage. The status of your document will automatically change regarding the selected stage. For example, if a stage is related to the status 'Close', when your document reaches this stage, it will be automatically have the 'closed' status."),
'case_refused': fields.boolean('Refused stage',
help='Refused stages are specific stages for done.'),
'case_default': fields.boolean('Common to All Teams',
@@ -108,11 +108,11 @@ class crm_claim(base_stage, osv.osv):
domain="['|', ('section_ids', '=', section_id), ('case_default', '=', True)]"),
'cause': fields.text('Root Cause'),
'state': fields.related('stage_id', 'state', type="selection", store=True,
- selection=crm.AVAILABLE_STATES, string="State", readonly=True,
- help='The state is set to \'Draft\', when a case is created.\
- If the case is in progress the state is set to \'Open\'.\
- When the case is over, the state is set to \'Done\'.\
- If the case needs to be reviewed then the state is \
+ selection=crm.AVAILABLE_STATES, string="Status", readonly=True,
+ help='The status is set to \'Draft\', when a case is created.\
+ If the case is in progress the status is set to \'Open\'.\
+ When the case is over, the status is set to \'Done\'.\
+ If the case needs to be reviewed then the status is \
set to \'Pending\'.'),
}
diff --git a/addons/crm_helpdesk/crm_helpdesk.py b/addons/crm_helpdesk/crm_helpdesk.py
index ceffd282aa8..ddf624c03ac 100644
--- a/addons/crm_helpdesk/crm_helpdesk.py
+++ b/addons/crm_helpdesk/crm_helpdesk.py
@@ -73,10 +73,10 @@ class crm_helpdesk(base_state, base_stage, osv.osv):
('object_id.model', '=', 'crm.helpdesk')]"),
'duration': fields.float('Duration', states={'done': [('readonly', True)]}),
'state': fields.selection(crm.AVAILABLE_STATES, 'Status', size=16, readonly=True,
- help='The state is set to \'Draft\', when a case is created.\
- \nIf the case is in progress the state is set to \'Open\'.\
- \nWhen the case is over, the state is set to \'Done\'.\
- \nIf the case needs to be reviewed then the state is set to \'Pending\'.'),
+ help='The status is set to \'Draft\', when a case is created.\
+ \nIf the case is in progress the status is set to \'Open\'.\
+ \nWhen the case is over, the status is set to \'Done\'.\
+ \nIf the case needs to be reviewed then the status is set to \'Pending\'.'),
}
_defaults = {
diff --git a/addons/event/event.py b/addons/event/event.py
index b3aee2493f8..db218f15a2f 100644
--- a/addons/event/event.py
+++ b/addons/event/event.py
@@ -200,7 +200,7 @@ class event_event(osv.osv):
('confirm', 'Confirmed'),
('done', 'Done')],
'Status', readonly=True, required=True,
- help='If event is created, the state is \'Draft\'.If event is confirmed for the particular dates the state is set to \'Confirmed\'. If the event is over, the state is set to \'Done\'.If event is cancelled the state is set to \'Cancelled\'.'),
+ help='If event is created, the status is \'Draft\'.If event is confirmed for the particular dates the status is set to \'Confirmed\'. If the event is over, the status is set to \'Done\'.If event is cancelled the status is set to \'Cancelled\'.'),
'email_registration_id' : fields.many2one('email.template','Registration Confirmation Email', help='This field contains the template of the mail that will be automatically sent each time a registration for this event is confirmed.'),
'email_confirmation_id' : fields.many2one('email.template','Event Confirmation Email', help="If you set an email template, each participant will receive this email announcing the confirmation of the event."),
'reply_to': fields.char('Reply-To Email', size=64, readonly=False, states={'done': [('readonly', True)]}, help="The email address of the organizer is likely to be put here, with the effect to be in the 'Reply-To' of the mails sent automatically at event or registrations confirmation. You can also put the email address of your mail gateway if you use one."),
diff --git a/addons/hr_holidays/hr_holidays.py b/addons/hr_holidays/hr_holidays.py
index b48f0786704..0977f3729b4 100644
--- a/addons/hr_holidays/hr_holidays.py
+++ b/addons/hr_holidays/hr_holidays.py
@@ -115,10 +115,10 @@ class hr_holidays(osv.osv):
_columns = {
'name': fields.char('Description', size=64),
'state': fields.selection([('draft', 'To Submit'), ('cancel', 'Cancelled'),('confirm', 'To Approve'), ('refuse', 'Refused'), ('validate1', 'Second Approval'), ('validate', 'Approved')],
- 'State', readonly=True, help='The state is set to \'To Submit\', when a holiday request is created.\
- \nThe state is \'To Approve\', when holiday request is confirmed by user.\
- \nThe state is \'Refused\', when holiday request is refused by manager.\
- \nThe state is \'Approved\', when holiday request is approved by manager.'),
+ 'Status', readonly=True, help='The status is set to \'To Submit\', when a holiday request is created.\
+ \nThe status is \'To Approve\', when holiday request is confirmed by user.\
+ \nThe status is \'Refused\', when holiday request is refused by manager.\
+ \nThe status is \'Approved\', when holiday request is approved by manager.'),
'user_id':fields.related('employee_id', 'user_id', type='many2one', relation='res.users', string='User', store=True),
'date_from': fields.datetime('Start Date', readonly=True, states={'draft':[('readonly',False)], 'confirm':[('readonly',False)]}, select=True),
'date_to': fields.datetime('End Date', readonly=True, states={'draft':[('readonly',False)], 'confirm':[('readonly',False)]}),
diff --git a/addons/hr_payroll/hr_payroll.py b/addons/hr_payroll/hr_payroll.py
index b56b49d3d99..d1f38ad4a0f 100644
--- a/addons/hr_payroll/hr_payroll.py
+++ b/addons/hr_payroll/hr_payroll.py
@@ -272,10 +272,10 @@ class hr_payslip(osv.osv):
('done', 'Done'),
('cancel', 'Rejected'),
], 'Status', select=True, readonly=True,
- help='* When the payslip is created the state is \'Draft\'.\
- \n* If the payslip is under verification, the state is \'Waiting\'. \
- \n* If the payslip is confirmed then state is set to \'Done\'.\
- \n* When user cancel payslip the state is \'Rejected\'.'),
+ help='* When the payslip is created the status is \'Draft\'.\
+ \n* If the payslip is under verification, the status is \'Waiting\'. \
+ \n* If the payslip is confirmed then status is set to \'Done\'.\
+ \n* When user cancel payslip the status is \'Rejected\'.'),
# 'line_ids': fields.one2many('hr.payslip.line', 'slip_id', 'Payslip Line', required=False, readonly=True, states={'draft': [('readonly', False)]}),
'line_ids': one2many_mod2('hr.payslip.line', 'slip_id', 'Payslip Lines', readonly=True, states={'draft':[('readonly',False)]}),
'company_id': fields.many2one('res.company', 'Company', required=False, readonly=True, states={'draft': [('readonly', False)]}),
diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py
index ccfcae0d26e..696abdcdd85 100644
--- a/addons/hr_recruitment/hr_recruitment.py
+++ b/addons/hr_recruitment/hr_recruitment.py
@@ -62,7 +62,7 @@ class hr_recruitment_stage(osv.osv):
'name': fields.char('Name', size=64, required=True, translate=True),
'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of stages."),
'department_id':fields.many2one('hr.department', 'Specific to a Department', help="Stages of the recruitment process may be different per department. If this stage is common to all departments, keep this field empty."),
- 'state': fields.selection(AVAILABLE_STATES, 'State', required=True, help="The related state for the stage. The state of your document will automatically change according to the selected stage. Example, a stage is related to the state 'Close', when your document reach this stage, it will be automatically closed."),
+ 'state': fields.selection(AVAILABLE_STATES, 'Status', required=True, help="The related status for the stage. The status of your document will automatically change according to the selected stage. Example, a stage is related to the status 'Close', when your document reach this stage, it will be automatically closed."),
'fold': fields.boolean('Hide in views if empty', help="This stage is not visible, for example in status bar or kanban view, when there are no records in that stage to display."),
'requirements': fields.text('Requirements'),
}
@@ -189,11 +189,11 @@ class hr_applicant(base_stage, osv.Model):
'stage_id': fields.many2one ('hr.recruitment.stage', 'Stage',
domain="['&', ('fold', '=', False), '|', ('department_id', '=', department_id), ('department_id', '=', False)]"),
'state': fields.related('stage_id', 'state', type="selection", store=True,
- selection=AVAILABLE_STATES, string="State", readonly=True,
- help='The state is set to \'Draft\', when a case is created.\
- If the case is in progress the state is set to \'Open\'.\
- When the case is over, the state is set to \'Done\'.\
- If the case needs to be reviewed then the state is \
+ selection=AVAILABLE_STATES, string="Status", readonly=True,
+ help='The status is set to \'Draft\', when a case is created.\
+ If the case is in progress the status is set to \'Open\'.\
+ When the case is over, the status is set to \'Done\'.\
+ If the case needs to be reviewed then the status is \
set to \'Pending\'.'),
'categ_ids': fields.many2many('hr.applicant_category', string='Tags'),
'company_id': fields.many2one('res.company', 'Company'),
diff --git a/addons/hr_recruitment/report/hr_recruitment_report.py b/addons/hr_recruitment/report/hr_recruitment_report.py
index e888da9ead7..d3faa3f37be 100644
--- a/addons/hr_recruitment/report/hr_recruitment_report.py
+++ b/addons/hr_recruitment/report/hr_recruitment_report.py
@@ -41,7 +41,7 @@ class hr_recruitment_report(osv.osv):
_columns = {
'user_id': fields.many2one('res.users', 'User', readonly=True),
'nbr': fields.integer('# of Applications', readonly=True),
- 'state': fields.selection(AVAILABLE_STATES, 'State', size=16, readonly=True),
+ 'state': fields.selection(AVAILABLE_STATES, 'Status', size=16, readonly=True),
'month':fields.selection([('01', 'January'), ('02', 'February'), \
('03', 'March'), ('04', 'April'),\
('05', 'May'), ('06', 'June'), \
diff --git a/addons/hr_timesheet/wizard/hr_timesheet_sign_in_out.py b/addons/hr_timesheet/wizard/hr_timesheet_sign_in_out.py
index e92e88bdcbd..e2dab78bfbe 100644
--- a/addons/hr_timesheet/wizard/hr_timesheet_sign_in_out.py
+++ b/addons/hr_timesheet/wizard/hr_timesheet_sign_in_out.py
@@ -33,7 +33,7 @@ class hr_so_project(osv.osv_memory):
'date': fields.datetime('Closing Date'),
'analytic_amount': fields.float('Minimum Analytic Amount'),
'name': fields.char('Employees name', size=32, required=True, readonly=True),
- 'state': fields.related('emp_id', 'state', string='Current state', type='char', required=True, readonly=True),
+ 'state': fields.related('emp_id', 'state', string='Current Status', type='char', required=True, readonly=True),
'server_date': fields.datetime('Current Date', required=True, readonly=True),
'emp_id': fields.many2one('hr.employee', 'Employee ID')
}
@@ -111,7 +111,7 @@ class hr_si_project(osv.osv_memory):
_description = 'Sign In By Project'
_columns = {
'name': fields.char('Employees name', size=32, readonly=True),
- 'state': fields.related('emp_id', 'state', string='Current state', type='char', required=True, readonly=True),
+ 'state': fields.related('emp_id', 'state', string='Current Status', type='char', required=True, readonly=True),
'date': fields.datetime('Starting Date'),
'server_date': fields.datetime('Current Date', readonly=True),
'emp_id': fields.many2one('hr.employee', 'Employee ID')
diff --git a/addons/hr_timesheet_sheet/hr_timesheet_sheet.py b/addons/hr_timesheet_sheet/hr_timesheet_sheet.py
index 96cb15ddce1..e33dc457e12 100644
--- a/addons/hr_timesheet_sheet/hr_timesheet_sheet.py
+++ b/addons/hr_timesheet_sheet/hr_timesheet_sheet.py
@@ -206,9 +206,9 @@ class hr_timesheet_sheet(osv.osv):
('draft','Open'),
('confirm','Waiting Approval'),
('done','Approved')], 'Status', select=True, required=True, readonly=True,
- help=' * The \'Draft\' state is used when a user is encoding a new and unconfirmed timesheet. \
- \n* The \'Confirmed\' state is used for to confirm the timesheet by user. \
- \n* The \'Done\' state is used when users timesheet is accepted by his/her senior.'),
+ help=' * The \'Draft\' status is used when a user is encoding a new and unconfirmed timesheet. \
+ \n* The \'Confirmed\' status is used for to confirm the timesheet by user. \
+ \n* The \'Done\' status is used when users timesheet is accepted by his/her senior.'),
'state_attendance' : fields.related('employee_id', 'state', type='selection', selection=[('absent', 'Absent'), ('present', 'Present')], string='Current Status', readonly=True),
'total_attendance': fields.function(_total, method=True, string='Total Attendance', multi="_total"),
'total_timesheet': fields.function(_total, method=True, string='Total Timesheet', multi="_total"),
diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py
index 085a2679db2..b7c3926d727 100644
--- a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py
+++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py
@@ -65,7 +65,7 @@ class payroll_advice(osv.osv):
('draft', 'Draft'),
('confirm', 'Confirmed'),
('cancel', 'Cancelled'),
- ], 'State', select=True, readonly=True),
+ ], 'Status', select=True, readonly=True),
'number':fields.char('Reference', size=16, readonly=True),
'line_ids':fields.one2many('hr.payroll.advice.line', 'advice_id', 'Employee Salary', states={'draft': [('readonly', False)]}, readonly=True),
'chaque_nos':fields.char('Cheque Numbers', size=256),
diff --git a/addons/l10n_in_hr_payroll/report/payment_advice_report.py b/addons/l10n_in_hr_payroll/report/payment_advice_report.py
index 838334913a5..a264368be94 100644
--- a/addons/l10n_in_hr_payroll/report/payment_advice_report.py
+++ b/addons/l10n_in_hr_payroll/report/payment_advice_report.py
@@ -38,7 +38,7 @@ class payment_advice_report(osv.osv):
('draft', 'Draft'),
('confirm', 'Confirmed'),
('cancel', 'Cancelled'),
- ], 'State', select=True, readonly=True),
+ ], 'Status', select=True, readonly=True),
'employee_id': fields.many2one('hr.employee', 'Employee', readonly=True),
'nbr': fields.integer('# Payment Lines', readonly=True),
'number':fields.char('Number', size=16, readonly=True),
diff --git a/addons/l10n_in_hr_payroll/report/payslip_report.py b/addons/l10n_in_hr_payroll/report/payslip_report.py
index b688af4329b..a78d9850667 100644
--- a/addons/l10n_in_hr_payroll/report/payslip_report.py
+++ b/addons/l10n_in_hr_payroll/report/payslip_report.py
@@ -39,7 +39,7 @@ class payslip_report(osv.osv):
('draft', 'Draft'),
('done', 'Done'),
('cancel', 'Rejected'),
- ], 'State', readonly=True),
+ ], 'Status', readonly=True),
'employee_id': fields.many2one('hr.employee', 'Employee', readonly=True),
'nbr': fields.integer('# Payslip lines', readonly=True),
'number': fields.char('Number', size=16, readonly=True),
diff --git a/addons/membership/membership.py b/addons/membership/membership.py
index c5e2ed3a0bc..5e3816419f8 100644
--- a/addons/membership/membership.py
+++ b/addons/membership/membership.py
@@ -154,7 +154,7 @@ class membership_line(osv.osv):
selection=STATE, store = {
'account.invoice': (_get_membership_lines, ['state'], 10),
'res.partner': (_get_partners, ['membership_state'], 12),
- }, help="""It indicates the membership state.
+ }, help="""It indicates the membership status.
-Non Member: A member who has not applied for any membership.
-Cancelled Member: A member who has cancelled his membership.
-Old Member: A member whose membership date has expired.
diff --git a/addons/mrp/mrp.py b/addons/mrp/mrp.py
index ecac11f856a..2883ca1891e 100644
--- a/addons/mrp/mrp.py
+++ b/addons/mrp/mrp.py
@@ -488,12 +488,12 @@ class mrp_production(osv.osv):
[('draft', 'New'), ('cancel', 'Cancelled'), ('picking_except', 'Picking Exception'), ('confirmed', 'Waiting Goods'),
('ready', 'Ready to Produce'), ('in_production', 'Production Started'), ('done', 'Done')],
string='Status', readonly=True,
- help="When the production order is created the state is set to 'Draft'.\n\
- If the order is confirmed the state is set to 'Waiting Goods'.\n\
- If any exceptions are there, the state is set to 'Picking Exception'.\n\
- If the stock is available then the state is set to 'Ready to Produce'.\n\
- When the production gets started then the state is set to 'In Production'.\n\
- When the production is over, the state is set to 'Done'."),
+ help="When the production order is created the status is set to 'Draft'.\n\
+ If the order is confirmed the status is set to 'Waiting Goods'.\n\
+ If any exceptions are there, the status is set to 'Picking Exception'.\n\
+ If the stock is available then the status is set to 'Ready to Produce'.\n\
+ When the production gets started then the status is set to 'In Production'.\n\
+ When the production is over, the status is set to 'Done'."),
'hour_total': fields.function(_production_calc, type='float', string='Total Hours', multi='workorder', store=True),
'cycle_total': fields.function(_production_calc, type='float', string='Total Cycles', multi='workorder', store=True),
'user_id':fields.many2one('res.users', 'Responsible'),
diff --git a/addons/mrp_operations/mrp_operations.py b/addons/mrp_operations/mrp_operations.py
index 9f6671c3b2b..90330c4c988 100644
--- a/addons/mrp_operations/mrp_operations.py
+++ b/addons/mrp_operations/mrp_operations.py
@@ -87,11 +87,11 @@ class mrp_production_workcenter_line(osv.osv):
_columns = {
'state': fields.selection([('draft','Draft'),('cancel','Cancelled'),('pause','Pending'),('startworking', 'In Progress'),('done','Finished')],'Status', readonly=True,
- help="* When a work order is created it is set in 'Draft' state.\n" \
- "* When user sets work order in start mode that time it will be set in 'In Progress' state.\n" \
- "* When work order is in running mode, during that time if user wants to stop or to make changes in order then can set in 'Pending' state.\n" \
- "* When the user cancels the work order it will be set in 'Canceled' state.\n" \
- "* When order is completely processed that time it is set in 'Finished' state."),
+ help="* When a work order is created it is set in 'Draft' status.\n" \
+ "* When user sets work order in start mode that time it will be set in 'In Progress' status.\n" \
+ "* When work order is in running mode, during that time if user wants to stop or to make changes in order then can set in 'Pending' status.\n" \
+ "* When the user cancels the work order it will be set in 'Canceled' status.\n" \
+ "* When order is completely processed that time it is set in 'Finished' status."),
'date_start_date': fields.function(_get_date_date, string='Start Date', type='date'),
'date_planned': fields.datetime('Scheduled Date', select=True),
'date_planned_end': fields.function(_get_date_end, string='End Date', type='datetime'),
diff --git a/addons/mrp_repair/mrp_repair.py b/addons/mrp_repair/mrp_repair.py
index c1ac8f809ce..60fc34a972a 100644
--- a/addons/mrp_repair/mrp_repair.py
+++ b/addons/mrp_repair/mrp_repair.py
@@ -131,12 +131,12 @@ class mrp_repair(osv.osv):
('invoice_except','Invoice Exception'),
('done','Repaired')
], 'Status', readonly=True,
- help=' * The \'Draft\' state is used when a user is encoding a new and unconfirmed repair order. \
- \n* The \'Confirmed\' state is used when a user confirms the repair order. \
- \n* The \'Ready to Repair\' state is used to start to repairing, user can start repairing only after repair order is confirmed. \
- \n* The \'To be Invoiced\' state is used to generate the invoice before or after repairing done. \
- \n* The \'Done\' state is set when repairing is completed.\
- \n* The \'Cancelled\' state is used when user cancel repair order.'),
+ help=' * The \'Draft\' status is used when a user is encoding a new and unconfirmed repair order. \
+ \n* The \'Confirmed\' status is used when a user confirms the repair order. \
+ \n* The \'Ready to Repair\' status is used to start to repairing, user can start repairing only after repair order is confirmed. \
+ \n* The \'To be Invoiced\' status is used to generate the invoice before or after repairing done. \
+ \n* The \'Done\' status is set when repairing is completed.\
+ \n* The \'Cancelled\' status is used when user cancel repair order.'),
'location_id': fields.many2one('stock.location', 'Current Location', select=True, readonly=True, states={'draft':[('readonly',False)]}),
'location_dest_id': fields.many2one('stock.location', 'Delivery Location', readonly=True, states={'draft':[('readonly',False)]}),
'move_id': fields.many2one('stock.move', 'Move',required=True, domain="[('product_id','=',product_id)]", readonly=True, states={'draft':[('readonly',False)]}),
@@ -707,10 +707,10 @@ class mrp_repair_line(osv.osv, ProductChangeMixin):
('confirmed','Confirmed'),
('done','Done'),
('cancel','Cancelled')], 'Status', required=True, readonly=True,
- help=' * The \'Draft\' state is set automatically as draft when repair order in draft state. \
- \n* The \'Confirmed\' state is set automatically as confirm when repair order in confirm state. \
- \n* The \'Done\' state is set automatically when repair order is completed.\
- \n* The \'Cancelled\' state is set automatically when user cancel repair order.'),
+ help=' * The \'Draft\' status is set automatically as draft when repair order in draft status. \
+ \n* The \'Confirmed\' status is set automatically as confirm when repair order in confirm status. \
+ \n* The \'Done\' status is set automatically when repair order is completed.\
+ \n* The \'Cancelled\' status is set automatically when user cancel repair order.'),
}
_defaults = {
'state': lambda *a: 'draft',
diff --git a/addons/point_of_sale/point_of_sale.py b/addons/point_of_sale/point_of_sale.py
index 788c301a04f..f219f4111ca 100644
--- a/addons/point_of_sale/point_of_sale.py
+++ b/addons/point_of_sale/point_of_sale.py
@@ -66,7 +66,7 @@ class pos_config(osv.osv):
'iface_vkeyboard' : fields.boolean('Virtual KeyBoard Interface'),
'iface_print_via_proxy' : fields.boolean('Print via Proxy'),
- 'state' : fields.selection(POS_CONFIG_STATE, 'State', required=True, readonly=True),
+ 'state' : fields.selection(POS_CONFIG_STATE, 'Status', required=True, readonly=True),
'sequence_id' : fields.many2one('ir.sequence', 'Order IDs Sequence', readonly=True,
help="This sequence is automatically created by OpenERP but you can change it "\
"to customize the reference numbers of your orders."),
@@ -197,7 +197,7 @@ class pos_session(osv.osv):
'start_at' : fields.datetime('Opening Date', readonly=True),
'stop_at' : fields.datetime('Closing Date', readonly=True),
- 'state' : fields.selection(POS_SESSION_STATE, 'State',
+ 'state' : fields.selection(POS_SESSION_STATE, 'Status',
required=True, readonly=True,
select=1),
diff --git a/addons/point_of_sale/point_of_sale_view.xml b/addons/point_of_sale/point_of_sale_view.xml
index 66b7e3b6eb5..1ee55f736aa 100644
--- a/addons/point_of_sale/point_of_sale_view.xml
+++ b/addons/point_of_sale/point_of_sale_view.xml
@@ -1039,7 +1039,7 @@
-
+
diff --git a/addons/point_of_sale/wizard/pos_session_opening.py b/addons/point_of_sale/wizard/pos_session_opening.py
index 4e7965f8e97..7c88986169e 100644
--- a/addons/point_of_sale/wizard/pos_session_opening.py
+++ b/addons/point_of_sale/wizard/pos_session_opening.py
@@ -16,8 +16,8 @@ class pos_session_opening(osv.osv_memory):
'pos_state' : fields.related('pos_session_id', 'state',
type='selection',
selection=pos_session.POS_SESSION_STATE,
- string='Session State', readonly=True),
- 'pos_state_str' : fields.char('State', 32, readonly=True),
+ string='Session Status', readonly=True),
+ 'pos_state_str' : fields.char('Status', 32, readonly=True),
'show_config' : fields.boolean('Show Config', readonly=True),
'pos_session_name' : fields.related('pos_session_id', 'name',
type='char', size=64, readonly=True),
diff --git a/addons/procurement/procurement.py b/addons/procurement/procurement.py
index b21cef30773..55a291bd3c2 100644
--- a/addons/procurement/procurement.py
+++ b/addons/procurement/procurement.py
@@ -113,8 +113,8 @@ class procurement_order(osv.osv):
('ready','Ready'),
('done','Done'),
('waiting','Waiting')], 'Status', required=True,
- help='When a procurement is created the state is set to \'Draft\'.\n If the procurement is confirmed, the state is set to \'Confirmed\'.\
- \nAfter confirming the state is set to \'Running\'.\n If any exception arises in the order then the state is set to \'Exception\'.\n Once the exception is removed the state becomes \'Ready\'.\n It is in \'Waiting\'. state when the procurement is waiting for another one to finish.'),
+ help='When a procurement is created the status is set to \'Draft\'.\n If the procurement is confirmed, the status is set to \'Confirmed\'.\
+ \nAfter confirming the status is set to \'Running\'.\n If any exception arises in the order then the status is set to \'Exception\'.\n Once the exception is removed the status becomes \'Ready\'.\n It is in \'Waiting\'. status when the procurement is waiting for another one to finish.'),
'note': fields.text('Note'),
'company_id': fields.many2one('res.company','Company',required=True),
}
diff --git a/addons/project/project.py b/addons/project/project.py
index 1451f2d7938..ed23bb7ae0b 100644
--- a/addons/project/project.py
+++ b/addons/project/project.py
@@ -721,11 +721,11 @@ class task(base_stage, osv.osv):
'stage_id': fields.many2one('project.task.type', 'Stage',
domain="['&', ('fold', '=', False), '|', ('project_ids', '=', project_id), ('case_default', '=', True)]"),
'state': fields.related('stage_id', 'state', type="selection", store=True,
- selection=_TASK_STATE, string="State", readonly=True,
- help='The state is set to \'Draft\', when a case is created.\
- If the case is in progress the state is set to \'Open\'.\
- When the case is over, the state is set to \'Done\'.\
- If the case needs to be reviewed then the state is \
+ selection=_TASK_STATE, string="Status", readonly=True,
+ help='The status is set to \'Draft\', when a case is created.\
+ If the case is in progress the status is set to \'Open\'.\
+ When the case is over, the status is set to \'Done\'.\
+ If the case needs to be reviewed then the status is \
set to \'Pending\'.'),
'categ_ids': fields.many2many('project.category', string='Tags'),
'kanban_state': fields.selection([('normal', 'Normal'),('blocked', 'Blocked'),('done', 'Ready To Pull')], 'Kanban State',
diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py
index 9e434078d2f..7ea6fc184d1 100644
--- a/addons/project_issue/project_issue.py
+++ b/addons/project_issue/project_issue.py
@@ -227,11 +227,11 @@ class project_issue(base_stage, osv.osv):
'company_id': fields.many2one('res.company', 'Company'),
'description': fields.text('Description'),
'state': fields.related('stage_id', 'state', type="selection", store=True,
- selection=_ISSUE_STATE, string="State", readonly=True,
- help='The state is set to \'Draft\', when a case is created.\
- If the case is in progress the state is set to \'Open\'.\
- When the case is over, the state is set to \'Done\'.\
- If the case needs to be reviewed then the state is \
+ selection=_ISSUE_STATE, string="Status", readonly=True,
+ help='The status is set to \'Draft\', when a case is created.\
+ If the case is in progress the status is set to \'Open\'.\
+ When the case is over, the status is set to \'Done\'.\
+ If the case needs to be reviewed then the status is \
set to \'Pending\'.'),
'email_from': fields.char('Email', size=128, help="These people will receive email.", select=1),
'email_cc': fields.char('Watchers Emails', size=256, help="These email addresses will be added to the CC field of all inbound and outbound emails for this record before being sent. Separate multiple email addresses with a comma"),
diff --git a/addons/project_long_term/project_long_term.py b/addons/project_long_term/project_long_term.py
index b19238200e5..db6c532d503 100644
--- a/addons/project_long_term/project_long_term.py
+++ b/addons/project_long_term/project_long_term.py
@@ -116,8 +116,8 @@ class project_phase(osv.osv):
'user_ids': fields.one2many('project.user.allocation', 'phase_id', "Assigned Users",states={'done':[('readonly',True)], 'cancelled':[('readonly',True)]},
help="The resources on the project can be computed automatically by the scheduler."),
'state': fields.selection([('draft', 'New'), ('cancelled', 'Cancelled'),('open', 'In Progress'), ('pending', 'Pending'), ('done', 'Done')], 'Status', readonly=True, required=True,
- help='If the phase is created the state \'Draft\'.\n If the phase is started, the state becomes \'In Progress\'.\n If review is needed the phase is in \'Pending\' state.\
- \n If the phase is over, the states is set to \'Done\'.'),
+ help='If the phase is created the status \'Draft\'.\n If the phase is started, the status becomes \'In Progress\'.\n If review is needed the phase is in \'Pending\' status.\
+ \n If the phase is over, the status is set to \'Done\'.'),
'progress': fields.function(_compute_progress, string='Progress', help="Computed based on related tasks"),
}
_defaults = {
diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py
index db6ed8b80be..0f0e99244a5 100644
--- a/addons/purchase/purchase.py
+++ b/addons/purchase/purchase.py
@@ -167,7 +167,7 @@ class purchase_order(osv.osv):
'location_id': fields.many2one('stock.location', 'Destination', required=True, domain=[('usage','<>','view')]),
'pricelist_id':fields.many2one('product.pricelist', 'Pricelist', required=True, states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)],'done':[('readonly',True)]}, help="The pricelist sets the currency used for this purchase order. It also computes the supplier price for the selected products/quantities."),
'currency_id': fields.related('pricelist_id', 'currency_id', type="many2one", relation="res.currency", readonly=True, required=True),
- 'state': fields.selection(STATE_SELECTION, 'Status', readonly=True, help="The state of the purchase order or the quotation request. A quotation is a purchase order in a 'Draft' state. Then the order has to be confirmed by the user, the state switch to 'Confirmed'. Then the supplier must confirm the order to change the state to 'Approved'. When the purchase order is paid and received, the state becomes 'Done'. If a cancel action occurs in the invoice or in the reception of goods, the state becomes in exception.", select=True),
+ 'state': fields.selection(STATE_SELECTION, 'Status', readonly=True, help="The status of the purchase order or the quotation request. A quotation is a purchase order in a 'Draft' status. Then the order has to be confirmed by the user, the status switch to 'Confirmed'. Then the supplier must confirm the order to change the status to 'Approved'. When the purchase order is paid and received, the status becomes 'Done'. If a cancel action occurs in the invoice or in the reception of goods, the status becomes in exception.", select=True),
'order_line': fields.one2many('purchase.order.line', 'order_id', 'Order Lines', states={'approved':[('readonly',True)],'done':[('readonly',True)]}),
'validator' : fields.many2one('res.users', 'Validated by', readonly=True),
'notes': fields.text('Terms and Conditions'),
@@ -809,10 +809,10 @@ class purchase_order_line(osv.osv):
'account_analytic_id':fields.many2one('account.analytic.account', 'Analytic Account',),
'company_id': fields.related('order_id','company_id',type='many2one',relation='res.company',string='Company', store=True, readonly=True),
'state': fields.selection([('draft', 'Draft'), ('confirmed', 'Confirmed'), ('done', 'Done'), ('cancel', 'Cancelled')], 'Status', required=True, readonly=True,
- help=' * The \'Draft\' state is set automatically when purchase order in draft state. \
- \n* The \'Confirmed\' state is set automatically as confirm when purchase order in confirm state. \
- \n* The \'Done\' state is set automatically when purchase order is set as done. \
- \n* The \'Cancelled\' state is set automatically when user cancel purchase order.'),
+ help=' * The \'Draft\' status is set automatically when purchase order in draft status. \
+ \n* The \'Confirmed\' status is set automatically as confirm when purchase order in confirm status. \
+ \n* The \'Done\' status is set automatically when purchase order is set as done. \
+ \n* The \'Cancelled\' status is set automatically when user cancel purchase order.'),
'invoice_lines': fields.many2many('account.invoice.line', 'purchase_order_line_invoice_rel', 'order_line_id', 'invoice_id', 'Invoice Lines', readonly=True),
'invoiced': fields.boolean('Invoiced', readonly=True),
'partner_id': fields.related('order_id','partner_id',string='Partner',readonly=True,type="many2one", relation="res.partner", store=True),
diff --git a/addons/purchase/report/purchase_report.py b/addons/purchase/report/purchase_report.py
index f4bd4fee425..76ffddcb85f 100644
--- a/addons/purchase/report/purchase_report.py
+++ b/addons/purchase/report/purchase_report.py
@@ -40,7 +40,7 @@ class purchase_report(osv.osv):
('except_picking', 'Shipping Exception'),
('except_invoice', 'Invoice Exception'),
('done', 'Done'),
- ('cancel', 'Cancelled')],'Order State', readonly=True),
+ ('cancel', 'Cancelled')],'Order Status', readonly=True),
'product_id':fields.many2one('product.product', 'Product', readonly=True),
'warehouse_id': fields.many2one('stock.warehouse', 'Warehouse', readonly=True),
'location_id': fields.many2one('stock.location', 'Destination', readonly=True),
diff --git a/addons/sale/report/sale_report.py b/addons/sale/report/sale_report.py
index 0ae2e4f7133..f592a8fd66c 100644
--- a/addons/sale/report/sale_report.py
+++ b/addons/sale/report/sale_report.py
@@ -55,7 +55,7 @@ class sale_report(osv.osv):
('invoice_except', 'Invoice Exception'),
('done', 'Done'),
('cancel', 'Cancelled')
- ], 'Order State', readonly=True),
+ ], 'Order Status', readonly=True),
'pricelist_id': fields.many2one('product.pricelist', 'Pricelist', readonly=True),
'analytic_account_id': fields.many2one('account.analytic.account', 'Analytic Account', readonly=True),
}
diff --git a/addons/sale/sale.py b/addons/sale/sale.py
index 09bb08d46f6..9c20faa5d8d 100644
--- a/addons/sale/sale.py
+++ b/addons/sale/sale.py
@@ -187,7 +187,7 @@ class sale_order(osv.osv):
('manual', 'Sale to Invoice'),
('invoice_except', 'Invoice Exception'),
('done', 'Done'),
- ], 'Status', readonly=True, help="Gives the state of the quotation or sales order. \nThe exception state is automatically set when a cancel operation occurs in the processing of a document linked to the sale order. \nThe 'Waiting Schedule' state is set when the invoice is confirmed but waiting for the scheduler to run on the order date.", select=True),
+ ], 'Status', readonly=True, help="Gives the status of the quotation or sales order. \nThe exception status is automatically set when a cancel operation occurs in the processing of a document linked to the sale order. \nThe 'Waiting Schedule' status is set when the invoice is confirmed but waiting for the scheduler to run on the order date.", select=True),
'date_order': fields.date('Date', required=True, readonly=True, select=True, states={'draft': [('readonly', False)], 'sent': [('readonly', False)]}),
'create_date': fields.datetime('Creation Date', readonly=True, select=True, help="Date on which sales order is created."),
'date_confirm': fields.date('Confirmation Date', readonly=True, select=True, help="Date on which sales order is confirmed."),
@@ -726,11 +726,11 @@ class sale_order_line(osv.osv):
'discount': fields.float('Discount (%)', digits_compute= dp.get_precision('Discount'), readonly=True, states={'draft': [('readonly', False)]}),
'th_weight': fields.float('Weight', readonly=True, states={'draft': [('readonly', False)]}),
'state': fields.selection([('cancel', 'Cancelled'),('draft', 'Draft'),('confirmed', 'Confirmed'),('exception', 'Exception'),('done', 'Done')], 'Status', required=True, readonly=True,
- help='* The \'Draft\' state is set when the related sales order in draft state. \
- \n* The \'Confirmed\' state is set when the related sales order is confirmed. \
- \n* The \'Exception\' state is set when the related sales order is set as exception. \
- \n* The \'Done\' state is set when the sales order line has been picked. \
- \n* The \'Cancelled\' state is set when a user cancel the sales order related.'),
+ help='* The \'Draft\' status is set when the related sales order in draft status. \
+ \n* The \'Confirmed\' status is set when the related sales order is confirmed. \
+ \n* The \'Exception\' status is set when the related sales order is set as exception. \
+ \n* The \'Done\' status is set when the sales order line has been picked. \
+ \n* The \'Cancelled\' status is set when a user cancel the sales order related.'),
'order_partner_id': fields.related('order_id', 'partner_id', type='many2one', relation='res.partner', store=True, string='Customer'),
'salesman_id':fields.related('order_id', 'user_id', type='many2one', relation='res.users', store=True, string='Salesperson'),
'company_id': fields.related('order_id', 'company_id', type='many2one', relation='res.company', string='Company', store=True, readonly=True),
diff --git a/addons/sale_stock/report/sale_report.py b/addons/sale_stock/report/sale_report.py
index 04587c1e679..a523c0551f2 100644
--- a/addons/sale_stock/report/sale_report.py
+++ b/addons/sale_stock/report/sale_report.py
@@ -36,7 +36,7 @@ class sale_report(osv.osv):
('invoice_except', 'Invoice Exception'),
('done', 'Done'),
('cancel', 'Cancelled')
- ], 'Order State', readonly=True),
+ ], 'Order Status', readonly=True),
}
def init(self, cr):
diff --git a/addons/sale_stock/sale_stock.py b/addons/sale_stock/sale_stock.py
index ce6894318c4..c54bc80d6f8 100644
--- a/addons/sale_stock/sale_stock.py
+++ b/addons/sale_stock/sale_stock.py
@@ -123,9 +123,9 @@ class sale_order(osv.osv):
('shipping_except', 'Shipping Exception'),
('invoice_except', 'Invoice Exception'),
('done', 'Done'),
- ], 'Status', readonly=True,help="Gives the state of the quotation or sales order.\
- \nThe exception state is automatically set when a cancel operation occurs \
- in the invoice validation (Invoice Exception) or in the picking list process (Shipping Exception).\nThe 'Waiting Schedule' state is set when the invoice is confirmed\
+ ], 'Status', readonly=True,help="Gives the status of the quotation or sales order.\
+ \nThe exception status is automatically set when a cancel operation occurs \
+ in the invoice validation (Invoice Exception) or in the picking list process (Shipping Exception).\nThe 'Waiting Schedule' status is set when the invoice is confirmed\
but waiting for the scheduler to run on the order date.", select=True),
'incoterm': fields.many2one('stock.incoterms', 'Incoterm', help="Incoterm which stands for 'International Commercial terms' implies its a series of sales terms which are used in the commercial transaction."),
'picking_policy': fields.selection([('direct', 'Deliver each product when available'), ('one', 'Deliver all products at once')],
diff --git a/addons/stock/stock.py b/addons/stock/stock.py
index 765599aa842..bdfd8968e7e 100644
--- a/addons/stock/stock.py
+++ b/addons/stock/stock.py
@@ -3084,7 +3084,7 @@ class stock_picking_out(osv.osv):
('assigned', 'Ready to Deliver'),
('done', 'Delivered'),
('cancel', 'Cancelled'),],
- 'State', readonly=True, select=True,
+ 'Status', readonly=True, select=True,
help="""* Draft: not confirmed yet and will not be scheduled until confirmed\n
* Waiting Another Operation: waiting for another move to proceed before it becomes automatically available (e.g. in Make-To-Order flows)\n
* Waiting Availability: still waiting for the availability of products\n
diff --git a/addons/stock/stock_view.xml b/addons/stock/stock_view.xml
index 329425148c5..4e7c860e87b 100644
--- a/addons/stock/stock_view.xml
+++ b/addons/stock/stock_view.xml
@@ -812,7 +812,7 @@
-
+
From bafeb4f119fe944b404a9f3b93eae8c9dade3ead Mon Sep 17 00:00:00 2001
From: "Divyesh Makwana (Open ERP)"
Date: Fri, 12 Oct 2012 17:29:34 +0530
Subject: [PATCH 37/82] [IMP] mrp_repair : Improve label and help string for
'guarantee_limit'.
bzr revid: mdi@tinyerp.com-20121012115934-drhfyqtis93pg879
---
addons/mrp_repair/mrp_repair.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/mrp_repair/mrp_repair.py b/addons/mrp_repair/mrp_repair.py
index c1ac8f809ce..a3ef7186984 100644
--- a/addons/mrp_repair/mrp_repair.py
+++ b/addons/mrp_repair/mrp_repair.py
@@ -140,7 +140,7 @@ class mrp_repair(osv.osv):
'location_id': fields.many2one('stock.location', 'Current Location', select=True, readonly=True, states={'draft':[('readonly',False)]}),
'location_dest_id': fields.many2one('stock.location', 'Delivery Location', readonly=True, states={'draft':[('readonly',False)]}),
'move_id': fields.many2one('stock.move', 'Move',required=True, domain="[('product_id','=',product_id)]", readonly=True, states={'draft':[('readonly',False)]}),
- 'guarantee_limit': fields.date('Guarantee limit', help="The guarantee limit is computed as: last move date + warranty defined on selected product. If the current date is below the guarantee limit, each operation and fee you will add will be set as 'not to invoiced' by default. Note that you can change manually afterwards."),
+ 'guarantee_limit': fields.date('Warranty Expiration Limit', help="The warranty expiration limit is computed as: last move date + warranty defined on selected product. If the current date is below the warranty expiration limit, each operation and fee you will add will be set as 'not to invoiced' by default. Note that you can change manually afterwards."),
'operations' : fields.one2many('mrp.repair.line', 'repair_id', 'Operation Lines', readonly=True, states={'draft':[('readonly',False)]}),
'pricelist_id': fields.many2one('product.pricelist', 'Pricelist', help='Pricelist of the selected partner.'),
'partner_invoice_id':fields.many2one('res.partner', 'Invoicing Address'),
From 68baa0e49e5d524ece0aa2127bfa99cf6aa19eec Mon Sep 17 00:00:00 2001
From: "Divyesh Makwana (Open ERP)"
Date: Fri, 12 Oct 2012 17:34:33 +0530
Subject: [PATCH 38/82] [IMP] stock : Improved the label for 'partner_id' in
Incoming Shipment and Delivery Order.
bzr revid: mdi@tinyerp.com-20121012120433-1tubvg3wmyijd1qd
---
addons/stock/stock_view.xml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/addons/stock/stock_view.xml b/addons/stock/stock_view.xml
index 329425148c5..1cbfaeac9c9 100644
--- a/addons/stock/stock_view.xml
+++ b/addons/stock/stock_view.xml
@@ -875,7 +875,7 @@
-
+
@@ -1006,7 +1006,7 @@
-
+
From c18b907b49824491342c6a7e7559c75ceddaa275 Mon Sep 17 00:00:00 2001
From: "Mayur Maheshwari (OpenERP)"
Date: Fri, 12 Oct 2012 18:15:13 +0530
Subject: [PATCH 39/82] [IMP]all: imporve string state to status
bzr revid: mma@tinyerp.com-20121012124513-u7jbhn39gm17y6tj
---
addons/account/account_bank_statement.py | 4 ++--
addons/crm/crm_phonecall.py | 8 ++++----
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/addons/account/account_bank_statement.py b/addons/account/account_bank_statement.py
index 549363ce269..48082451f35 100644
--- a/addons/account/account_bank_statement.py
+++ b/addons/account/account_bank_statement.py
@@ -123,8 +123,8 @@ class account_bank_statement(osv.osv):
('open','Open'), # used by cash statements
('confirm', 'Closed')],
'Status', required=True, readonly="1",
- help='When new statement is created the state will be \'Draft\'.\n'
- 'And after getting confirmation from the bank it will be in \'Confirmed\' state.'),
+ help='When new statement is created the status will be \'Draft\'.\n'
+ 'And after getting confirmation from the bank it will be in \'Confirmed\' status.'),
'currency': fields.function(_currency, string='Currency',
type='many2one', relation='res.currency'),
'account_id': fields.related('journal_id', 'default_debit_account_id', type='many2one', relation='account.account', string='Account used in this journal', readonly=True, help='used in statement reconciliation domain, but shouldn\'t be used elswhere.'),
diff --git a/addons/crm/crm_phonecall.py b/addons/crm/crm_phonecall.py
index d53fb454112..bac33815794 100644
--- a/addons/crm/crm_phonecall.py
+++ b/addons/crm/crm_phonecall.py
@@ -50,10 +50,10 @@ class crm_phonecall(base_state, osv.osv):
('cancel', 'Cancelled'),
('done', 'Held'),],
string='Status', size=16, readonly=True,
- help='The Status is set to \'Todo\', when a case is created.\
- If the case is in progress the Status is set to \'Open\'.\
- When the call is over, the Status is set to \'Held\'.\
- If the call needs to be done then the Status is set to \'Not Held\'.'),
+ help='The status is set to \'Todo\', when a case is created.\
+ If the case is in progress the status is set to \'Open\'.\
+ When the call is over, the status is set to \'Held\'.\
+ If the call needs to be done then the status is set to \'Not Held\'.'),
'email_from': fields.char('Email', size=128, help="These people will receive email."),
'date_open': fields.datetime('Opened', readonly=True),
# phonecall fields
From 6e4eca2ba7571bf7a90235e6020ff5314db933c3 Mon Sep 17 00:00:00 2001
From: "Foram Katharotiya (OpenERP)"
Date: Fri, 12 Oct 2012 18:30:00 +0530
Subject: [PATCH 40/82] [FIX] traceback:ValueError: too many values to unpack
bzr revid: fka@tinyerp.com-20121012130000-qtd29ab755kuszsc
---
addons/survey/wizard/survey_send_invitation.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/survey/wizard/survey_send_invitation.py b/addons/survey/wizard/survey_send_invitation.py
index b6d68a47004..4c2840b787d 100644
--- a/addons/survey/wizard/survey_send_invitation.py
+++ b/addons/survey/wizard/survey_send_invitation.py
@@ -176,7 +176,7 @@ class survey_send_invitation(osv.osv_memory):
vals['attachment_ids'] = [(0,0,{'name': a_name,
'datas_fname': a_name,
'datas': str(a_content).encode('base64')})
- for a_name, a_content in attachments]
+ for a_name, a_content in attachments.items()]
ans = self.pool.get('mail.mail').create(cr, uid, vals, context=context)
if ans:
res_data = {'name': partner.name or _('Unknown'),
From 86fda4e9e58feb201223f77fb2d368fcd30af3ff Mon Sep 17 00:00:00 2001
From: "Divyesh Makwana (Open ERP)"
Date: Mon, 15 Oct 2012 14:08:20 +0530
Subject: [PATCH 41/82] [IMP] mrp_repair : Improved the label string.
bzr revid: mdi@tinyerp.com-20121015083820-dck8ofh4cenktlp7
---
addons/mrp_repair/mrp_repair.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/mrp_repair/mrp_repair.py b/addons/mrp_repair/mrp_repair.py
index a3ef7186984..8ccf216d6cf 100644
--- a/addons/mrp_repair/mrp_repair.py
+++ b/addons/mrp_repair/mrp_repair.py
@@ -140,7 +140,7 @@ class mrp_repair(osv.osv):
'location_id': fields.many2one('stock.location', 'Current Location', select=True, readonly=True, states={'draft':[('readonly',False)]}),
'location_dest_id': fields.many2one('stock.location', 'Delivery Location', readonly=True, states={'draft':[('readonly',False)]}),
'move_id': fields.many2one('stock.move', 'Move',required=True, domain="[('product_id','=',product_id)]", readonly=True, states={'draft':[('readonly',False)]}),
- 'guarantee_limit': fields.date('Warranty Expiration Limit', help="The warranty expiration limit is computed as: last move date + warranty defined on selected product. If the current date is below the warranty expiration limit, each operation and fee you will add will be set as 'not to invoiced' by default. Note that you can change manually afterwards."),
+ 'guarantee_limit': fields.date('Warranty Expiration', help="The warranty expiration limit is computed as: last move date + warranty defined on selected product. If the current date is below the warranty expiration limit, each operation and fee you will add will be set as 'not to invoiced' by default. Note that you can change manually afterwards."),
'operations' : fields.one2many('mrp.repair.line', 'repair_id', 'Operation Lines', readonly=True, states={'draft':[('readonly',False)]}),
'pricelist_id': fields.many2one('product.pricelist', 'Pricelist', help='Pricelist of the selected partner.'),
'partner_invoice_id':fields.many2one('res.partner', 'Invoicing Address'),
From e479d6a05d6e94dfcfbc89af5c784b7b55954f0d Mon Sep 17 00:00:00 2001
From: "Mayur Maheshwari (OpenERP)"
Date: Mon, 15 Oct 2012 16:41:10 +0530
Subject: [PATCH 42/82] [IMP]event : improve kanaban button condition
bzr revid: mma@tinyerp.com-20121015111110-wvbw3rg54s2c6u3k
---
addons/event/event_view.xml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml
index cebc297c6a1..81984637137 100644
--- a/addons/event/event_view.xml
+++ b/addons/event/event_view.xml
@@ -274,12 +274,12 @@
tickets
- ticket
+ ticket
available.
-
+
From 3a38ecd3c2febaa6aa5d7c9ff2127a8589cdd206 Mon Sep 17 00:00:00 2001
From: "Mayur Maheshwari (OpenERP)"
Date: Mon, 15 Oct 2012 17:00:22 +0530
Subject: [PATCH 43/82] [IMP]event : improve kanaban button condition
bzr revid: mma@tinyerp.com-20121015113022-um8ursgf4mzwvskl
---
addons/event/event_view.xml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml
index 81984637137..92d88024d08 100644
--- a/addons/event/event_view.xml
+++ b/addons/event/event_view.xml
@@ -274,12 +274,12 @@
tickets
- ticket
+ ticket
available.
-
+
From 3f31313d46b9b4da1d41bf8dcf174b872cc49fe3 Mon Sep 17 00:00:00 2001
From: "Divyesh Makwana (Open ERP)"
Date: Tue, 16 Oct 2012 12:38:16 +0530
Subject: [PATCH 44/82] [IMP] base_calendar : Partners should always be
replaced with Customer, Supplier, or Contact (if it can be both).
bzr revid: mdi@tinyerp.com-20121016070816-1w25cevujbmvhu0m
---
addons/base_calendar/crm_meeting.py | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/addons/base_calendar/crm_meeting.py b/addons/base_calendar/crm_meeting.py
index 9ceaea671ca..df97df2f6b8 100644
--- a/addons/base_calendar/crm_meeting.py
+++ b/addons/base_calendar/crm_meeting.py
@@ -91,11 +91,16 @@ class crm_meeting(base_state, osv.Model):
partner_wo_email_lst.append(partner)
if not partner_wo_email_lst:
return {}
- warning_msg = _('The following contacts have no email address :')
for partner in partner_wo_email_lst:
+ recipients = "contacts"
+ if partner.customer and not partner.supplier:
+ recipients = "customers"
+ elif partner.supplier and not partner.customer:
+ recipients = "suppliers"
+ warning_msg = _('The following %s do not have an email address specified.') % (recipients,)
warning_msg += '\n- %s' % (partner.name)
return {'warning': {
- 'title': _('Email addresses not found'),
+ 'title': _('Email not found'),
'message': warning_msg,
}
}
From 866a761177bdc2d0a784ec38aa6a2dc625eb482b Mon Sep 17 00:00:00 2001
From: "Mayur Maheshwari (OpenERP)"
Date: Tue, 16 Oct 2012 15:51:34 +0530
Subject: [PATCH 45/82] [IMP]sale : improve strings
bzr revid: mma@tinyerp.com-20121016102134-j4qa22us07at9ivw
---
addons/crm_partner_assign/partner_geo_assign.py | 2 +-
addons/crm_partner_assign/res_partner_view.xml | 2 +-
addons/project_gtd/project_gtd_view.xml | 2 +-
addons/sale/sale_view.xml | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/addons/crm_partner_assign/partner_geo_assign.py b/addons/crm_partner_assign/partner_geo_assign.py
index 9134f427c5d..69b2ba406ca 100644
--- a/addons/crm_partner_assign/partner_geo_assign.py
+++ b/addons/crm_partner_assign/partner_geo_assign.py
@@ -87,7 +87,7 @@ class res_partner(osv.osv):
help="Gives the probability to assign a lead to this partner. (0 means no assignation.)"),
'opportunity_assigned_ids': fields.one2many('crm.lead', 'partner_assigned_id',\
'Assigned Opportunities'),
- 'grade_id': fields.many2one('res.partner.grade', 'Partner Grade'),
+ 'grade_id': fields.many2one('res.partner.grade', 'Partner Level'),
'activation' : fields.many2one('res.partner.activation', 'Activation', select=1),
'date_partnership' : fields.date('Partnership Date'),
'date_review' : fields.date('Latest Partner Review'),
diff --git a/addons/crm_partner_assign/res_partner_view.xml b/addons/crm_partner_assign/res_partner_view.xml
index f9a46b74791..3b55c70f4c7 100644
--- a/addons/crm_partner_assign/res_partner_view.xml
+++ b/addons/crm_partner_assign/res_partner_view.xml
@@ -77,7 +77,7 @@
-
+
diff --git a/addons/project_gtd/project_gtd_view.xml b/addons/project_gtd/project_gtd_view.xml
index 155e3ab39a2..1467ce55fab 100644
--- a/addons/project_gtd/project_gtd_view.xml
+++ b/addons/project_gtd/project_gtd_view.xml
@@ -77,7 +77,7 @@
-
+
diff --git a/addons/sale/sale_view.xml b/addons/sale/sale_view.xml
index 95d526401ac..6553a169a34 100644
--- a/addons/sale/sale_view.xml
+++ b/addons/sale/sale_view.xml
@@ -131,7 +131,7 @@
-
+
From f1a881236b2c525a47ae99a9723a8ce00807b62e Mon Sep 17 00:00:00 2001
From: Amit Patel
Date: Thu, 18 Oct 2012 12:26:40 +0530
Subject: [PATCH 46/82] [IMP]:improved config parameter while sending
invitation
bzr revid: apa@tinyerp.com-20121018065640-chr285k3tcnk2bho
---
addons/survey/wizard/survey_send_invitation.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/survey/wizard/survey_send_invitation.py b/addons/survey/wizard/survey_send_invitation.py
index 4c2840b787d..661c9417180 100644
--- a/addons/survey/wizard/survey_send_invitation.py
+++ b/addons/survey/wizard/survey_send_invitation.py
@@ -74,7 +74,7 @@ class survey_send_invitation(osv.osv_memory):
raise osv.except_osv(_('Warning!'), _('%sSurvey is not in open state') % msg)
data['mail'] = '''Hello %(name)s, \n\n We are inviting you for following survey. \
\n ''' + name + '''\n Your login ID: %(login)s, Your password: %(passwd)s
- \n link :- http://'''+ str(socket.gethostname()) + ''':8069 \n\n Thanks,'''
+ \n '''+ self.pool.get('ir.config_parameter').get_param(cr, uid, 'web.base.url', default='http://localhost:8069', context=context) + '''\n\n Thanks,'''
return data
def create_report(self, cr, uid, res_ids, report_name=False, file_name=False):
From 8d40893e6fa216873b867cf1734cacdfe049088e Mon Sep 17 00:00:00 2001
From: "Quentin (OpenERP)"
Date: Mon, 22 Oct 2012 12:32:16 +0200
Subject: [PATCH 47/82] [IMP] account: added field supplier invoice number, as
suggested by Normunds Vilcans
lp bug: https://launchpad.net/bugs/814128 fixed
bzr revid: qdp-launchpad@openerp.com-20121022103216-9rnvr84s62ugazny
---
addons/account/account_invoice.py | 1 +
addons/account/account_invoice_view.xml | 13 ++++++++-----
addons/base_crypt/crypt.py | 17 ++++++++++-------
addons/event_sale/event_sale.py | 2 +-
4 files changed, 20 insertions(+), 13 deletions(-)
diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py
index 57f16473b82..0508a7cadfe 100644
--- a/addons/account/account_invoice.py
+++ b/addons/account/account_invoice.py
@@ -185,6 +185,7 @@ class account_invoice(osv.osv):
_columns = {
'name': fields.char('Description', size=64, select=True, readonly=True, states={'draft':[('readonly',False)]}),
'origin': fields.char('Source Document', size=64, help="Reference of the document that produced this invoice.", readonly=True, states={'draft':[('readonly',False)]}),
+ 'supplier_invoice_number': fields.char('Supplier Invoice Number', size=64, help="The reference of this invoice as provided by the supplier.", readonly=True, states={'draft':[('readonly',False)]}),
'type': fields.selection([
('out_invoice','Customer Invoice'),
('in_invoice','Supplier Invoice'),
diff --git a/addons/account/account_invoice_view.xml b/addons/account/account_invoice_view.xml
index 8516fcd96ae..ee5a911d933 100644
--- a/addons/account/account_invoice_view.xml
+++ b/addons/account/account_invoice_view.xml
@@ -170,12 +170,15 @@
context="{'default_customer': 0, 'search_default_supplier': 1, 'default_supplier': 1}"
domain="[('supplier', '=', True)]"/>
-
-
-
@@ -449,7 +452,7 @@
account.invoice
-
+
diff --git a/addons/base_crypt/crypt.py b/addons/base_crypt/crypt.py
index 81a60a5dd5f..3accc2740e9 100644
--- a/addons/base_crypt/crypt.py
+++ b/addons/base_crypt/crypt.py
@@ -140,15 +140,18 @@ class users(osv.osv):
# Add handlers for 'input_pw' field.
def set_pw(self, cr, uid, id, name, value, args, context):
- if not value:
- raise osv.except_osv(_('Error!'), _("You have to specify a password."))
+ if value:
+ obj = pooler.get_pool(cr.dbname).get('res.users')
+ if not hasattr(obj, "_salt_cache"):
+ obj._salt_cache = {}
- obj = pooler.get_pool(cr.dbname).get('res.users')
- if not hasattr(obj, "_salt_cache"):
- obj._salt_cache = {}
+ salt = obj._salt_cache[id] = gen_salt()
+ encrypted = encrypt_md5(value, salt)
- salt = obj._salt_cache[id] = gen_salt()
- encrypted = encrypt_md5(value, salt)
+ else:
+ #setting a password to '' is allowed. It can be used to inactivate the classic log-in of the user
+ #while the access can still be granted by another login method (openid...)
+ encrypted = ''
cr.execute('update res_users set password=%s where id=%s',
(encrypted.encode('utf-8'), int(id)))
cr.commit()
diff --git a/addons/event_sale/event_sale.py b/addons/event_sale/event_sale.py
index f37dea3f075..2dd40a7c285 100644
--- a/addons/event_sale/event_sale.py
+++ b/addons/event_sale/event_sale.py
@@ -40,7 +40,7 @@ class sale_order_line(osv.osv):
'event_id': fields.many2one('event.event', 'Event', help="Choose an event and it will automatically create a registration for this event."),
#those 2 fields are used for dynamic domains and filled by onchange
'event_type_id': fields.related('event_type_id', type='many2one', relation="event.type", string="Event Type"),
- 'event_ok': fields.related('event_ok', string='event_ok', type='boolean'),
+ 'event_ok': fields.related('product_id', 'event_ok', string='event_ok', type='boolean'),
}
def product_id_change(self, cr, uid, ids,
From 8e7ec0974960455d8fec16d92b8e4e93ea2aaa0e Mon Sep 17 00:00:00 2001
From: niv-openerp
Date: Mon, 22 Oct 2012 18:15:16 +0200
Subject: [PATCH 48/82] m
bzr revid: nicolas.vanhoren@openerp.com-20121022161516-4g9wg1a3fv0r7t12
---
addons/web/static/src/js/view_form.js | 25 ++++++++++++++++++++-----
1 file changed, 20 insertions(+), 5 deletions(-)
diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js
index 850a334c40b..bd4f8f5d55f 100644
--- a/addons/web/static/src/js/view_form.js
+++ b/addons/web/static/src/js/view_form.js
@@ -3234,6 +3234,12 @@ var commands = {
return [6, false, ids];
}
};
+/**
+ widget options:
+ - reload_on_button: Reload the whole form view if click on a button in a list view.
+ If you see this options, do not use it, it's basically a dirty hack to make one
+ precise o2m to behave the way we want.
+*/
instance.web.form.FieldOne2Many = instance.web.form.AbstractField.extend({
multi_selection: false,
disable_utility_classes: true,
@@ -3689,7 +3695,8 @@ instance.web.form.One2ManyListView = instance.web.ListView.extend({
readonly: !this.is_action_enabled('edit') || self.o2m.get("effective_readonly")
});
},
- do_button_action: function (name, id, callback) {
+ handle_button: function(name, id, call) {
+ var _sup = _.bind(this._super, this);
if (!_.isNumber(id)) {
instance.webclient.notification.warn(
_t("Action Button"),
@@ -3700,14 +3707,22 @@ instance.web.form.One2ManyListView = instance.web.ListView.extend({
var self = this;
this.ensure_saved().pipe(function () {
if (parent_form)
- return parent_form.save();
+ return parent_form.recursive_save();
else
return $.when();
- }).then(function () {
- self.handle_button(name, id, callback);
+ }).pipe(function () {
+ var call;
+ debugger;
+ if (! self.o2m.options.reload_on_button) {
+ call = callback;
+ } else {
+ call = function() {
+ self.o2m.view.recursive_reload();
+ };
+ }
+ _sup(name, id, call);
});
},
-
_before_edit: function () {
this.__ignore_blur = false;
this.editor.form.on('blurred', this, this._on_form_blur);
From dd99dc7ed07057bf46bd3a053e53dd49492e7d65 Mon Sep 17 00:00:00 2001
From: niv-openerp
Date: Mon, 22 Oct 2012 18:15:56 +0200
Subject: [PATCH 49/82] m
bzr revid: nicolas.vanhoren@openerp.com-20121022161556-wb1l3kahb9lwrnv3
---
addons/mrp/mrp_view.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/mrp/mrp_view.xml b/addons/mrp/mrp_view.xml
index 9d1ae9eae8a..9e35377986a 100644
--- a/addons/mrp/mrp_view.xml
+++ b/addons/mrp/mrp_view.xml
@@ -668,7 +668,7 @@
-
+
From c55438e695d03854ebf1b82aa0d6b33b3dc278f0 Mon Sep 17 00:00:00 2001
From: Launchpad Translations on behalf of openerp <>
Date: Tue, 23 Oct 2012 05:05:46 +0000
Subject: [PATCH 50/82] Launchpad automatic translations update.
bzr revid: launchpad_translations_on_behalf_of_openerp-20121023044839-5p7b9e93zpxmpfpv
bzr revid: launchpad_translations_on_behalf_of_openerp-20121023050546-in29ajkb3zkyg3za
---
addons/account_cancel/i18n/es_MX.po | 39 +-
addons/anonymization/i18n/mn.po | 4 +-
addons/hr/i18n/lt.po | 29 +-
addons/hr_timesheet_sheet/i18n/mk.po | 1031 ++++++++++++++++++++++++++
addons/l10n_mx/i18n/es_MX.po | 73 +-
addons/sale/i18n/lt.po | 30 +-
addons/web/i18n/it.po | 28 +-
7 files changed, 1139 insertions(+), 95 deletions(-)
create mode 100644 addons/hr_timesheet_sheet/i18n/mk.po
diff --git a/addons/account_cancel/i18n/es_MX.po b/addons/account_cancel/i18n/es_MX.po
index c3029cd8d53..c176d3a8f45 100644
--- a/addons/account_cancel/i18n/es_MX.po
+++ b/addons/account_cancel/i18n/es_MX.po
@@ -1,38 +1,23 @@
-# Spanish translation for openobject-addons
-# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
+# Spanish (Mexico) translation for openobject-addons
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR , 2010.
+# FIRST AUTHOR , 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
-"POT-Creation-Date: 2011-01-11 11:14+0000\n"
-"PO-Revision-Date: 2010-11-23 09:43+0000\n"
-"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
-"\n"
-"Language-Team: Spanish \n"
+"POT-Creation-Date: 2012-02-08 00:35+0000\n"
+"PO-Revision-Date: 2012-10-22 17:44+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Spanish (Mexico) \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-09-05 05:48+0000\n"
-"X-Generator: Launchpad (build 13830)\n"
+"X-Launchpad-Export-Date: 2012-10-23 04:48+0000\n"
+"X-Generator: Launchpad (build 16179)\n"
#. module: account_cancel
-#: model:ir.module.module,description:account_cancel.module_meta_information
-msgid ""
-"\n"
-" Module adds 'Allow cancelling entries' field on form view of account "
-"journal. If set to true it allows user to cancel entries & invoices.\n"
-" "
-msgstr ""
-"\n"
-" Este módulo añade el campo 'Permitir la cancelación de asientos' en la "
-"vista de formulario de los diarios contables. Si está marcado, permite a los "
-"usuarios cancelar los asientos y las facturas.\n"
-" "
-
-#. module: account_cancel
-#: model:ir.module.module,shortdesc:account_cancel.module_meta_information
-msgid "Account Cancel"
-msgstr "Cancelar asientos/facturas"
+#: view:account.invoice:0
+msgid "Cancel"
+msgstr "Cancelar"
diff --git a/addons/anonymization/i18n/mn.po b/addons/anonymization/i18n/mn.po
index cd54ad8ef6c..3ba97872c3c 100644
--- a/addons/anonymization/i18n/mn.po
+++ b/addons/anonymization/i18n/mn.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-10-22 04:40+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-23 04:48+0000\n"
+"X-Generator: Launchpad (build 16179)\n"
#. module: anonymization
#: model:ir.model,name:anonymization.model_ir_model_fields_anonymize_wizard
diff --git a/addons/hr/i18n/lt.po b/addons/hr/i18n/lt.po
index f50c071b739..831a1fe29d5 100644
--- a/addons/hr/i18n/lt.po
+++ b/addons/hr/i18n/lt.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 01:37+0100\n"
-"PO-Revision-Date: 2012-10-21 21:20+0000\n"
-"Last-Translator: mchip \n"
+"PO-Revision-Date: 2012-10-22 07:48+0000\n"
+"Last-Translator: nanothole \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-22 04:40+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-23 04:48+0000\n"
+"X-Generator: Launchpad (build 16179)\n"
#. module: hr
#: model:process.node,name:hr.process_node_openerpuser0
@@ -56,7 +56,7 @@ msgstr ""
#. module: hr
#: model:ir.actions.act_window,name:hr.view_department_form_installer
msgid "Create Your Departments"
-msgstr ""
+msgstr "Sukurkite padalinius"
#. module: hr
#: model:ir.actions.act_window,help:hr.action_hr_job
@@ -77,12 +77,12 @@ msgstr "Padalinys"
#. module: hr
#: view:hr.job:0
msgid "Mark as Old"
-msgstr ""
+msgstr "Pažymeti kaip sena"
#. module: hr
#: view:hr.job:0
msgid "Jobs"
-msgstr ""
+msgstr "Darbai"
#. module: hr
#: view:hr.job:0
@@ -185,12 +185,12 @@ msgstr ""
#. module: hr
#: model:ir.ui.menu,name:hr.menu_open_view_attendance_reason_new_config
msgid "Attendance"
-msgstr ""
+msgstr "Lankomumas"
#. module: hr
#: view:hr.employee:0
msgid "Social IDs"
-msgstr ""
+msgstr "SODRA Nr."
#. module: hr
#: field:hr.employee,work_phone:0
@@ -227,7 +227,7 @@ msgstr "Darbuotojas"
#. module: hr
#: model:process.node,note:hr.process_node_employeecontact0
msgid "Other information"
-msgstr ""
+msgstr "Kita informacija"
#. module: hr
#: field:hr.employee,work_email:0
@@ -237,7 +237,7 @@ msgstr "Darbo el. paštas"
#. module: hr
#: field:hr.employee,birthday:0
msgid "Date of Birth"
-msgstr ""
+msgstr "Gimimo data"
#. module: hr
#: model:ir.ui.menu,name:hr.menu_hr_reporting
@@ -253,7 +253,7 @@ msgstr ""
#. module: hr
#: view:hr.employee:0 field:hr.employee,job_id:0 view:hr.job:0
msgid "Job"
-msgstr ""
+msgstr "Darbas"
#. module: hr
#: field:hr.department,member_ids:0
@@ -268,7 +268,7 @@ msgstr "Nustatymai"
#. module: hr
#: view:hr.employee:0 field:hr.employee,category_ids:0
msgid "Categories"
-msgstr ""
+msgstr "Kategorijos"
#. module: hr
#: field:hr.job,expected_employees:0
@@ -799,3 +799,6 @@ msgstr ""
#~ msgstr ""
#~ "Objekto pavadinimas turi prasidėti su x_ ir jame negali būti specialiųjų "
#~ "ženklų!"
+
+#~ msgid "Work E-mail"
+#~ msgstr "Darbinis el. paštas"
diff --git a/addons/hr_timesheet_sheet/i18n/mk.po b/addons/hr_timesheet_sheet/i18n/mk.po
new file mode 100644
index 00000000000..23a08ee255d
--- /dev/null
+++ b/addons/hr_timesheet_sheet/i18n/mk.po
@@ -0,0 +1,1031 @@
+# Macedonian translation for openobject-addons
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-02-08 01:37+0100\n"
+"PO-Revision-Date: 2012-10-22 12:23+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Macedonian \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2012-10-23 04:48+0000\n"
+"X-Generator: Launchpad (build 16179)\n"
+
+#. module: hr_timesheet_sheet
+#: field:hr.analytic.timesheet,sheet_id:0 field:hr.attendance,sheet_id:0
+#: field:hr_timesheet_sheet.sheet.account,sheet_id:0
+#: field:hr_timesheet_sheet.sheet.day,sheet_id:0
+msgid "Sheet"
+msgstr "Лист"
+
+#. module: hr_timesheet_sheet
+#: model:process.transition,name:hr_timesheet_sheet.process_transition_timesheetdraft0
+msgid "Service"
+msgstr "Сервис"
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/wizard/hr_timesheet_current.py:38
+#, python-format
+msgid "No employee defined for your user !"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0 view:hr_timesheet_sheet.sheet:0
+#: view:timesheet.report:0
+msgid "Group By..."
+msgstr "Групирај По..."
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet,total_attendance:0
+#: field:hr_timesheet_sheet.sheet,total_attendance_day:0
+msgid "Total Attendance"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+#: field:hr_timesheet_sheet.sheet,department_id:0 view:timesheet.report:0
+#: field:timesheet.report,department_id:0
+msgid "Department"
+msgstr "Сектор"
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0 view:timesheet.report:0
+msgid "Timesheet in current year"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.transition,name:hr_timesheet_sheet.process_transition_tasktimesheet0
+msgid "Task timesheet"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+msgid "Today"
+msgstr "Денес"
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:274
+#, python-format
+msgid ""
+"Please verify that the total difference of the sheet is lower than %.2f !"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: selection:hr.timesheet.report,month:0 selection:timesheet.report,month:0
+msgid "March"
+msgstr "Март"
+
+#. module: hr_timesheet_sheet
+#: view:timesheet.report:0 field:timesheet.report,cost:0
+msgid "#Cost"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0 view:timesheet.report:0
+msgid "Timesheet of last month"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0 field:hr.timesheet.report,company_id:0
+#: field:hr_timesheet_sheet.sheet,company_id:0 view:timesheet.report:0
+#: field:timesheet.report,company_id:0
+msgid "Company"
+msgstr "Фирма"
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0 view:hr_timesheet_sheet.sheet:0
+#: model:ir.model,name:hr_timesheet_sheet.model_hr_timesheet_report
+#: model:ir.model,name:hr_timesheet_sheet.model_hr_timesheet_sheet_sheet
+#: model:ir.model,name:hr_timesheet_sheet.model_timesheet_report
+#: model:process.node,name:hr_timesheet_sheet.process_node_timesheet0
+#: view:timesheet.report:0
+msgid "Timesheet"
+msgstr "Работни Часови"
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+msgid "Set to Draft"
+msgstr "Сетирај на Драфт"
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet,date_to:0 field:timesheet.report,date_to:0
+msgid "Date to"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.node,note:hr_timesheet_sheet.process_node_invoiceonwork0
+msgid "Based on the timesheet"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0 view:timesheet.report:0
+msgid "Group by day of date"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:615
+#, python-format
+msgid "You cannot modify an entry in a confirmed timesheet!"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.transition.action,name:hr_timesheet_sheet.process_transition_action_validatetimesheet0
+msgid "Validate"
+msgstr "Потврди"
+
+#. module: hr_timesheet_sheet
+#: selection:hr_timesheet_sheet.sheet,state:0
+msgid "Approved"
+msgstr "Одобрено"
+
+#. module: hr_timesheet_sheet
+#: selection:hr_timesheet_sheet.sheet,state_attendance:0
+msgid "Present"
+msgstr "Присутен"
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0
+msgid "Total Cost"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:263
+#, python-format
+msgid ""
+"In order to create a timesheet for this employee, you must assign the "
+"employee to an analytic journal!"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+#: model:process.transition.action,name:hr_timesheet_sheet.process_transition_action_refusetimesheet0
+msgid "Refuse"
+msgstr "Одбиј"
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:619
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:639
+#, python-format
+msgid ""
+"You cannot enter an attendance date outside the current timesheet dates!"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:ir.actions.act_window,help:hr_timesheet_sheet.action_hr_timesheet_current_open
+msgid ""
+"My Timesheet opens your timesheet so that you can book your activities into "
+"the system. From the same form, you can register your attendances (Sign "
+"In/Out) and describe the working hours made on the different projects. At "
+"the end of the period defined in the company, the timesheet is confirmed by "
+"the user and can be validated by his manager. If required, as defined on the "
+"project, you can generate the invoices based on the timesheet."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet.day:0
+msgid "Total Difference"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0 view:timesheet.report:0
+msgid " Month-1 "
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+msgid "My Departments Timesheet"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:ir.actions.act_window,name:hr_timesheet_sheet.act_hr_timesheet_sheet_sheet_by_day
+msgid "Timesheet by Day"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet.account,name:0
+msgid "Project / Analytic Account"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.transition,name:hr_timesheet_sheet.process_transition_validatetimesheet0
+msgid "Validation"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:274
+#, python-format
+msgid "Warning !"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.node,note:hr_timesheet_sheet.process_node_attendance0
+msgid "Employee's timesheet entry"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0 field:hr.timesheet.report,account_id:0
+#: view:timesheet.report:0 field:timesheet.report,account_id:0
+msgid "Analytic Account"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:timesheet.report,nbr:0
+msgid "#Nbr"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet,date_from:0
+#: field:timesheet.report,date_from:0
+msgid "Date from"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:timesheet.report:0
+msgid " Month "
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+#: model:ir.actions.act_window,name:hr_timesheet_sheet.act_hr_employee_2_hr_timesheet
+#: model:ir.actions.act_window,name:hr_timesheet_sheet.act_hr_timesheet_sheet_form
+#: model:ir.ui.menu,name:hr_timesheet_sheet.menu_act_hr_timesheet_sheet_form
+#: view:res.company:0
+msgid "Timesheets"
+msgstr "Работни часови"
+
+#. module: hr_timesheet_sheet
+#: model:process.node,name:hr_timesheet_sheet.process_node_confirmedtimesheet0
+#: view:timesheet.report:0 selection:timesheet.report,state:0
+msgid "Confirmed"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet.day,total_attendance:0
+#: model:ir.model,name:hr_timesheet_sheet.model_hr_attendance
+#: model:process.node,name:hr_timesheet_sheet.process_node_attendance0
+msgid "Attendance"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.transition.action,name:hr_timesheet_sheet.process_transition_action_draftconfirmtimesheet0
+msgid "Confirm"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet,timesheet_ids:0
+msgid "Timesheet lines"
+msgstr "Редови на работни часови"
+
+#. module: hr_timesheet_sheet
+#: constraint:res.company:0
+msgid "Error! You can not create recursive companies."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet,state:0 view:timesheet.report:0
+#: field:timesheet.report,state:0
+msgid "State"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.node,note:hr_timesheet_sheet.process_node_confirmedtimesheet0
+msgid "State is 'confirmed'."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet,employee_id:0
+msgid "Employee"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: selection:hr_timesheet_sheet.sheet,state:0
+#: selection:timesheet.report,state:0
+msgid "New"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:ir.actions.act_window,name:hr_timesheet_sheet.action_week_attendance_graph
+msgid "My Total Attendances By Week"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:241
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:246
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:248
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:250
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:257
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:259
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:261
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:263
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:318
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:548
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:615
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:646
+#: code:addons/hr_timesheet_sheet/wizard/hr_timesheet_current.py:38
+#, python-format
+msgid "Error !"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet.account,total:0
+msgid "Total Time"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+#: model:ir.actions.act_window,name:hr_timesheet_sheet.act_hr_timesheet_sheet_sheet_2_hr_analytic_timesheet
+msgid "Timesheet Lines"
+msgstr "Редови на работни часови"
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0
+msgid "Hours"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0 view:timesheet.report:0
+msgid "Group by month of date"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: constraint:hr.attendance:0
+msgid "Error: Sign in (resp. Sign out) must follow Sign out (resp. Sign in)"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:455
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:457
+#, python-format
+msgid "Invalid action !"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.transition,note:hr_timesheet_sheet.process_transition_validatetimesheet0
+msgid "The project manager validates the timesheets."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: selection:hr.timesheet.report,month:0 selection:timesheet.report,month:0
+msgid "July"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:res.company:0
+msgid "Configuration"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.node,name:hr_timesheet_sheet.process_node_workontask0
+msgid "Work on Task"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+msgid "Daily"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:timesheet.report:0 field:timesheet.report,quantity:0
+msgid "#Quantity"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet,total_timesheet:0
+#: field:hr_timesheet_sheet.sheet,total_timesheet_day:0
+#: view:hr_timesheet_sheet.sheet.day:0
+#: field:hr_timesheet_sheet.sheet.day,total_timesheet:0
+msgid "Total Timesheet"
+msgstr "Вкупно работни часови"
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+msgid "Available Attendance"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+msgid "Sign In"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:timesheet.report:0 field:timesheet.report,total_timesheet:0
+msgid "#Total Timesheet"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:ir.model,name:hr_timesheet_sheet.model_hr_timesheet_current_open
+msgid "hr.timesheet.current.open"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+msgid "Go to:"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: selection:hr.timesheet.report,month:0 selection:timesheet.report,month:0
+msgid "September"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: selection:hr.timesheet.report,month:0 selection:timesheet.report,month:0
+msgid "December"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:248
+#, python-format
+msgid ""
+"In order to create a timesheet for this employee, you must link the employee "
+"to a product, like 'Consultant'!"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.current.open:0
+msgid "It will open your current timesheet"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:241
+#, python-format
+msgid "You cannot duplicate a timesheet!"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0 field:hr.timesheet.report,month:0
+#: selection:res.company,timesheet_range:0 view:timesheet.report:0
+#: field:timesheet.report,month:0
+msgid "Month"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:timesheet.report:0 field:timesheet.report,total_diff:0
+msgid "#Total Diff"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+msgid "In Draft"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:261
+#, python-format
+msgid ""
+"In order to create a timesheet for this employee, you must link the employee "
+"to a product!"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.transition,name:hr_timesheet_sheet.process_transition_attendancetimesheet0
+msgid "Sign in/out"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: selection:hr_timesheet_sheet.sheet,state:0
+msgid "Waiting Approval"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.transition,name:hr_timesheet_sheet.process_transition_invoiceontimesheet0
+msgid "Billing"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.transition,note:hr_timesheet_sheet.process_transition_timesheetdraft0
+msgid ""
+"The timesheet line represents the time spent by the employee on a specific "
+"service provided."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: constraint:hr_timesheet_sheet.sheet:0
+msgid "You must select a Current date which is in the timesheet dates !"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet,name:0
+msgid "Note"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:ir.actions.act_window,help:hr_timesheet_sheet.action_hr_timesheet_report_stat_all
+msgid ""
+"This report performs analysis on timesheets created by your human resources "
+"in the system. It allows you to have a full overview of entries done by "
+"your employees. You can group them by specific selection criteria thanks to "
+"the search tool."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:timesheet.report:0 selection:timesheet.report,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:res.company,timesheet_max_difference:0
+msgid "Timesheet allowed difference(Hours)"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.transition,note:hr_timesheet_sheet.process_transition_invoiceontimesheet0
+msgid "The invoice is created based on the timesheet."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.node,name:hr_timesheet_sheet.process_node_drafttimesheetsheet0
+msgid "Draft Timesheet"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: selection:res.company,timesheet_range:0
+msgid "Week"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: selection:hr.timesheet.report,month:0 selection:timesheet.report,month:0
+msgid "August"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+msgid "Approve"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: selection:hr.timesheet.report,month:0 selection:timesheet.report,month:0
+msgid "June"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet,state_attendance:0
+msgid "Current Status"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:646
+#, python-format
+msgid "You cannot modify an entry in a confirmed timesheet !"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:ir.model,name:hr_timesheet_sheet.model_hr_timesheet_sheet_sheet_account
+#: model:ir.model,name:hr_timesheet_sheet.model_hr_timesheet_sheet_sheet_day
+msgid "Timesheets by Period"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0 field:hr.timesheet.report,user_id:0
+#: field:hr_timesheet_sheet.sheet,user_id:0 view:timesheet.report:0
+#: field:timesheet.report,user_id:0
+msgid "User"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:ir.actions.act_window,name:hr_timesheet_sheet.act_hr_timesheet_sheet_sheet_by_account
+msgid "Timesheet by Account"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr.timesheet.report,date:0 field:hr_timesheet_sheet.sheet.day,name:0
+msgid "Date"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: selection:hr.timesheet.report,month:0 selection:timesheet.report,month:0
+msgid "November"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0 view:timesheet.report:0
+msgid "Extended Filters..."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:res.company,timesheet_range:0
+msgid "Timesheet range"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:548
+#, python-format
+msgid "You can not modify an entry in a confirmed timesheet !"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:board.board:0
+msgid "My Total Attendance By Week"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:259
+#, python-format
+msgid ""
+"You cannot have 2 timesheets that overlaps!\n"
+"You should use the menu 'My Timesheet' to avoid this problem."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: selection:hr.timesheet.report,month:0 selection:timesheet.report,month:0
+msgid "October"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:ir.actions.act_window,help:hr_timesheet_sheet.act_hr_timesheet_sheet_form
+msgid ""
+"Check your timesheets for a specific period. You can also encode time spent "
+"on a project (i.e. an analytic account) thus generating costs in the "
+"analytic account concerned."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:237
+#, python-format
+msgid ""
+"The timesheet cannot be validated as it does not contain an equal number of "
+"sign ins and sign outs!"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: selection:hr.timesheet.report,month:0 selection:timesheet.report,month:0
+msgid "January"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.transition,note:hr_timesheet_sheet.process_transition_attendancetimesheet0
+msgid "The employee signs in and signs out."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:ir.model,name:hr_timesheet_sheet.model_res_company
+msgid "Companies"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+msgid "Summary"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: constraint:hr_timesheet_sheet.sheet:0
+msgid ""
+"You cannot have 2 timesheets that overlaps !\n"
+"Please use the menu 'My Current Timesheet' to avoid this problem."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+msgid "Unvalidated Timesheets"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:457
+#, python-format
+msgid "You cannot delete a timesheet which have attendance entries!"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr.timesheet.report,quantity:0
+msgid "Quantity"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:455
+#, python-format
+msgid "You cannot delete a timesheet which is already confirmed!"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0 field:hr.timesheet.report,general_account_id:0
+#: view:timesheet.report:0 field:timesheet.report,general_account_id:0
+msgid "General Account"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: help:res.company,timesheet_range:0
+msgid "Periodicity on which you validate your timesheets."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet.account:0
+msgid "Search Account"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: help:res.company,timesheet_max_difference:0
+msgid ""
+"Allowed difference in hours between the sign in/out and the timesheet "
+"computation for one sheet. Set this to 0 if you do not want any control."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0 field:hr_timesheet_sheet.sheet,period_ids:0
+#: view:hr_timesheet_sheet.sheet.day:0
+msgid "Period"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0 field:hr.timesheet.report,day:0
+#: selection:res.company,timesheet_range:0 view:timesheet.report:0
+#: field:timesheet.report,day:0
+msgid "Day"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.current.open:0
+#: model:ir.actions.act_window,name:hr_timesheet_sheet.action_hr_timesheet_current_open
+#: model:ir.actions.server,name:hr_timesheet_sheet.ir_actions_server_timsheet_sheet
+#: model:ir.ui.menu,name:hr_timesheet_sheet.menu_act_hr_timesheet_sheet_form_my_current
+msgid "My Current Timesheet"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:timesheet.report:0 selection:timesheet.report,state:0
+msgid "Done"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.node,note:hr_timesheet_sheet.process_node_drafttimesheetsheet0
+msgid "State is 'draft'."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: constraint:hr.analytic.timesheet:0
+msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.current.open:0
+msgid "Cancel"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.node,name:hr_timesheet_sheet.process_node_validatedtimesheet0
+msgid "Validated"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.node,name:hr_timesheet_sheet.process_node_invoiceonwork0
+msgid "Invoice on Work"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0 view:timesheet.report:0
+msgid "Timesheet in current month"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet.account:0
+msgid "Timesheet by Accounts"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/wizard/hr_timesheet_current.py:51
+#, python-format
+msgid "Open Timesheet"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0 view:timesheet.report:0
+msgid "Group by year of date"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.node,note:hr_timesheet_sheet.process_node_validatedtimesheet0
+msgid "State is 'validated'."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: help:hr_timesheet_sheet.sheet,state:0
+msgid ""
+" * The 'Draft' state is used when a user is encoding a new and unconfirmed "
+"timesheet. \n"
+"* The 'Confirmed' state is used for to confirm the timesheet by user. "
+" \n"
+"* The 'Done' state is used when users timesheet is accepted by his/her "
+"senior."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0
+#: model:ir.actions.act_window,name:hr_timesheet_sheet.action_hr_timesheet_report_stat_all
+#: model:ir.ui.menu,name:hr_timesheet_sheet.menu_hr_timesheet_report_all
+msgid "Timesheet Analysis"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+msgid "Search Timesheet"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+msgid "Confirmed Timesheets"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:ir.model,name:hr_timesheet_sheet.model_hr_analytic_timesheet
+msgid "Timesheet Line"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0 field:hr.timesheet.report,product_id:0
+#: view:timesheet.report:0 field:timesheet.report,product_id:0
+msgid "Product"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+#: field:hr_timesheet_sheet.sheet,attendances_ids:0
+#: model:ir.actions.act_window,name:hr_timesheet_sheet.act_hr_timesheet_sheet_sheet_2_hr_attendance
+msgid "Attendances"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr.timesheet.report,name:0 field:timesheet.report,name:0
+msgid "Description"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.transition,note:hr_timesheet_sheet.process_transition_confirmtimesheet0
+msgid "The employee periodically confirms his own timesheets."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: selection:hr.timesheet.report,month:0 selection:timesheet.report,month:0
+msgid "May"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.node,note:hr_timesheet_sheet.process_node_workontask0
+msgid "Defines the work summary of task"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+msgid "Sign Out"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.transition,note:hr_timesheet_sheet.process_transition_tasktimesheet0
+msgid "Moves task entry into the timesheet line"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet.day:0
+msgid "Total Attendances"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:ir.actions.act_window,name:hr_timesheet_sheet.action_timesheet_report_stat_all
+#: model:ir.ui.menu,name:hr_timesheet_sheet.menu_timesheet_report_all
+msgid "Timesheet Sheet Analysis"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet,total_difference:0
+#: field:hr_timesheet_sheet.sheet,total_difference_day:0
+#: field:hr_timesheet_sheet.sheet.day,total_difference:0
+msgid "Difference"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: selection:hr_timesheet_sheet.sheet,state_attendance:0
+msgid "Absent"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: selection:hr.timesheet.report,month:0 selection:timesheet.report,month:0
+msgid "February"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: sql_constraint:res.company:0
+msgid "The company name must be unique !"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+msgid "Employees"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.node,note:hr_timesheet_sheet.process_node_timesheet0
+msgid "Information of time spent on a service"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: selection:hr.timesheet.report,month:0 selection:timesheet.report,month:0
+msgid "April"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.transition,name:hr_timesheet_sheet.process_transition_confirmtimesheet0
+msgid "Confirmation"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet.account,invoice_rate:0
+msgid "Invoice rate"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:619
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:639
+#, python-format
+msgid "UserError"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:250
+#, python-format
+msgid ""
+"In order to create a timesheet for this employee, you must assign the "
+"employee to an analytic journal, like 'Timesheet'!"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:318
+#, python-format
+msgid "You cannot sign in/sign out from an other date than today"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+msgid "Submit to Manager"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet,account_ids:0
+msgid "Analytic accounts"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:timesheet.report:0 field:timesheet.report,to_invoice:0
+msgid "Type of Invoicing"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:246
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:257
+#, python-format
+msgid ""
+"In order to create a timesheet for this employee, you must assign it to a "
+"user!"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:timesheet.report:0 field:timesheet.report,total_attendance:0
+msgid "#Total Attendance"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr.timesheet.report,cost:0
+msgid "Cost"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet,date_current:0
+#: field:timesheet.report,date_current:0
+msgid "Current date"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.process,name:hr_timesheet_sheet.process_process_hrtimesheetprocess0
+msgid "Hr Timesheet"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0 field:hr.timesheet.report,year:0
+#: view:timesheet.report:0 field:timesheet.report,year:0
+msgid "Year"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.current.open:0 selection:hr_timesheet_sheet.sheet,state:0
+msgid "Open"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+msgid "To Approve"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet.account:0
+msgid "Total"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr.timesheet.report,journal_id:0
+msgid "Journal"
+msgstr ""
+
+#~ msgid "My Timesheet"
+#~ msgstr "Мои работни часови"
diff --git a/addons/l10n_mx/i18n/es_MX.po b/addons/l10n_mx/i18n/es_MX.po
index e9822e23498..eec525b5f53 100644
--- a/addons/l10n_mx/i18n/es_MX.po
+++ b/addons/l10n_mx/i18n/es_MX.po
@@ -1,28 +1,41 @@
-# Spanish translation for openobject-addons
-# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# Spanish (Mexico) translation for openobject-addons
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR , 2011.
+# FIRST AUTHOR , 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
-"POT-Creation-Date: 2011-01-07 06:07+0000\n"
-"PO-Revision-Date: 2011-02-15 15:37+0000\n"
+"POT-Creation-Date: 2011-12-23 09:56+0000\n"
+"PO-Revision-Date: 2012-10-22 22:58+0000\n"
"Last-Translator: FULL NAME \n"
-"Language-Team: Spanish \n"
+"Language-Team: Spanish (Mexico) \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-09-05 05:58+0000\n"
-"X-Generator: Launchpad (build 13830)\n"
+"X-Launchpad-Export-Date: 2012-10-23 04:48+0000\n"
+"X-Generator: Launchpad (build 16179)\n"
#. module: l10n_mx
-#: model:ir.module.module,description:l10n_mx.module_meta_information
-msgid ""
-"This is the module to manage the accounting chart for Mexico in Open ERP."
-msgstr ""
-"Este es el módulo para gestionar el plan contable para Méjico en Open ERP."
+#: model:account.account.type,name:l10n_mx.account_type_receivable
+msgid "Receivable"
+msgstr "Por cobrar"
+
+#. module: l10n_mx
+#: model:account.account.type,name:l10n_mx.account_type_equity
+msgid "Equity"
+msgstr "Capital"
+
+#. module: l10n_mx
+#: model:account.account.type,name:l10n_mx.account_type_tax
+msgid "Tax"
+msgstr "Impuesto"
+
+#. module: l10n_mx
+#: model:account.account.type,name:l10n_mx.account_type_cash
+msgid "Cash"
+msgstr "Efectivo"
#. module: l10n_mx
#: model:ir.actions.todo,note:l10n_mx.config_call_account_template_mx_chart
@@ -35,16 +48,28 @@ msgid ""
"Management/Configuration/Financial Accounting/Financial Accounts/Generate "
"Chart of Accounts from a Chart Template."
msgstr ""
-"Generar Plan Contable a partir de una plantilla de Plan. Se le preguntará "
-"por el nombre de la compañía, la plantilla de plan contable a seguir, el no. "
-"de dígitos para generar el código de sus cuentas y la cuenta bancaria, la "
-"divisa para crear Diarios. Por lo tanto, la copia exacta de la plantilla de "
-"plan contable será generada.\n"
-"Este es el mismo asistente que se ejecuta desde Gestión "
-"Financiera/Configuración/Contabilidad Financiera/Contabilidad "
-"Financiera/Generar Plan Contable a partir de una Plantilla de Plan."
#. module: l10n_mx
-#: model:ir.module.module,shortdesc:l10n_mx.module_meta_information
-msgid "Mexico - Chart of Account"
-msgstr "Méjico - Plan Contable"
+#: model:account.account.type,name:l10n_mx.account_type_payable
+msgid "Payable"
+msgstr "A pagar"
+
+#. module: l10n_mx
+#: model:account.account.type,name:l10n_mx.account_type_asset
+msgid "Asset"
+msgstr "Activo"
+
+#. module: l10n_mx
+#: model:account.account.type,name:l10n_mx.account_type_income
+msgid "Income"
+msgstr "Ingreso"
+
+#. module: l10n_mx
+#: model:account.account.type,name:l10n_mx.account_type_expense
+msgid "Expense"
+msgstr "Gasto"
+
+#. module: l10n_mx
+#: model:account.account.type,name:l10n_mx.account_type_view
+msgid "View"
+msgstr "Vista"
diff --git a/addons/sale/i18n/lt.po b/addons/sale/i18n/lt.po
index 46158f9bbde..bf590d7ca7f 100644
--- a/addons/sale/i18n/lt.po
+++ b/addons/sale/i18n/lt.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev_rc3\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-09-20 07:29+0000\n"
-"PO-Revision-Date: 2010-12-14 21:49+0000\n"
-"Last-Translator: qdp (OpenERP) \n"
+"PO-Revision-Date: 2012-10-22 17:52+0000\n"
+"Last-Translator: ignas \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:12+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-23 04:48+0000\n"
+"X-Generator: Launchpad (build 16179)\n"
#. module: sale
#: code:addons/sale/wizard/sale_make_invoice_advance.py:215
@@ -160,14 +160,14 @@ msgstr ""
#. module: sale
#: field:sale.order,date_confirm:0
msgid "Confirmation Date"
-msgstr ""
+msgstr "Patvirtinimo data"
#. module: sale
#: view:sale.order:0
#: view:sale.order.line:0
#: view:sale.report:0
msgid "Group By..."
-msgstr ""
+msgstr "Grupuoti pagal..."
#. module: sale
#: view:sale.order.line:0
@@ -322,7 +322,7 @@ msgstr ""
#. module: sale
#: help:sale.order,amount_total:0
msgid "The total amount."
-msgstr ""
+msgstr "Bendra suma."
#. module: sale
#: view:sale.report:0
@@ -652,7 +652,7 @@ msgstr ""
#: view:board.board:0
#: model:ir.actions.act_window,name:sale.action_turnover_by_month
msgid "Monthly Turnover"
-msgstr ""
+msgstr "Mėnesinė apyvarta"
#. module: sale
#: view:sale.report:0
@@ -716,7 +716,7 @@ msgstr "Bendra kaina"
#. module: sale
#: model:ir.actions.act_window,name:sale.action_order_tree
msgid "Old Quotations"
-msgstr ""
+msgstr "Seni pasiūlymai"
#. module: sale
#: help:sale.config.settings,module_sale_journal:0
@@ -816,7 +816,7 @@ msgstr "Iš viso :"
#. module: sale
#: view:sale.report:0
msgid "My Sales"
-msgstr ""
+msgstr "Mano pardavimai"
#. module: sale
#: code:addons/sale/sale.py:253
@@ -1233,7 +1233,7 @@ msgstr "Grupuoti sąskaitas faktūras"
#. module: sale
#: help:sale.order,amount_tax:0
msgid "The tax amount."
-msgstr ""
+msgstr "Mokesčiai"
#. module: sale
#: view:sale.order:0
@@ -1252,7 +1252,7 @@ msgstr ""
#. module: sale
#: selection:sale.report,month:0
msgid "August"
-msgstr ""
+msgstr "Rugpjūtis"
#. module: sale
#: view:sale.order:0
@@ -1282,7 +1282,7 @@ msgstr ""
#. module: sale
#: selection:sale.report,month:0
msgid "June"
-msgstr ""
+msgstr "Birželis"
#. module: sale
#: model:ir.actions.act_window,name:sale.action_email_templates
@@ -1559,7 +1559,7 @@ msgstr ""
#: view:sale.report:0
#: field:sale.report,day:0
msgid "Day"
-msgstr ""
+msgstr "Diena"
#. module: sale
#: view:sale.order:0
@@ -1830,7 +1830,7 @@ msgstr ""
#. module: sale
#: view:sale.order:0
msgid "Other Information"
-msgstr ""
+msgstr "Kita informacija"
#. module: sale
#: view:res.partner:0
diff --git a/addons/web/i18n/it.po b/addons/web/i18n/it.po
index cd25e1fb9d6..7df8f4c27bb 100644
--- a/addons/web/i18n/it.po
+++ b/addons/web/i18n/it.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2012-07-02 09:06+0200\n"
-"PO-Revision-Date: 2012-02-16 21:49+0000\n"
-"Last-Translator: Davide Corio - agilebg.com \n"
+"PO-Revision-Date: 2012-10-22 14:36+0000\n"
+"Last-Translator: Marius Marolla \n"
"Language-Team: Italian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-21 05:02+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-23 05:05+0000\n"
+"X-Generator: Launchpad (build 16179)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:176
@@ -129,56 +129,56 @@ msgstr "OpenERP - Unsupported/Community Version"
#. openerp-web
#: addons/web/static/src/js/coresetup.js:619
msgid "less than a minute ago"
-msgstr ""
+msgstr "meno di un minuto fa"
#. openerp-web
#: addons/web/static/src/js/coresetup.js:620
msgid "about a minute ago"
-msgstr ""
+msgstr "circa un minuto fa"
#. openerp-web
#: addons/web/static/src/js/coresetup.js:621
#, python-format
msgid "%d minutes ago"
-msgstr ""
+msgstr "%d minuti fa"
#. openerp-web
#: addons/web/static/src/js/coresetup.js:622
msgid "about an hour ago"
-msgstr ""
+msgstr "circa un'ora fa"
#. openerp-web
#: addons/web/static/src/js/coresetup.js:623
#, python-format
msgid "%d hours ago"
-msgstr ""
+msgstr "%d ore fa"
#. openerp-web
#: addons/web/static/src/js/coresetup.js:624
msgid "a day ago"
-msgstr ""
+msgstr "un giorno fa"
#. openerp-web
#: addons/web/static/src/js/coresetup.js:625
#, python-format
msgid "%d days ago"
-msgstr ""
+msgstr "%d giorni fa"
#. openerp-web
#: addons/web/static/src/js/coresetup.js:626
msgid "about a month ago"
-msgstr ""
+msgstr "circa un mese fa"
#. openerp-web
#: addons/web/static/src/js/coresetup.js:627
#, python-format
msgid "%d months ago"
-msgstr ""
+msgstr "%d mesi fa"
#. openerp-web
#: addons/web/static/src/js/coresetup.js:628
msgid "about a year ago"
-msgstr ""
+msgstr "circa un anno fa"
#. openerp-web
#: addons/web/static/src/js/coresetup.js:629
From 5d7f760a05d3feee54bddc53666daf499ed7edbd Mon Sep 17 00:00:00 2001
From: "olt@tinyerp.com" <>
Date: Tue, 23 Oct 2012 09:23:17 +0200
Subject: [PATCH 51/82] [FIX] anonymization: add an object to handle migration
issues
bzr revid: olt@tinyerp.com-20121023072317-zkv1rbf8pt0qnh3g
---
addons/anonymization/anonymization.py | 75 ++++++++++++++++-----
addons/anonymization/anonymization_view.xml | 1 -
2 files changed, 58 insertions(+), 18 deletions(-)
diff --git a/addons/anonymization/anonymization.py b/addons/anonymization/anonymization.py
index 8834645c460..2326a4184ae 100644
--- a/addons/anonymization/anonymization.py
+++ b/addons/anonymization/anonymization.py
@@ -32,13 +32,23 @@ import datetime
from osv import fields, osv
from tools.translate import _
+from itertools import groupby
+from operator import itemgetter
+
FIELD_STATES = [('clear', 'Clear'), ('anonymized', 'Anonymized'), ('not_existing', 'Not Existing')]
ANONYMIZATION_STATES = FIELD_STATES + [('unstable', 'Unstable')]
+WIZARD_ANONYMIZATION_STATES = [('clear', 'Clear'), ('anonymized', 'Anonymized'), ('unstable', 'Unstable')]
ANONYMIZATION_HISTORY_STATE = [('started', 'Started'), ('done', 'Done'), ('in_exception', 'Exception occured')]
ANONYMIZATION_DIRECTION = [('clear -> anonymized', 'clear -> anonymized'), ('anonymized -> clear', 'anonymized -> clear')]
+def group(lst, cols):
+ if isinstance(cols, basestring):
+ cols = [cols]
+ return dict((k, [v for v in itr]) for k, itr in groupby(sorted(lst, key=itemgetter(*cols)), itemgetter(*cols)))
+
+
class ir_model_fields_anonymization(osv.osv):
_name = 'ir.model.fields.anonymization'
_rec_name = 'field_id'
@@ -207,8 +217,6 @@ class ir_model_fields_anonymization(osv.osv):
'state': lambda *a: 'clear',
}
-ir_model_fields_anonymization()
-
class ir_model_fields_anonymization_history(osv.osv):
_name = 'ir.model.fields.anonymization.history'
@@ -223,8 +231,6 @@ class ir_model_fields_anonymization_history(osv.osv):
'filepath': fields.char(string='File path', size=256, readonly=True),
}
-ir_model_fields_anonymization_history()
-
class ir_model_fields_anonymize_wizard(osv.osv_memory):
_name = 'ir.model.fields.anonymize.wizard'
@@ -250,8 +256,8 @@ class ir_model_fields_anonymize_wizard(osv.osv_memory):
'name': fields.char(size=64, string='File Name'),
'summary': fields.function(_get_summary, type='text', string='Summary'),
'file_export': fields.binary(string='Export'),
- 'file_import': fields.binary(string='Import'),
- 'state': fields.function(_get_state, string='Status', type='selection', selection=ANONYMIZATION_STATES, readonly=False),
+ 'file_import': fields.binary(string='Import', help="This is the file created by the anonymization process. It should have the '.pickle' extention."),
+ 'state': fields.function(_get_state, string='Status', type='selection', selection=WIZARD_ANONYMIZATION_STATES, readonly=False),
'msg': fields.text(string='Message'),
}
@@ -319,6 +325,7 @@ class ir_model_fields_anonymize_wizard(osv.osv_memory):
# clicked in the menu and the fields are already anonymized
placeholder.addnext(etree.Element('newline'))
placeholder.addnext(etree.Element('field', {'name': 'file_import', 'required': "1"}))
+ placeholder.addnext(etree.Element('label', {'string': 'Anonymization file'}))
eview.remove(placeholder)
elif step == 'just_anonymized':
# we just ran the anonymization process, we need the file export field
@@ -500,7 +507,6 @@ class ir_model_fields_anonymize_wizard(osv.osv_memory):
def reverse_anonymize_database(self, cr, uid, ids, context=None):
"""Set the 'clear' state to defined fields"""
-
ir_model_fields_anonymization_model = self.pool.get('ir.model.fields.anonymization')
anonymization_history_model = self.pool.get('ir.model.fields.anonymization.history')
@@ -524,23 +530,46 @@ class ir_model_fields_anonymize_wizard(osv.osv_memory):
wizards = self.browse(cr, uid, ids, context=context)
for wizard in wizards:
if not wizard.file_import:
- msg = "It is not possible to reverse the anonymization process without supplying anonymization export file."
+ msg = "It is not possible to reverse the anonymization process without supplying the anonymization export file."
self._raise_after_history_update(cr, uid, history_id, 'Error !', msg)
# reverse the anonymization:
# load the pickle file content into a data structure:
data = pickle.loads(base64.decodestring(wizard.file_import))
+ migration_fix_obj = self.pool.get('ir.model.fields.anonymization.migration.fix')
+ fix_ids = migration_fix_obj.search(cr, uid, [('target_version', '=', '7.0')])
+ fixes = migration_fix_obj.read(cr, uid, fix_ids, ['model_name', 'field_name', 'query', 'query_type', 'sequence'])
+ fixes = group(fixes, ('model_name', 'field_name'))
+
for line in data:
table_name = self.pool.get(line['model_id'])._table
- sql = "update %(table)s set %(field)s = %%(value)s where id = %%(id)s" % {
- 'table': table_name,
- 'field': line['field_id'],
- }
- cr.execute(sql, {
- 'value': line['value'],
- 'id': line['id']
- })
+
+ # check if custom sql exists:
+ key = (line['model_id'], line['field_id'])
+ custom_updates = fixes.get(key)
+ if custom_updates:
+ custom_updates.sort(itemgetter('sequence'))
+ queries = [(record['query'], record['query_type']) for record in custom_updates if record['query_type']]
+ else:
+ queries = [("update %(table)s set %(field)s = %%(value)s where id = %%(id)s" % {
+ 'table': table_name,
+ 'field': line['field_id'],
+ }, 'sql')]
+
+ for query in queries:
+ if query[1] == 'sql':
+ sql = query[0]
+ cr.execute(sql, {
+ 'value': line['value'],
+ 'id': line['id']
+ })
+ elif query[1] == 'python':
+ raw_code = query[0]
+ code = raw_code % line
+ eval(code)
+ else:
+ raise Exception("Unknown query type '%s'. Valid types are: sql, python." % (query['query_type'], ))
# update the anonymization fields:
ir_model_fields_anonymization_model = self.pool.get('ir.model.fields.anonymization')
@@ -589,7 +618,19 @@ class ir_model_fields_anonymize_wizard(osv.osv_memory):
res = None
return res
-ir_model_fields_anonymize_wizard()
+class ir_model_fields_anonymization_migration_fix(osv.osv):
+ _name = 'ir.model.fields.anonymization.migration.fix'
+ _order = "sequence"
+
+ _columns = {
+ 'target_version': fields.char('Target Version'),
+ 'model_name': fields.char('Model'),
+ 'field_name': fields.char('Field'),
+ 'query': fields.text('Query'),
+ 'query_type': fields.selection(string='Query', selection=[('sql', 'sql'), ('python', 'python')]),
+ 'sequence': fields.integer('Sequence'),
+ }
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/anonymization/anonymization_view.xml b/addons/anonymization/anonymization_view.xml
index 1a6c6c355d5..fca112eb266 100644
--- a/addons/anonymization/anonymization_view.xml
+++ b/addons/anonymization/anonymization_view.xml
@@ -14,7 +14,6 @@
From a53941b1652f05f3759b88e0b7a02136ce50e850 Mon Sep 17 00:00:00 2001
From: "vta vta@openerp.com" <>
Date: Tue, 23 Oct 2012 09:50:35 +0200
Subject: [PATCH 52/82] [FIX] Fixed CallbackEnabled issues in POS.
bzr revid: vta@openerp.com-20121023075035-wx3awh0sdeeqa7t3
---
addons/point_of_sale/static/src/js/screens.js | 3 ++-
addons/point_of_sale/static/src/js/widgets.js | 16 ++++++++--------
2 files changed, 10 insertions(+), 9 deletions(-)
diff --git a/addons/point_of_sale/static/src/js/screens.js b/addons/point_of_sale/static/src/js/screens.js
index 1ad03c5ead1..bd174b12fda 100644
--- a/addons/point_of_sale/static/src/js/screens.js
+++ b/addons/point_of_sale/static/src/js/screens.js
@@ -938,10 +938,11 @@ function openerp_pos_screens(instance, module){ //module is instance.point_of_sa
this.renderElement();
},
addPaymentLine: function(newPaymentLine) {
+ var self = this;
var x = new module.PaymentlineWidget(null, {
payment_line: newPaymentLine
});
- x.on_delete.add(_.bind(this.deleteLine, this, x));
+ x.on('delete_payment_line', self, self.deleteLine);
x.appendTo(this.$('#paymentlines'));
},
renderElement: function() {
diff --git a/addons/point_of_sale/static/src/js/widgets.js b/addons/point_of_sale/static/src/js/widgets.js
index 3f0e439cfba..28ab79c65b2 100644
--- a/addons/point_of_sale/static/src/js/widgets.js
+++ b/addons/point_of_sale/static/src/js/widgets.js
@@ -142,7 +142,7 @@ function openerp_pos_widgets(instance, module){ //module is instance.point_of_sa
},
click_handler: function() {
this.order.selectLine(this.model);
- this.on_selected();
+ this.trigger('order_line_selected');
},
renderElement: function() {
this._super();
@@ -153,10 +153,8 @@ function openerp_pos_widgets(instance, module){ //module is instance.point_of_sa
},
refresh: function(){
this.renderElement();
- this.on_refresh();
+ this.trigger('order_line_refreshed');
},
- on_selected: function() {},
- on_refresh: function(){},
});
module.OrderWidget = module.PosBaseWidget.extend({
@@ -230,8 +228,8 @@ function openerp_pos_widgets(instance, module){ //module is instance.point_of_sa
model: orderLine,
order: this.pos.get('selectedOrder'),
});
- line.on_selected.add(_.bind(this.update_numpad, this));
- line.on_refresh.add(_.bind(this.update_summary, this));
+ line.on('order_line_selected', self, self.update_numpad);
+ line.on('order_line_refreshed', self, self.update_summary);
line.appendTo($content);
}, this));
this.update_numpad();
@@ -303,7 +301,6 @@ function openerp_pos_widgets(instance, module){ //module is instance.point_of_sa
this.payment_line = options.payment_line;
this.payment_line.bind('change', this.changedAmount, this);
},
- on_delete: function() {},
changeAmount: function(event) {
var newAmount;
newAmount = event.currentTarget.value;
@@ -317,10 +314,13 @@ function openerp_pos_widgets(instance, module){ //module is instance.point_of_sa
this.renderElement();
},
renderElement: function() {
+ var self = this;
this.name = this.payment_line.get_cashregister().get('journal_id')[1];
this._super();
this.$('input').keyup(_.bind(this.changeAmount, this));
- this.$('.delete-payment-line').click(this.on_delete);
+ this.$('.delete-payment-line').click(function() {
+ self.trigger('delete_payment_line');
+ });
},
});
From 41fba390b243844828cb3f2d7c83dc00b4545f50 Mon Sep 17 00:00:00 2001
From: Xavier Morel
Date: Tue, 23 Oct 2012 10:52:20 +0200
Subject: [PATCH 53/82] [IMP] cleanup View.load_view a bit
and remove unused variables in ViewManagerAction#switch_view
bzr revid: xmo@openerp.com-20121023085220-h7lwft0nilng1q4y
---
addons/web/static/src/js/views.js | 24 +++++++++++-------------
1 file changed, 11 insertions(+), 13 deletions(-)
diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js
index 103ad7a2661..66dfba99d9f 100644
--- a/addons/web/static/src/js/views.js
+++ b/addons/web/static/src/js/views.js
@@ -895,9 +895,7 @@ instance.web.ViewManagerAction = instance.web.ViewManager.extend({
var self = this;
return $.when(this._super.apply(this, arguments)).then(function () {
- var controller = self.views[self.active_view].controller,
- fvg = controller.fields_view,
- view_id = (fvg && fvg.view_id) || '--';
+ var controller = self.views[self.active_view].controller;
self.$el.find('.oe_debug_view').html(QWeb.render('ViewManagerDebug', {
view: controller,
view_manager: self
@@ -1142,28 +1140,28 @@ instance.web.View = instance.web.Widget.extend({
start: function () {
return this.load_view();
},
- load_view: function() {
+ load_view: function(context) {
var self = this;
+ var view_loaded;
if (this.embedded_view) {
- var def = $.Deferred();
- $.async_when().then(function() {def.resolve(self.embedded_view);});
- return def.pipe(function(r) {
- self.trigger('view_loaded', r);
+ view_loaded = $.Deferred();
+ $.async_when().then(function() {
+ view_loaded.resolve(self.embedded_view);
});
} else {
- var context = new instance.web.CompoundContext(this.dataset.get_context());
if (! this.view_type)
console.warn("view_type is not defined", this);
- return this.rpc("/web/view/load", {
+ view_loaded = this.rpc("/web/view/load", {
"model": this.dataset.model,
"view_id": this.view_id,
"view_type": this.view_type,
toolbar: !!this.options.$sidebar,
- context: context
- }).pipe(function(r) {
- self.trigger('view_loaded', r);
+ context: this.dataset.get_context(context)
});
}
+ return view_loaded.pipe(function(r) {
+ self.trigger('view_loaded', r);
+ });
},
set_default_options: function(options) {
this.options = options || {};
From 9bf9ca7a67a16b83cfa371c1377865e168d6c7dc Mon Sep 17 00:00:00 2001
From: Xavier Morel
Date: Tue, 23 Oct 2012 10:53:29 +0200
Subject: [PATCH 54/82] [FIX] list view to use View#load_view rather than its
own implementation thereof
bzr revid: xmo@openerp.com-20121023085329-y01e1u77vfz2n7a9
---
addons/web/static/src/js/view_list.js | 34 +++++++------------
.../web/static/src/js/view_list_editable.js | 2 +-
2 files changed, 13 insertions(+), 23 deletions(-)
diff --git a/addons/web/static/src/js/view_list.js b/addons/web/static/src/js/view_list.js
index 29bc81ea9ec..4da6136d3cc 100644
--- a/addons/web/static/src/js/view_list.js
+++ b/addons/web/static/src/js/view_list.js
@@ -22,6 +22,7 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
'reorderable': true,
'action_buttons': true,
},
+ view_type: 'tree',
/**
* Core class for list-type displays.
*
@@ -83,7 +84,8 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
});
this.no_leaf = false;
- this.on('view_load', self, self.load_list);
+ this.grouped = false;
+ this.on('view_loaded', self, self.load_list);
},
set_default_options: function (options) {
this._super(options);
@@ -145,7 +147,7 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
*/
start: function() {
this.$el.addClass('oe_list');
- return this.reload_view(null, null, true);
+ return this._super();
},
/**
* Returns the style for the provided record in the current view (from the
@@ -219,7 +221,7 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
* @param {Object} data.fields_view.arch current list view descriptor
* @param {Boolean} grouped Is the list view grouped
*/
- load_list: function(data, grouped) {
+ load_list: function(data) {
var self = this;
this.fields_view = data;
this.name = "" + this.fields_view.arch.attrs.string;
@@ -245,7 +247,7 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
}).value();
}
- this.setup_columns(this.fields_view.fields, grouped);
+ this.setup_columns(this.fields_view.fields, this.grouped);
this.$el.html(QWeb.render(this._template, this));
this.$el.addClass(this.fields_view.arch.attrs['class']);
@@ -290,7 +292,7 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
}
this.$buttons.find('.oe_list_add')
.click(this.proxy('do_add_record'))
- .prop('disabled', grouped);
+ .prop('disabled', this.grouped);
}
// Pager
@@ -359,7 +361,7 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
this.sidebar.add_toolbar(this.fields_view.toolbar);
this.sidebar.$el.hide();
}
- this.trigger('list_view_loaded', data, grouped);
+ this.trigger('list_view_loaded', data, this.grouped);
},
/**
* Configures the ListView pager based on the provided dataset's information
@@ -464,25 +466,12 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
/**
* Reloads the list view based on the current settings (dataset & al)
*
+ * @deprecated
* @param {Boolean} [grouped] Should the list be displayed grouped
* @param {Object} [context] context to send the server while loading the view
*/
reload_view: function (grouped, context, initial) {
- var self = this;
- var callback = function (field_view_get) {
- self.load_list(field_view_get, grouped);
- };
- if (this.embedded_view) {
- return $.Deferred().then(callback).resolve(this.embedded_view);
- } else {
- return this.rpc('/web/view/load', {
- model: this.model,
- view_id: this.view_id,
- view_type: "tree",
- context: this.dataset.get_context(context),
- toolbar: !!this.options.$sidebar
- }).then(callback);
- }
+ return this.load_view(context);
},
/**
* re-renders the content of the list view
@@ -564,8 +553,9 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
group_by = null;
}
this.no_leaf = !!context['group_by_no_leaf'];
+ this.grouped = !!group_by;
- this.reload_view(!!group_by, context).then(
+ return this.load_view(context).pipe(
this.proxy('reload_content'));
},
/**
diff --git a/addons/web/static/src/js/view_list_editable.js b/addons/web/static/src/js/view_list_editable.js
index 9bc0e96032f..acc1d781976 100644
--- a/addons/web/static/src/js/view_list_editable.js
+++ b/addons/web/static/src/js/view_list_editable.js
@@ -150,7 +150,7 @@ openerp.web.list_editable = function (instance) {
if (!id && done.created) {
id = done.record.get('id');
}
- self.handle_button.call(self, name, id, callback);
+ self.handle_button(name, id, callback);
});
},
/**
From 957c187bb18045d0fd21a7153eb97b1d73c1f282 Mon Sep 17 00:00:00 2001
From: Fabien Meghazi
Date: Tue, 23 Oct 2012 11:55:59 +0200
Subject: [PATCH 55/82] [IMP] Make 'oe_list_cannot_*' css classes generic
bzr revid: fme@openerp.com-20121023095559-63exp0dyf5zsd3qw
---
addons/web/static/src/css/base.css | 5207 ++++++++++++++-----------
addons/web/static/src/css/base.sass | 22 +-
addons/web/static/src/js/view_list.js | 5 -
addons/web/static/src/js/views.js | 5 +
4 files changed, 2888 insertions(+), 2351 deletions(-)
diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css
index 565bf9c12f5..64b782835f2 100644
--- a/addons/web/static/src/css/base.css
+++ b/addons/web/static/src/css/base.css
@@ -1,4 +1,4 @@
-@charset "UTF-8";
+@charset "utf-8";
@font-face {
font-family: "mnmliconsRegular";
src: url("/web/static/src/font/mnmliconsv21-webfont.eot") format("eot");
@@ -6,7 +6,8 @@
src: url("/web/static/src/font/mnmliconsv21-webfont.ttf") format("truetype");
src: url("/web/static/src/font/mnmliconsv21-webfont.svg") format("svg") active;
font-weight: normal;
- font-style: normal; }
+ font-style: normal;
+}
@font-face {
font-family: "EntypoRegular";
@@ -16,17 +17,22 @@
src: url("/web/static/src/font/entypo-webfont.ttf") format("truetype");
src: url("/web/static/src/font/entypo-webfont.svg") format("svg") active;
font-weight: normal;
- font-style: normal; }
+ font-style: normal;
+}
@media print {
.oe_topbar, .oe_leftbar, .oe_loading {
- display: none !important; } }
+ display: none !important;
+ }
+}
.openerp.openerp_webclient_container {
- height: 100%; }
+ height: 100%;
+}
.text-tag .text-button {
height: auto !important;
- min-height: 16px; }
+ min-height: 16px;
+}
.openerp {
padding: 0;
@@ -38,2332 +44,2856 @@
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5);
/* http://www.quirksmode.org/dom/inputfile.html
* http://stackoverflow.com/questions/2855589/replace-input-type-file-by-an-image
- */ }
- .openerp :-moz-placeholder {
- color: #afafb6 !important;
- font-style: italic !important; }
- .openerp ::-webkit-input-placeholder {
- color: #afafb6 !important;
- font-style: italic !important; }
- .openerp a {
- text-decoration: none;
- cursor: pointer !important; }
- .openerp table {
- padding: 0;
- border-collapse: collapse; }
- .openerp thead {
- font-weight: bold;
- background-color: #f0f0f0; }
- .openerp thead th {
- border-left: 1px solid #dfdfdf; }
- .openerp thead th:first-child {
- border-left: none; }
- .openerp thead th.null {
- border-left: none; }
- .openerp th, .openerp td {
- padding: 0;
- text-align: left; }
- .openerp th {
- font-weight: bold;
- vertical-align: middle; }
- .openerp td {
- vertical-align: top; }
- .openerp .zebra tbody tr:nth-child(odd) td {
- background-color: #f0f0fa;
- background-color: #f0f0fa;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#f0f0fa), to(#eeeef6));
- background-image: -webkit-linear-gradient(top, #f0f0fa, #eeeef6);
- background-image: -moz-linear-gradient(top, #f0f0fa, #eeeef6);
- background-image: -ms-linear-gradient(top, #f0f0fa, #eeeef6);
- background-image: -o-linear-gradient(top, #f0f0fa, #eeeef6);
- background-image: linear-gradient(to bottom, #f0f0fa, #eeeef6); }
- .openerp .zebra tbody tr:hover td {
- background-color: #eeeeee;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#eeeeee), to(#dedede));
- background-image: -webkit-linear-gradient(top, #eeeeee, #dedede);
- background-image: -moz-linear-gradient(top, #eeeeee, #dedede);
- background-image: -ms-linear-gradient(top, #eeeeee, #dedede);
- background-image: -o-linear-gradient(top, #eeeeee, #dedede);
- background-image: linear-gradient(to bottom, #eeeeee, #dedede); }
- .openerp input, .openerp textarea, .openerp select {
- padding: 2px 4px;
- border: 1px solid #cccccc;
- -moz-border-radius: 3px;
- -webkit-border-radius: 3px;
- border-radius: 3px;
- background: white; }
- .openerp img {
- vertical-align: middle; }
- .openerp h4 {
- margin: 4px 0; }
- .openerp a.button:link, .openerp a.button:visited, .openerp button, .openerp input[type='submit'], .openerp .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button {
- display: inline-block;
- border: 1px solid rgba(0, 0, 0, 0.4);
- color: #4c4c4c;
- margin: 0;
- padding: 3px 12px;
- font-size: 13px;
- text-align: center;
- background-color: #efefef;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#efefef), to(#d8d8d8));
- background-image: -webkit-linear-gradient(top, #efefef, #d8d8d8);
- background-image: -moz-linear-gradient(top, #efefef, #d8d8d8);
- background-image: -ms-linear-gradient(top, #efefef, #d8d8d8);
- background-image: -o-linear-gradient(top, #efefef, #d8d8d8);
- background-image: linear-gradient(to bottom, #efefef, #d8d8d8);
- -moz-border-radius: 3px;
- -webkit-border-radius: 3px;
- border-radius: 3px;
- -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
- -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
- text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5);
- -webkit-font-smoothing: antialiased;
- outline: none; }
- .openerp a.button:hover, .openerp button:hover, .openerp input[type='submit']:hover, .openerp .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button.ui-state-hover {
- background-color: #f6f6f6;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#f6f6f6), to(#e3e3e3));
- background-image: -webkit-linear-gradient(top, #f6f6f6, #e3e3e3);
- background-image: -moz-linear-gradient(top, #f6f6f6, #e3e3e3);
- background-image: -ms-linear-gradient(top, #f6f6f6, #e3e3e3);
- background-image: -o-linear-gradient(top, #f6f6f6, #e3e3e3);
- background-image: linear-gradient(to bottom, #f6f6f6, #e3e3e3);
- cursor: pointer;
- background-position: 0; }
- .openerp a.button:focus, .openerp button:focus, .openerp input[type='submit']:focus, .openerp .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button.ui-state-focus {
- border: 1px solid #80bfff;
- background-position: 0;
- background-color: #f6f6f6;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#f6f6f6), to(#e3e3e3));
- background-image: -webkit-linear-gradient(top, #f6f6f6, #e3e3e3);
- background-image: -moz-linear-gradient(top, #f6f6f6, #e3e3e3);
- background-image: -ms-linear-gradient(top, #f6f6f6, #e3e3e3);
- background-image: -o-linear-gradient(top, #f6f6f6, #e3e3e3);
- background-image: linear-gradient(to bottom, #f6f6f6, #e3e3e3);
- -moz-box-shadow: 0 0 3px #80bfff, 0 1px 1px rgba(255, 255, 255, 0.8) inset;
- -webkit-box-shadow: 0 0 3px #80bfff, 0 1px 1px rgba(255, 255, 255, 0.8) inset;
- box-shadow: 0 0 3px #80bfff, 0 1px 1px rgba(255, 255, 255, 0.8) inset; }
- .openerp a.button:active, .openerp a.button.active, .openerp button:active, .openerp button.active, .openerp input[type='submit']:active, .openerp input[type='submit'].active, .openerp .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button.ui-state-active {
- background-color: #e3e3e3;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#e3e3e3), to(#f6f6f6));
- background-image: -webkit-linear-gradient(top, #e3e3e3, #f6f6f6);
- background-image: -moz-linear-gradient(top, #e3e3e3, #f6f6f6);
- background-image: -ms-linear-gradient(top, #e3e3e3, #f6f6f6);
- background-image: -o-linear-gradient(top, #e3e3e3, #f6f6f6);
- background-image: linear-gradient(to bottom, #e3e3e3, #f6f6f6);
- -moz-box-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none; }
- .openerp a.button.disabled, .openerp button:disabled, .openerp input[type='submit']:disabled {
- background: #efefef !important;
- border: 1px solid #d1d1d1 !important;
- -moz-box-shadow: none !important;
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
- color: #aaaaaa !important;
- cursor: default;
- text-shadow: 0 1px 1px white !important; }
- .openerp .ui-widget-content a {
- color: #7c7bad; }
- .openerp .oe_bounce_container {
- display: inline-block; }
- .openerp .ui-tabs {
- position: static; }
- .openerp.ui-dialog {
- display: none;
- padding: 6px;
- background-color: rgba(60, 60, 60, 0.7);
- border: 1px solid;
- border-color: #888888 #555555 #444444;
- -moz-border-radius: 8px;
- -webkit-border-radius: 8px;
- border-radius: 8px;
- -moz-box-shadow: 0 1px 12px rgba(0, 0, 0, 0.6);
- -webkit-box-shadow: 0 1px 12px rgba(0, 0, 0, 0.6);
- box-shadow: 0 1px 12px rgba(0, 0, 0, 0.6);
- -webkit-background-clip: padding-box;
- -moz-background-clip: padding-box;
- background-clip: padding-box; }
- .openerp.ui-dialog .ui-dialog-content {
- padding: 0px; }
- .openerp.ui-dialog .ui-dialog-titlebar, .openerp.ui-dialog .ui-dialog-content, .openerp.ui-dialog .ui-dialog-buttonpane {
- padding: 16px; }
- .openerp.ui-dialog .ui-dialog-titlebar {
- border-bottom: 1px solid #cacaca;
- -moz-border-radius: 2px 2px 0 0;
- -webkit-border-radius: 2px 2px 0 0;
- border-radius: 2px 2px 0 0;
- background-color: #fcfcfc;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#fcfcfc), to(#dedede));
- background-image: -webkit-linear-gradient(top, #fcfcfc, #dedede);
- background-image: -moz-linear-gradient(top, #fcfcfc, #dedede);
- background-image: -ms-linear-gradient(top, #fcfcfc, #dedede);
- background-image: -o-linear-gradient(top, #fcfcfc, #dedede);
- background-image: linear-gradient(to bottom, #fcfcfc, #dedede); }
- .openerp.ui-dialog .ui-dialog-titlebar .ui-dialog-title {
- margin: 0;
- padding: 0; }
- .openerp.ui-dialog .ui-widget-header {
- border: none; }
- .openerp.ui-dialog .ui-dialog-content {
- background: white; }
- .openerp.ui-dialog .ui-dialog-buttonpane {
- border-top: 1px solid #e0e0e0;
- background: #f5f7f9;
- margin: 0;
- -moz-border-radius: 0 0 2px 2px;
- -webkit-border-radius: 0 0 2px 2px;
- border-radius: 0 0 2px 2px; }
- .openerp.ui-dialog .ui-dialog-buttonpane button {
- margin: 0 4px 0 0; }
- .openerp.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
- float: left; }
- .openerp.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button {
- margin-right: 4px; }
- .openerp.ui-dialog .ui-dialog-titlebar-close {
- padding: 0; }
- .openerp.ui-dialog .ui-dialog-titlebar-close .ui-icon-closethick {
- display: none; }
- .openerp.ui-dialog .ui-dialog-titlebar-close:before {
- content: "×";
- font-size: 18px;
- font-weight: bold;
- line-height: 16px;
- color: black;
- text-shadow: 0 1px 0 white;
- padding: 0;
- cursor: pointer;
- background: transparent;
- border: 0; }
- .openerp.ui-dialog .ui-dialog-titlebar-close:before:hover {
- color: black;
- text-decoration: none; }
- .openerp.ui-dialog .oe_about {
- background-color: white;
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAKUlEQVQIHWO8e/fufwYsgAUkJigoiCIF5DMyoYggcUiXgNnBiGQKmAkARpcEQeriln4AAAAASUVORK5CYII=);
- -moz-border-radius: 0 0 2px 2px;
- -webkit-border-radius: 0 0 2px 2px;
- border-radius: 0 0 2px 2px; }
- .openerp.ui-dialog .oe_about a {
- color: #7c7bad; }
- .openerp.ui-dialog .oe_about a:hover {
- text-decoration: underline; }
- .openerp.ui-dialog .oe_about a:focus {
- outline: none; }
- .openerp.ui-dialog .oe_about .oe_logo {
- margin-left: -6px; }
- .openerp.ui-dialog .oe_about .oe_bottom {
- position: absolute;
- top: 50%;
- left: 0;
- right: 0;
- bottom: 0;
- text-shadow: 0 1px 1px #999999;
- background-color: #b41616;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#b41616), to(#600606));
- background-image: -webkit-linear-gradient(top, #b41616, #600606);
- background-image: -moz-linear-gradient(top, #b41616, #600606);
- background-image: -ms-linear-gradient(top, #b41616, #600606);
- background-image: -o-linear-gradient(top, #b41616, #600606);
- background-image: linear-gradient(to bottom, #b41616, #600606);
- color: #eeeeee;
- padding: 0 16px;
- -moz-border-radius: 0 0 2px 2px;
- -webkit-border-radius: 0 0 2px 2px;
- border-radius: 0 0 2px 2px; }
- .openerp.ui-dialog .oe_about .oe_bottom a {
- color: #eeeeee; }
- .openerp.ui-dialog.oe_act_window .ui-dialog-content {
- padding: 0px; }
- .openerp .modal-backdrop {
- position: fixed;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- z-index: 1040;
- background-color: black;
- filter: alpha(opacity=30);
- opacity: 0.3; }
- .openerp .oe_i {
- font-family: "mnmliconsRegular" !important;
- font-size: 21px;
- font-weight: 300 !important; }
- .openerp .oe_e {
- font-family: "entypoRegular" !important;
- font-size: 34px;
- font-weight: 300 !important; }
- .openerp .oe_left {
- float: left;
- margin-right: 8px; }
- .openerp .oe_right {
- float: right;
- margin-left: 8px; }
- .openerp .oe_text_right {
- text-align: right; }
- .openerp .oe_clear {
- clear: both; }
- .openerp .oe_wait {
- cursor: wait; }
- .openerp .oe_fade {
- color: #888888;
- font-weight: normal; }
- .openerp .oe_bold {
- font-weight: bold; }
- .openerp .oe_inline {
- width: auto !important; }
- .openerp .oe_highlight {
- color: white;
- background: #dc5f59; }
- .openerp button.oe_highlight {
- background-color: #df3f3f;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#df3f3f), to(#a21a1a));
- background-image: -webkit-linear-gradient(top, #df3f3f, #a21a1a);
- background-image: -moz-linear-gradient(top, #df3f3f, #a21a1a);
- background-image: -ms-linear-gradient(top, #df3f3f, #a21a1a);
- background-image: -o-linear-gradient(top, #df3f3f, #a21a1a);
- background-image: linear-gradient(to bottom, #df3f3f, #a21a1a);
- -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(155, 155, 155, 0.4) inset;
- -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(155, 155, 155, 0.4) inset;
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(155, 155, 155, 0.4) inset; }
- .openerp button.oe_highlight:hover {
- background-color: #e25858;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#e25858), to(#ab1b1b));
- background-image: -webkit-linear-gradient(top, #e25858, #ab1b1b);
- background-image: -moz-linear-gradient(top, #e25858, #ab1b1b);
- background-image: -ms-linear-gradient(top, #e25858, #ab1b1b);
- background-image: -o-linear-gradient(top, #e25858, #ab1b1b);
- background-image: linear-gradient(to bottom, #e25858, #ab1b1b); }
- .openerp button.oe_highlight:active {
- background-color: #c52020;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#c52020), to(#d22323));
- background-image: -webkit-linear-gradient(top, #c52020, #d22323);
- background-image: -moz-linear-gradient(top, #c52020, #d22323);
- background-image: -ms-linear-gradient(top, #c52020, #d22323);
- background-image: -o-linear-gradient(top, #c52020, #d22323);
- background-image: linear-gradient(to bottom, #c52020, #d22323); }
- .openerp .oe_background_grey {
- background: #eeeeee !important; }
- .openerp .oe_form_dirty .oe_highlight_on_dirty {
- color: white;
- background: #dc5f59;
- font-weight: bold; }
- .openerp .oe_form_dirty button.oe_highlight_on_dirty {
- background-color: #dc5f59;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#dc5f59), to(#b33630));
- background-image: -webkit-linear-gradient(top, #dc5f59, #b33630);
- background-image: -moz-linear-gradient(top, #dc5f59, #b33630);
- background-image: -ms-linear-gradient(top, #dc5f59, #b33630);
- background-image: -o-linear-gradient(top, #dc5f59, #b33630);
- background-image: linear-gradient(to bottom, #dc5f59, #b33630);
- -moz-box-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none; }
- .openerp .oe_form_dirty button.oe_highlight_on_dirty:hover {
- background: #ed6f6a; }
- .openerp .oe_title {
- width: 50%;
- float: left; }
- .openerp .oe_title:after {
- content: ".";
- display: block;
- height: 0;
- clear: both;
- visibility: hidden; }
- .openerp .oe_button_box {
- width: 270px;
- text-align: right; }
- .openerp .oe_button_box button {
- margin: 4px; }
- .openerp .oe_avatar > img {
- max-height: 90px;
- max-width: 90px;
- -moz-border-radius: 3px;
- -webkit-border-radius: 3px;
- border-radius: 3px;
- -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
- -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
- box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
- border: none;
- margin-bottom: 10px; }
- .openerp .oe_avatar + div {
- margin-left: 5px; }
- .openerp .oe_image_small > img {
- max-width: 50px;
- max-height: 50px; }
- .openerp .oe_image_medium > img {
- max-width: 180px;
- max-height: 180px; }
- .openerp .oe_button.oe_link {
- border: none;
- padding: 0;
- margin: 0;
- background: none;
- -moz-border-radius: 0;
- -webkit-border-radius: 0;
- border-radius: 0;
- -moz-box-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none; }
- .openerp .oe_button.oe_link img {
- display: none; }
- .openerp .oe_button.oe_link span {
- border: none;
- padding: 0;
- margin: 0;
- background: none;
- -moz-border-radius: 0;
- -webkit-border-radius: 0;
- border-radius: 0;
- -moz-box-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none;
- color: #7c7bad;
- font-weight: bold; }
- .openerp .oe_button.oe_link span:hover {
- text-decoration: underline; }
- .openerp .oe_webclient .oe_star_on, .openerp .oe_webclient .oe_star_off {
- color: #cccccc;
- text-shadow: 0 0 2px black;
- vertical-align: top;
- position: relative;
- top: -5px; }
- .openerp .oe_webclient .oe_star_on:hover, .openerp .oe_webclient .oe_star_off:hover {
- text-decoration: none; }
- .openerp .oe_webclient .oe_star_on {
- color: gold; }
- .openerp p.oe_grey {
- max-width: 650px; }
- .openerp .oe_grey {
- color: #aaaaaa; }
- .openerp .oe_tag {
- border: 1px solid #afafb6;
- font-size: 11px;
- padding: 2px 4px;
- margin: 0 2px 2px 0;
- -moz-border-radius: 3px;
- -webkit-border-radius: 3px;
- border-radius: 3px;
- background: #f0f0fa;
- color: #4c4c4c; }
- .openerp .oe_tag_dark {
- background: #7c7bad;
- color: #eeeeee; }
- .openerp .oe_tags {
- margin-bottom: 1px; }
- .openerp .oe_tags.oe_inline {
- min-width: 250px; }
- .openerp .oe_tags .text-wrap {
- width: 100% !important; }
- .openerp .oe_tags .text-wrap textarea {
- width: 100% !important; }
- .openerp .oe_tags .text-core .text-wrap .text-dropdown .text-list .text-suggestion em {
- font-style: italic;
- text-decoration: none; }
- .openerp.oe_tooltip {
- font-size: 12px; }
- .openerp.oe_tooltip .oe_tooltip_string {
- color: #ffdd55;
- font-weight: bold;
- font-size: 13px; }
- .openerp.oe_tooltip .oe_tooltip_help {
- white-space: pre-wrap; }
- .openerp.oe_tooltip .oe_tooltip_technical {
- padding: 0 0 4px 0;
- margin: 5px 0 0 15px; }
- .openerp.oe_tooltip .oe_tooltip_technical li {
- list-style: circle; }
- .openerp.oe_tooltip .oe_tooltip_technical_title {
- font-weight: bold; }
- .openerp.oe_tooltip .oe_tooltip_close {
- margin: -5px 0 0 2px;
- cursor: default;
- float: right;
- color: white; }
- .openerp.oe_tooltip .oe_tooltip_close:hover {
- color: #999999;
- cursor: pointer; }
- .openerp.oe_tooltip .oe_tooltip_message {
- max-width: 310px; }
- .openerp .oe_notebook {
- margin: 8px 0;
- padding: 0 16px;
- list-style: none;
- zoom: 1; }
- .openerp .oe_notebook.ui-corner-all {
- -moz-border-radius: 0;
- -webkit-border-radius: 0;
- border-radius: 0; }
- .openerp .oe_notebook:before, .openerp .oe_notebook:after {
- display: table;
- content: "";
- zoom: 1; }
- .openerp .oe_notebook:after {
- clear: both; }
- .openerp .oe_notebook > li {
- float: left; }
- .openerp .oe_notebook > li > a {
- display: block;
- color: #4c4c4c; }
- .openerp .oe_notebook {
- border-color: #dddddd;
- border-style: solid;
- border-width: 0 0 1px; }
- .openerp .oe_notebook > li {
- position: relative; }
- .openerp .oe_notebook > li > a {
- padding: 0 12px;
- margin-right: 2px;
- line-height: 30px;
- border: 1px solid transparent;
- -moz-border-radius: 4px 4px 0 0;
- -webkit-border-radius: 4px 4px 0 0;
- border-radius: 4px 4px 0 0; }
- .openerp .oe_notebook > li > a:hover {
- text-decoration: none;
- background-color: #eeeeee;
- border-color: #eeeeee #eeeeee #dddddd; }
- .openerp .oe_notebook > li.ui-state-active > a, .openerp .oe_notebook > li.ui-state-active > a:hover {
- background-color: white;
- border: 1px solid #dddddd;
- border-bottom-color: transparent;
- cursor: default; }
- .openerp .oe_notebook_page {
- padding: 0; }
- .openerp div.ui-tabs {
- padding: 3px 0px 3px 0px; }
- .openerp .ui-tabs-hide {
- display: none; }
- .openerp .oe_dropdown, .openerp .oe_dropdown_hover, .openerp .oe_dropdown_toggle {
- position: relative;
- cursor: pointer; }
- .openerp .oe_dropdown_toggle {
- color: rgba(0, 0, 0, 0.5);
- font-weight: normal; }
- .openerp .oe_dropdown_hover:hover .oe_dropdown_menu, .openerp .oe_dropdown_menu.oe_opened {
- display: block; }
- .openerp .oe_dropdown_menu {
- display: none;
- position: absolute;
- top: 26px;
- left: 0;
- z-index: 3;
- margin: 0;
- padding: 0;
- border: 1px solid #afafb6;
- background: white;
- padding: 4px 0;
- min-width: 140px;
- text-align: left;
- -moz-border-radius: 3px;
- -webkit-border-radius: 3px;
- border-radius: 3px;
- -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
- -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
- box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); }
- .openerp .oe_dropdown_menu > li {
- list-style-type: none;
- float: none;
- display: block;
- position: relative;
- margin: 0;
- padding: 2px 8px; }
- .openerp .oe_dropdown_menu > li:hover {
- background-color: #f0f0fa;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#f0f0fa), to(#eeeef6));
- background-image: -webkit-linear-gradient(top, #f0f0fa, #eeeef6);
- background-image: -moz-linear-gradient(top, #f0f0fa, #eeeef6);
- background-image: -ms-linear-gradient(top, #f0f0fa, #eeeef6);
- background-image: -o-linear-gradient(top, #f0f0fa, #eeeef6);
- background-image: linear-gradient(to bottom, #f0f0fa, #eeeef6);
- -moz-box-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none; }
- .openerp .oe_dropdown_menu > li > a {
- white-space: nowrap;
- display: block;
- color: #4c4c4c;
- text-decoration: none; }
- .openerp .oe_dropdown_menu > li > a:hover {
- text-decoration: none; }
- .openerp .oe_dropdown_arrow:after {
- width: 0;
- height: 0;
- display: inline-block;
- content: "&darr";
- text-indent: -99999px;
- vertical-align: top;
- margin-top: 8px;
- margin-left: 3px;
- border-left: 4px solid transparent;
- border-right: 4px solid transparent;
- border-top: 4px solid #404040;
- filter: alpha(opacity=50);
- opacity: 0.5; }
- .openerp .oe_sidebar {
- white-space: nowrap; }
- .openerp .oe_sidebar .oe_dropdown_menu .oe_sidebar_add_attachment {
- height: 20px;
- cursor: pointer;
- padding-left: 6px;
- margin-top: 6px; }
- .openerp .oe_sidebar .oe_dropdown_menu .oe_sidebar_add_attachment span {
- font-weight: bold; }
- .openerp .oe_sidebar .oe_dropdown_menu .oe_sidebar_add_attachment .oe_hidden_input_file {
- width: 200px; }
- .openerp .oe_sidebar .oe_dropdown_menu .oe_sidebar_add_attachment:hover {
- background-color: #f0f0fa;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#f0f0fa), to(#eeeef6));
- background-image: -webkit-linear-gradient(top, #f0f0fa, #eeeef6);
- background-image: -moz-linear-gradient(top, #f0f0fa, #eeeef6);
- background-image: -ms-linear-gradient(top, #f0f0fa, #eeeef6);
- background-image: -o-linear-gradient(top, #f0f0fa, #eeeef6);
- background-image: linear-gradient(to bottom, #f0f0fa, #eeeef6);
- -moz-box-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none; }
- .openerp .oe_sidebar .oe_dropdown_menu li .oe_sidebar_delete_item {
- position: absolute;
- top: 4px;
- right: 4px;
- display: none;
- width: 12px;
- height: 12px;
- padding: 1px;
- color: #8786b7;
- line-height: 8px;
- text-align: center;
- font-weight: bold;
- text-shadow: 0 1px 1px white; }
- .openerp .oe_sidebar .oe_dropdown_menu li .oe_sidebar_delete_item:hover {
- text-decoration: none;
- color: white;
- background: #8786b7;
- text-shadow: 0 1px 1px rgba(0, 0, 0, 0.4);
- -moz-border-radius: 2px;
- -webkit-border-radius: 2px;
- border-radius: 2px; }
- .openerp .oe_sidebar .oe_dropdown_menu li:hover .oe_sidebar_delete_item {
- display: inline-block; }
- .openerp .oe_loading {
- display: none;
- z-index: 100;
- position: fixed;
- top: 0;
- right: 50%;
- padding: 4px 12px;
- background: #a61300;
- color: white;
- text-align: center;
- border: 1px solid #990000;
- border-top: none;
- -moz-border-radius-bottomright: 8px;
- -moz-border-radius-bottomleft: 8px;
- border-bottom-right-radius: 8px;
- border-bottom-left-radius: 8px; }
- .openerp .oe_notification {
- z-index: 1050; }
- .openerp .oe_login {
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAKUlEQVQIHWO8e/fufwYsgAUkJigoiCIF5DMyoYggcUiXgNnBiGQKmAkARpcEQeriln4AAAAASUVORK5CYII=);
- text-align: center;
- font-size: 14px;
- height: 100%; }
- .openerp .oe_login ul, .openerp .oe_login li {
- margin: 0;
- list-style-type: none;
- padding: 0 0 4px 0; }
- .openerp .oe_login button {
- float: right;
- display: inline-block;
- cursor: pointer;
- padding: 6px 16px;
- border: 1px solid #222222;
- color: white;
- margin: 0;
- background-color: #b92020;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#b92020), to(#600606));
- background-image: -webkit-linear-gradient(top, #b92020, #600606);
- background-image: -moz-linear-gradient(top, #b92020, #600606);
- background-image: -ms-linear-gradient(top, #b92020, #600606);
- background-image: -o-linear-gradient(top, #b92020, #600606);
- background-image: linear-gradient(to bottom, #b92020, #600606);
- -moz-border-radius: 4px;
- -webkit-border-radius: 4px;
- border-radius: 4px;
- -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(155, 155, 155, 0.4) inset;
- -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(155, 155, 155, 0.4) inset;
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(155, 155, 155, 0.4) inset; }
- .openerp .oe_login input, .openerp .oe_login select {
- width: 252px;
- font-family: "Lucida Grande", Helvetica, Verdana, Arial;
- border: 1px solid #999999;
- background: whitesmoke;
- -moz-box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.4);
- -webkit-box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.4);
- box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.4);
- -moz-border-radius: 3px;
- -webkit-border-radius: 3px;
- border-radius: 3px; }
- .openerp .oe_login input {
- margin-bottom: 9px;
- padding: 5px 6px; }
- .openerp .oe_login select {
- padding: 1px; }
- .openerp .oe_login .oe_login_dbpane {
- position: fixed;
- top: 0;
- right: 8px;
- padding: 5px 10px;
- color: #eeeeee;
- border: solid 1px #333333;
- background: #1e1e1e;
- background: rgba(30, 30, 30, 0.94);
- -moz-border-radius: 0 0 8px 8px;
- -webkit-border-radius: 0 0 8px 8px;
- border-radius: 0 0 8px 8px; }
- .openerp .oe_login .oe_login_dbpane input {
- padding: 2px 4px;
- margin: 4px 0; }
- .openerp .oe_login .oe_login_bottom {
- position: absolute;
- top: 50%;
- left: 0;
- right: 0;
- bottom: 0;
- text-shadow: 0 1px 1px #999999;
- background-color: #b41616;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#b41616), to(#600606));
- background-image: -webkit-linear-gradient(top, #b41616, #600606);
- background-image: -moz-linear-gradient(top, #b41616, #600606);
- background-image: -ms-linear-gradient(top, #b41616, #600606);
- background-image: -o-linear-gradient(top, #b41616, #600606);
- background-image: linear-gradient(to bottom, #b41616, #600606); }
- .openerp .oe_login .oe_login_pane {
- position: absolute;
- top: 50%;
- left: 50%;
- margin: -160px -166px;
- border: solid 1px #333333;
- background: #1e1e1e;
- background: rgba(30, 30, 30, 0.94);
- padding: 22px 32px;
- color: #eeeeee;
- text-align: left;
- -moz-border-radius: 8px;
- -webkit-border-radius: 8px;
- border-radius: 8px;
- -moz-box-shadow: 0 0 18px rgba(0, 0, 0, 0.9);
- -webkit-box-shadow: 0 0 18px rgba(0, 0, 0, 0.9);
- box-shadow: 0 0 18px rgba(0, 0, 0, 0.9); }
- .openerp .oe_login .oe_login_pane h2 {
- margin-top: 0;
- font-size: 18px; }
- .openerp .oe_login .oe_login_logo {
- position: absolute;
- top: -70px;
- left: 0;
- width: 100%;
- margin: 0 auto;
- text-align: center; }
- .openerp .oe_login .oe_login_footer {
- position: absolute;
- bottom: -40px;
- left: 0;
- width: 100%;
- text-align: center; }
- .openerp .oe_login .oe_login_footer a {
- color: #eeeeee;
- margin: 0 8px; }
- .openerp .oe_login .oe_login_footer a:hover {
- text-decoration: underline; }
- .openerp .oe_login .oe_login_footer span {
- font-weight: bold;
- font-size: 16px; }
- .openerp .oe_login .oe_login_error_message {
- display: none;
- background-color: #b41616;
- color: #eeeeee;
- padding: 14px 18px;
- margin-top: 15px;
- text-align: center;
- -moz-border-radius: 4px;
- -webkit-border-radius: 4px;
- border-radius: 4px;
- -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.8);
- -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.8);
- box-shadow: 0 1px 4px rgba(0, 0, 0, 0.8); }
- .openerp .oe_login_invalid .oe_login_error_message {
- display: inline-block; }
- .openerp .oe_database_manager {
- background: white;
- color: black;
- text-align: left; }
- .openerp .oe_database_manager .oe_database_manager_menu {
- color: black; }
- .openerp .oe_webclient {
- width: 100%;
- height: 100%;
- border-spacing: 0px; }
- .openerp .oe_content_full_screen .oe_application {
- top: 0;
- left: 0; }
- .openerp .oe_content_full_screen .oe_topbar, .openerp .oe_content_full_screen .oe_leftbar {
- display: none; }
- .openerp .oe_topbar {
- width: 100%;
- height: 32px;
- background-color: #414141;
- background-color: #646060;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#646060), to(#262626));
- background-image: -webkit-linear-gradient(top, #646060, #262626);
- background-image: -moz-linear-gradient(top, #646060, #262626);
- background-image: -ms-linear-gradient(top, #646060, #262626);
- background-image: -o-linear-gradient(top, #646060, #262626);
- background-image: linear-gradient(to bottom, #646060, #262626); }
- .openerp .oe_topbar .oe_topbar_item {
- display: block;
- padding: 5px 10px 7px;
- line-height: 20px;
- height: 20px;
- text-decoration: none;
- color: #eeeeee;
- vertical-align: top;
- text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
- -webkit-transition: all 0.2s ease-out;
- -moz-transition: all 0.2s ease-out;
- -ms-transition: all 0.2s ease-out;
- -o-transition: all 0.2s ease-out;
- transition: all 0.2s ease-out; }
- .openerp .oe_topbar .oe_topbar_item:hover {
- background: rgba(0, 0, 0, 0.2);
- text-shadow: black 0px 0px 3px;
- color: white;
- -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset;
- -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset;
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset; }
- .openerp .oe_topbar .oe_topbar_avatar {
- width: 24px;
- height: 24px;
- margin: -2px 2px 0 0;
- -moz-border-radius: 3px;
- -webkit-border-radius: 3px;
- border-radius: 3px; }
- .openerp .oe_topbar .oe_topbar_avatar {
- vertical-align: top; }
- .openerp .oe_topbar .oe_dropdown_arrow:after {
- border-top: 4px solid white; }
- .openerp .oe_topbar .oe_dropdown_menu {
- top: 32px;
- background: #333333;
- background: rgba(37, 37, 37, 0.9);
- border-color: #999999;
- border-color: rgba(0, 0, 0, 0.2);
- border-style: solid;
- border-width: 0 1px 1px;
- -moz-border-radius: 0 0 6px 6px;
- -webkit-border-radius: 0 0 6px 6px;
- border-radius: 0 0 6px 6px;
- -webkit-background-clip: padding-box;
- -moz-background-clip: padding-box;
- background-clip: padding-box; }
- .openerp .oe_topbar .oe_dropdown_menu li {
- float: none;
- padding: 3px 12px; }
- .openerp .oe_topbar .oe_dropdown_menu li a {
- color: #eeeeee; }
- .openerp .oe_topbar .oe_dropdown_menu li:hover {
- background-color: #292929;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#292929), to(#191919));
- background-image: -webkit-linear-gradient(top, #292929, #191919);
- background-image: -moz-linear-gradient(top, #292929, #191919);
- background-image: -ms-linear-gradient(top, #292929, #191919);
- background-image: -o-linear-gradient(top, #292929, #191919);
- background-image: linear-gradient(to bottom, #292929, #191919);
- -moz-box-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none; }
- .openerp .oe_menu {
- float: left;
- padding: 0;
- margin: 0;
- font-size: 13px; }
- .openerp .oe_menu > li {
- list-style-type: none;
- padding: 0;
- margin: 0;
- float: left;
- display: block;
- color: #eeeeee; }
- .openerp .oe_menu > li > a {
- display: block;
- padding: 5px 10px 7px;
- line-height: 20px;
- height: 20px;
- text-decoration: none;
- color: #eeeeee;
- vertical-align: top;
- text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
- -webkit-transition: all 0.2s ease-out;
- -moz-transition: all 0.2s ease-out;
- -ms-transition: all 0.2s ease-out;
- -o-transition: all 0.2s ease-out;
- transition: all 0.2s ease-out; }
- .openerp .oe_menu > li > a:hover {
- background: rgba(0, 0, 0, 0.2);
- text-shadow: black 0px 0px 3px;
- color: white;
- -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset;
- -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset;
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset; }
- .openerp .oe_menu > li > .oe_active {
- background: rgba(0, 0, 0, 0.3);
- text-shadow: black 0px 0px 3px;
- -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset;
- -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset;
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset; }
- .openerp .oe_user_menu {
- float: right;
- padding: 0;
- margin: 0; }
- .openerp .oe_user_menu li {
- list-style-type: none;
- float: left; }
- .openerp .oe_user_menu .oe_dropdown_menu {
- right: -1px; }
- .openerp .oe_systray > div {
- float: left;
- padding: 0 4px 0 4px; }
- .openerp .oe_systray {
- float: right; }
- .openerp .oe_leftbar {
- display: none;
- width: 220px;
- background: #f0eeee;
- border-right: 1px solid #afafb6;
- text-shadow: 0 1px 1px white;
- padding-bottom: 16px; }
- .openerp a.oe_logo {
- width: 220px;
- display: block;
- text-align: center;
- height: 70px;
- line-height: 70px; }
- .openerp a.oe_logo img {
- height: 40px;
- width: 157px;
- margin: 14px 0; }
- .openerp .oe_footer {
- position: fixed;
- bottom: 0;
- padding: 4px 0;
- background: #f0eeee;
- width: 220px;
- text-align: center; }
- .openerp .oe_footer a {
- font-weight: 800;
- font-family: serif;
- font-size: 16px;
- color: black; }
- .openerp .oe_footer a span {
- color: #c81010;
- font-style: italic; }
- .openerp .oe_secondary_menu_section {
- font-weight: bold;
- margin-left: 8px;
- color: #7c7bad; }
- .openerp .oe_secondary_submenu {
- padding: 2px 0 8px 0;
- margin: 0;
- width: 100%;
- display: inline-block; }
- .openerp .oe_secondary_submenu li {
- position: relative;
- margin: 0;
- padding: 1px 0 1px 20px !important;
- list-style-type: none; }
- .openerp .oe_secondary_submenu li a {
- display: block;
- color: #4c4c4c;
- padding: 2px 4px 2px 0; }
- .openerp .oe_secondary_submenu li .oe_menu_label {
- position: absolute;
- top: 1px;
- right: 1px;
- font-size: 10px;
- background: #7c7bad;
- color: white;
- padding: 2px 4px;
- margin: 1px 6px 0 0;
- border: 1px solid lightGray;
- text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
- -moz-border-radius: 4px;
- -webkit-border-radius: 4px;
- border-radius: 4px;
- -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.2);
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.2);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.2); }
- .openerp .oe_secondary_submenu .oe_menu_counter {
- float: right;
- text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
- margin: 1px;
- padding: 1px 4px;
- border: none; }
- .openerp .oe_secondary_submenu .oe_menu_counter:hover {
- cursor: pointer;
- -webkit-transform: scale(1.1);
- -moz-transform: scale(1.1);
- -ms-transform: scale(1.1);
- -o-transform: scale(1.1);
- transform: scale(1.1); }
- .openerp .oe_secondary_submenu .oe_active {
- border-top: 1px solid lightGray;
- border-bottom: 1px solid #dedede;
- text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
- -moz-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.2), inset 0 -1px 3px rgba(40, 40, 40, 0.2);
- -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.2), inset 0 -1px 3px rgba(40, 40, 40, 0.2);
- box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.2), inset 0 -1px 3px rgba(40, 40, 40, 0.2);
- background: #7c7bad; }
- .openerp .oe_secondary_submenu .oe_active a {
- color: white; }
- .openerp .oe_secondary_submenu .oe_active .oe_menu_label {
- background: #eeeeee;
- color: #7c7bad;
- text-shadow: 0 1px 1px white;
- -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
- -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); }
- .openerp .oe_secondary_submenu .oe_active .oe_menu_counter {
- background: #eeeeee;
- color: #7c7bad;
- -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2);
- -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2);
- box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2); }
- .openerp .oe_secondary_submenu .oe_menu_toggler:before {
- width: 0;
- height: 0;
- display: inline-block;
- content: "&darr";
- text-indent: -99999px;
- vertical-align: top;
- margin-left: -12px;
- margin-top: 4px;
- margin-right: 4px;
- border-top: 4px solid transparent;
- border-bottom: 4px solid transparent;
- border-left: 4px solid #4c4c4c;
- filter: alpha(opacity=50);
- opacity: 0.5; }
- .openerp .oe_secondary_submenu .oe_menu_opened:before {
- margin-top: 6px;
- margin-left: -16px;
- margin-right: 4px;
- border-left: 4px solid transparent;
- border-right: 4px solid transparent;
- border-top: 4px solid #4c4c4c; }
- .openerp .oe_about {
- background-color: white;
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAKUlEQVQIHWO8e/fufwYsgAUkJigoiCIF5DMyoYggcUiXgNnBiGQKmAkARpcEQeriln4AAAAASUVORK5CYII=);
- -moz-border-radius: 0 0 2px 2px;
- -webkit-border-radius: 0 0 2px 2px;
- border-radius: 0 0 2px 2px; }
- .openerp .oe_about a {
- color: #7c7bad; }
- .openerp .oe_about a:hover {
- text-decoration: underline; }
- .openerp .oe_about a:focus {
- outline: none; }
- .openerp .oe_about .oe_logo {
- margin-left: -6px; }
- .openerp .oe_about .oe_bottom {
- position: absolute;
- top: 50%;
- left: 0;
- right: 0;
- bottom: 0;
- text-shadow: 0 1px 1px #999999;
- background-color: #b41616;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#b41616), to(#600606));
- background-image: -webkit-linear-gradient(top, #b41616, #600606);
- background-image: -moz-linear-gradient(top, #b41616, #600606);
- background-image: -ms-linear-gradient(top, #b41616, #600606);
- background-image: -o-linear-gradient(top, #b41616, #600606);
- background-image: linear-gradient(to bottom, #b41616, #600606);
- color: #eeeeee;
- padding: 0 16px;
- -moz-border-radius: 0 0 2px 2px;
- -webkit-border-radius: 0 0 2px 2px;
- border-radius: 0 0 2px 2px; }
- .openerp .oe_about .oe_bottom a {
- color: #eeeeee; }
- .openerp .oe_application {
- width: 100%; }
- .openerp .oe_application a {
- color: #7c7bad; }
- .openerp .oe_application a:hover {
- text-decoration: underline; }
- .openerp .oe_application > div {
- height: 100%; }
- .openerp .oe_application .oe_breadcrumb_item:not(:last-child) {
- display: inline-block;
- max-width: 7em;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis; }
- .openerp .oe_view_manager .oe_view_manager_body {
- height: inherit; }
- .openerp .oe_view_manager .oe_view_manager_view_kanban {
- height: inherit; }
- .openerp .oe_view_manager table.oe_view_manager_header {
- width: 100%;
- table-layout: fixed; }
- .openerp .oe_view_manager table.oe_view_manager_header .oe_header_row {
- clear: both;
- text-shadow: 0 1px 1px white; }
- .openerp .oe_view_manager table.oe_view_manager_header .oe_header_row:last-child td {
- padding-top: 0; }
- .openerp .oe_view_manager table.oe_view_manager_header .oe_header_row:first-child td {
- padding-top: 8px; }
- .openerp .oe_view_manager table.oe_view_manager_header .oe_view_manager_sidebar {
- margin: 0px auto;
- text-align: center; }
- .openerp .oe_view_manager table.oe_view_manager_header td {
- line-height: 26px; }
- .openerp .oe_view_manager table.oe_view_manager_header h2 {
- font-size: 18px;
- margin: 0;
- float: left; }
- .openerp .oe_view_manager table.oe_view_manager_header h2 a {
- color: #7c7bad; }
- .openerp .oe_view_manager table.oe_view_manager_header .oe_dropdown_menu {
- line-height: normal; }
- .openerp .oe_view_manager table.oe_view_manager_header .oe_button_group {
- display: inline-block;
- border: 1px solid #ababab;
- -moz-border-radius: 5px;
- -webkit-border-radius: 5px;
- border-radius: 5px; }
- .openerp .oe_view_manager table.oe_view_manager_header .oe_button_group li {
- float: left;
- border-right: 1px solid #ababab; }
- .openerp .oe_view_manager table.oe_view_manager_header .oe_button_group li:last-child {
- border: none; }
- .openerp .oe_view_manager table.oe_view_manager_header .oe_button_group a {
- color: #4c4c4c; }
- .openerp .oe_view_manager table.oe_view_manager_header .oe_button_group a:hover {
- text-decoration: none; }
- .openerp .oe_view_manager table.oe_view_manager_header .oe_button_group .active {
- background: #999999;
- -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset;
- -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset;
- box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset; }
- .openerp .oe_view_manager table.oe_view_manager_header .oe_button_group .active a {
- color: white;
- text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4); }
- .openerp .oe_view_manager table.oe_view_manager_header .oe_view_manager_buttons {
- white-space: nowrap; }
- .openerp .oe_view_manager .oe_view_manager_pager {
- line-height: 26px; }
- .openerp .oe_view_manager .oe_view_manager_pager .oe_list_pager_single_page .oe_pager_group {
- display: none; }
- .openerp .oe_view_manager .oe_pager_value {
- float: left;
- margin-right: 8px; }
- .openerp .oe_view_manager ul.oe_pager_group {
- padding: 0;
- margin: 0; }
- .openerp .oe_view_manager .oe_pager_group {
- float: left;
- height: 24px;
- line-height: 24px;
- display: inline-block;
- border: 1px solid #ababab;
- cursor: pointer;
- -moz-border-radius: 5px;
- -webkit-border-radius: 5px;
- border-radius: 5px; }
- .openerp .oe_view_manager .oe_pager_group li {
- height: 24px;
- line-height: 24px;
- padding: 0;
- margin: 0;
- list-style-type: none;
- float: left;
- border-right: 1px solid #ababab; }
- .openerp .oe_view_manager .oe_pager_group li:last-child {
- border: none; }
- .openerp .oe_view_manager .oe_pager_group a {
- color: #4c4c4c;
- padding: 0 8px; }
- .openerp .oe_view_manager .oe_pager_group a:hover {
- text-decoration: none; }
- .openerp .oe_view_manager .oe_pager_group .active {
- background: #999999;
- -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset;
- -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset;
- box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset; }
- .openerp .oe_view_manager .oe_pager_group .active a {
- color: white;
- text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4); }
- .openerp .oe_view_manager .oe_view_manager_switch {
- padding: 0;
- margin: 0 0 0 8px; }
- .openerp .oe_view_manager .oe_view_manager_switch li {
- margin: 0;
- width: 24px;
- height: 24px;
- line-height: 16px;
- padding: 0;
- text-align: center;
- list-style-type: none; }
- .openerp .oe_view_manager .oe_view_manager_switch li a {
- position: relative; }
- .openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_list:after, .openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_tree:after {
- padding: 2px;
- content: "i"; }
- .openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_form:after {
- content: "m"; }
- .openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_graph:after {
- font-family: "mnmliconsRegular" !important;
- font-size: 21px;
- font-weight: 300 !important;
- content: "}";
- top: -2px;
- position: relative; }
- .openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_gantt:after {
- font-family: "mnmliconsRegular" !important;
- font-size: 21px;
- font-weight: 300 !important;
- content: "y";
- top: -2px;
- position: relative; }
- .openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_calendar:after {
- content: "P"; }
- .openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_kanban:after {
- content: "k"; }
- .openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_diagram:after {
- content: "f"; }
- .openerp .oe_view_manager_current {
- height: 100%; }
- .openerp .oe_view_manager_current > .oe_view_manager_header {
- border-bottom: 1px solid #cacaca;
- background-color: #fcfcfc;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#fcfcfc), to(#dedede));
- background-image: -webkit-linear-gradient(top, #fcfcfc, #dedede);
- background-image: -moz-linear-gradient(top, #fcfcfc, #dedede);
- background-image: -ms-linear-gradient(top, #fcfcfc, #dedede);
- background-image: -o-linear-gradient(top, #fcfcfc, #dedede);
- background-image: linear-gradient(to bottom, #fcfcfc, #dedede);
- -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4), 0 0 9px rgba(0, 0, 0, 0.1);
- -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4), 0 0 9px rgba(0, 0, 0, 0.1);
- box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4), 0 0 9px rgba(0, 0, 0, 0.1); }
- .openerp .oe_view_manager_current > .oe_view_manager_header .oe_header_row td {
- padding: 8px; }
- .openerp .oe_view_manager_current > .oe_view_manager_header .oe_header_row:first-child td {
- padding-top: 8px; }
- .openerp .oe_view_manager_inline, .openerp .oe_view_manager_inlineview {
- height: 100%; }
- .openerp .oe_view_manager_inline > .oe_view_manager_header, .openerp .oe_view_manager_inlineview > .oe_view_manager_header {
- display: none; }
- .openerp .oe_popup_form > .oe_formview > .oe_form_pager {
- display: none !important; }
- .openerp .oe_searchview {
- cursor: text;
- position: relative;
- float: right;
- padding: 1px 0;
- line-height: 18px;
- width: 400px;
- border: 1px solid #ababab;
- background: white;
- -moz-border-radius: 13px;
- -webkit-border-radius: 13px;
- border-radius: 13px;
- -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) inset;
- -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) inset;
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) inset; }
- .openerp .oe_searchview input, .openerp .oe_searchview textarea {
- padding: 3px;
- height: 14px;
- font-size: 12px;
- line-height: 18px; }
- .openerp .oe_searchview.oe_focused {
- border-color: #a6a6fe;
- -moz-box-shadow: 0 1px 2px #a6a6fe inset;
- -webkit-box-shadow: 0 1px 2px #a6a6fe inset;
- box-shadow: 0 1px 2px #a6a6fe inset; }
- .openerp .oe_searchview .oe_searchview_clear {
- cursor: pointer;
- position: absolute;
- top: 0;
- right: 18px;
- width: 15px;
- height: 100%;
- background: url(../img/search_reset.gif) center center no-repeat; }
- .openerp .oe_searchview .oe_searchview_unfold_drawer {
- position: absolute;
- top: 0;
- right: 0;
- height: 100%;
- padding: 0 7px 0 4px;
- color: #cccccc;
- cursor: pointer; }
- .openerp .oe_searchview .oe_searchview_unfold_drawer:hover {
- color: #999999; }
- .openerp .oe_searchview .oe_searchview_unfold_drawer:before {
- position: absolute;
- top: 10px;
- right: 7px;
- width: 0;
- height: 0;
- display: inline-block;
- content: "";
- vertical-align: top;
- border-top: 5px solid #4c4c4c;
- border-left: 5px solid transparent;
- border-right: 5px solid transparent;
- filter: alpha(opacity=50);
- opacity: 0.5; }
- .openerp .oe_searchview .oe_searchview_search {
- font-size: 1px;
- letter-spacing: -1px;
- color: transparent;
- font-weight: normal;
- -moz-box-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none;
- -moz-border-radius: 0;
- -webkit-border-radius: 0;
- border-radius: 0;
- position: absolute;
- left: 3px;
- top: 1px;
- padding: 0;
- border: none;
- background: transparent; }
- .openerp .oe_searchview .oe_searchview_search:before {
- font: 21px "mnmliconsRegular";
- content: "r";
- color: #a3a3a3; }
- .openerp .oe_searchview .oe_searchview_facets {
- min-height: 22px;
- margin-left: 15px; }
- .openerp .oe_searchview .oe_searchview_facets * {
- vertical-align: top;
- display: inline-block;
- line-height: 17px; }
- .openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet {
- height: 18px;
- margin: 1px 0;
- font-size: 11px; }
- .openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet:focus {
- outline: none; }
- .openerp .oe_searchview .oe_searchview_facets .oe_searchview_input {
- padding: 0 0 0 6px;
- font-size: 12px;
- height: 16px;
- margin-top: 3px; }
- .openerp .oe_searchview .oe_searchview_facets .oe_searchview_input:focus {
- outline: none; }
- .openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet {
- position: relative;
- cursor: pointer;
- padding: 0;
- -webkit-font-smoothing: auto; }
- .openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet:focus {
- border-color: #a6a6fe;
- -moz-box-shadow: 0 0 3px 1px #a6a6fe;
- -webkit-box-shadow: 0 0 3px 1px #a6a6fe;
- box-shadow: 0 0 3px 1px #a6a6fe; }
- .openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_values {
- background: #f0f0fa;
- -moz-border-radius: 0 3px 3px 0;
- -webkit-border-radius: 0 3px 3px 0;
- border-radius: 0 3px 3px 0; }
- .openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_category, .openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_value {
- height: 18px;
- padding: 0 4px; }
- .openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_category {
- color: white;
- text-shadow: 0 1px 1px rgba(0, 0, 0, 0.4); }
- .openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_category.oe_i {
- font-size: 16px; }
- .openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_value {
- border-left: 1px solid #afafb6;
- text-shadow: 0 1px 1px white;
- color: #4c4c4c; }
- .openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_value:last-child {
- padding-right: 16px; }
- .openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_remove {
- position: absolute;
- top: 3px;
- right: 3px;
- color: #8786b7;
- line-height: 8px;
- width: 12px;
- height: 12px;
- padding-top: 1px;
- text-align: center;
- font-weight: bold;
- cursor: pointer;
- text-shadow: 0 1px 1px white; }
- .openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_remove:hover {
- color: white;
- background: #8786b7;
- text-shadow: 0 1px 1px rgba(0, 0, 0, 0.4);
- -moz-border-radius: 2px;
- -webkit-border-radius: 2px;
- border-radius: 2px; }
- .openerp .oe_searchview.oe_searchview_open_drawer .oe_searchview_drawer {
- display: block; }
- .openerp .oe_searchview .oe_searchview_drawer {
- position: absolute;
- z-index: 100;
- margin-top: 4px;
- top: 100%;
- right: -1px;
- background-color: white;
- min-width: 100%;
- display: none;
- border: 1px solid #afafb6;
- text-align: left;
- -moz-border-radius: 4px;
- -webkit-border-radius: 4px;
- border-radius: 4px;
- -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
- -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
- box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); }
- .openerp .oe_searchview .oe_searchview_drawer > div {
- border-top: 1px solid #cccccc;
- margin: 0;
- padding: 8px; }
- .openerp .oe_searchview .oe_searchview_drawer > div:first-child {
- border-top: none;
- margin: 0; }
- .openerp .oe_searchview .oe_searchview_drawer h3 {
- margin: 8px 4px 4px 12px;
- color: #7c7bad;
- font-size: 13px; }
- .openerp .oe_searchview .oe_searchview_drawer h4, .openerp .oe_searchview .oe_searchview_drawer h4 * {
- margin: 0;
- cursor: pointer;
- font-weight: normal;
- display: inline-block; }
- .openerp .oe_searchview .oe_searchview_drawer h4:hover, .openerp .oe_searchview .oe_searchview_drawer h4 *:hover {
- background-color: #f0f0fa; }
- .openerp .oe_searchview .oe_searchview_drawer h4:before {
- content: "▸ ";
- color: #a3a3a3; }
- .openerp .oe_searchview .oe_searchview_drawer button {
- margin: 4px 0; }
- .openerp .oe_searchview .oe_searchview_drawer .button {
- border: none;
- background: transparent;
- padding: 0 2px;
- -moz-box-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none;
- -moz-border-radius: 0;
- -webkit-border-radius: 0;
- border-radius: 0; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section {
- display: table;
- width: 100%; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section > div {
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- -ms-box-sizing: border-box;
- box-sizing: border-box;
- display: table-cell;
- width: 50%; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section ul {
- margin: 0 8px 8px;
- padding: 0;
- list-style: none; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section li {
- list-style: none;
- padding: 2px 4px 2px 20px;
- line-height: 14px;
- color: inherit;
- cursor: pointer;
- position: relative; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section li.oe_selected:before {
- content: "W";
- font-family: "entypoRegular" !important;
- font-size: 24px;
- font-weight: 300 !important;
- color: #a3a3a3;
- position: absolute;
- left: 4px;
- top: -2px; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section li:hover {
- background-color: #f0f0fa; }
- .openerp .oe_searchview .oe_searchview_drawer form {
- margin-left: 12px; }
- .openerp .oe_searchview .oe_searchview_drawer form p {
- margin: 4px 0;
- line-height: 18px; }
- .openerp .oe_searchview .oe_searchview_drawer form button {
- margin: 0 0 8px 0; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom {
- padding: 0 8px 8px 8px; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom form {
- display: none; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom li {
- cursor: pointer;
- position: relative;
- line-height: 14px;
- padding: 2px 4px 2px 20px; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom li:hover {
- background-color: #f0f0fa; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom li button {
- position: absolute;
- top: 0;
- right: 5px; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_dashboard form {
- display: none;
- margin-top: 2px; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced form {
- display: none;
- margin-top: 8px; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced button.oe_add_condition:before {
- content: "Z";
- font-family: "entypoRegular" !important;
- font-size: 24px;
- font-weight: 300 !important;
- margin-right: 4px; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced ul {
- list-style: none;
- padding: 0; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced li {
- position: relative;
- list-style: none;
- margin: 0;
- white-space: nowrap; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced li:first-child .searchview_extended_prop_or {
- visibility: hidden; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced .searchview_extended_prop_or {
- opacity: 0.5;
- margin-left: -14px; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_opened h4:before {
- content: "▾ ";
- position: relative;
- top: -1px; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_opened form {
- display: block; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_delete, .openerp .oe_searchview .oe_searchview_drawer .searchview_extended_delete_prop {
- display: inline-block;
- width: 12px;
- height: 12px;
- line-height: 12px;
- padding: 1px;
- color: #8786b7;
- line-height: 8px;
- text-align: center;
- font-weight: bold;
- text-shadow: 0 1px 1px white; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_delete:hover, .openerp .oe_searchview .oe_searchview_drawer .searchview_extended_delete_prop:hover {
- text-decoration: none;
- color: white;
- background: #8786b7;
- text-shadow: 0 1px 1px rgba(0, 0, 0, 0.4);
- -moz-border-radius: 2px;
- -webkit-border-radius: 2px;
- border-radius: 2px; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_delete {
- display: none;
- position: absolute;
- bottom: 1px;
- right: 4px; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_private:hover .oe_searchview_custom_delete, .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_public:hover .oe_searchview_custom_delete {
- display: inline-block; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_public:after {
- content: ",";
- font-family: "entypoRegular" !important;
- font-size: 22px;
- font-weight: 300 !important;
- margin: 0 0 0 4px;
- padding: 0; }
- .openerp .oe_view_nocontent {
- padding: 15px;
- margin-top: 0;
- color: #777777;
- font-size: 125%;
- max-width: 700px; }
- .openerp .oe_view_nocontent .oe_view_nocontent_create {
- background: transparent url(/web/static/src/img/view_empty_arrow.png) no-repeat 7px 0;
- margin-top: 0;
- padding-top: 35px;
- min-height: 28px;
- color: #4c4c4c; }
- .openerp .oe_view_nocontent > p {
- padding-left: 95px; }
- .openerp .oe_view_nocontent .oe_empty_custom_dashboard {
- background: transparent url(/web/static/src/img/graph_background.png) no-repeat 0 0;
- margin-top: -15px;
- padding: 100px 0 0 137px;
- min-height: 327px;
- margin-left: -15px; }
- .openerp .oe_formview {
- background: white; }
- .openerp .oe_form_dropdown_section {
- position: relative;
- display: inline-block; }
- .openerp .oe_form_invalid input, .openerp .oe_form_invalid select, .openerp .oe_form_invalid textarea {
- background-color: #ff6666 !important;
- border: 1px solid #dd0000 !important; }
- .openerp .oe_view_manager_current .oe_form_editable .oe_highlight {
- color: #404040;
- background: none; }
- .openerp .oe_view_manager_current .oe_form_editable button.oe_highlight {
- background-color: #efefef;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#efefef), to(#d8d8d8));
- background-image: -webkit-linear-gradient(top, #efefef, #d8d8d8);
- background-image: -moz-linear-gradient(top, #efefef, #d8d8d8);
- background-image: -ms-linear-gradient(top, #efefef, #d8d8d8);
- background-image: -o-linear-gradient(top, #efefef, #d8d8d8);
- background-image: linear-gradient(to bottom, #efefef, #d8d8d8);
- -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
- -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; }
- .openerp .oe_view_manager_current .oe_form_editable button.oe_highlight:active {
- background-color: #e3e3e3;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#e3e3e3), to(#f6f6f6));
- background-image: -webkit-linear-gradient(top, #e3e3e3, #f6f6f6);
- background-image: -moz-linear-gradient(top, #e3e3e3, #f6f6f6);
- background-image: -ms-linear-gradient(top, #e3e3e3, #f6f6f6);
- background-image: -o-linear-gradient(top, #e3e3e3, #f6f6f6);
- background-image: linear-gradient(to bottom, #e3e3e3, #f6f6f6);
- -moz-box-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none; }
- .openerp .oe_view_manager_current .oe_form_editable button.oe_highlight:hover {
- background-color: #f6f6f6;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#f6f6f6), to(#e3e3e3));
- background-image: -webkit-linear-gradient(top, #f6f6f6, #e3e3e3);
- background-image: -moz-linear-gradient(top, #f6f6f6, #e3e3e3);
- background-image: -ms-linear-gradient(top, #f6f6f6, #e3e3e3);
- background-image: -o-linear-gradient(top, #f6f6f6, #e3e3e3);
- background-image: linear-gradient(to bottom, #f6f6f6, #e3e3e3);
- -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
- -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; }
- .openerp .oe_form_invisible {
- display: none !important; }
- .openerp .oe_form_readonly .oe_edit_only, .openerp .oe_form_readonly .oe_form_field:empty {
- display: none !important; }
- .openerp .oe_form_readonly .oe_form .oe_form_field_date {
- width: auto; }
- .openerp .oe_form_nosheet {
- margin: 16px; }
- .openerp .oe_form_nosheet > header {
- margin: -16px -16px 0 -16px;
- padding: 0; }
- .openerp .oe_form_sheetbg {
- padding: 16px 0; }
- .openerp .oe_form_sheet_width {
- min-width: 650px;
- max-width: 860px;
- margin: 0 auto; }
- .openerp .oe_form_sheet {
- background: white;
- min-height: 330px;
- padding: 16px; }
- .openerp .oe_application .oe_form_sheetbg {
- background: url(/web/static/src/img/form_sheetbg.png);
- border-bottom: 1px solid #dddddd; }
- .openerp .oe_application .oe_form_sheet {
- border: 1px solid #c8c8d3;
- -moz-box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
- -webkit-box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
- box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15); }
- .openerp .oe_application .oe_form_sheet .ui-tabs {
- margin: 0 -16px; }
- .openerp .oe_application .oe_form_sheet .oe_notebook_page {
- padding: 0 16px; }
- .openerp .oe_form header {
- position: relative;
- border-bottom: 1px solid #cacaca;
- padding-left: 2px;
- background-color: #fcfcfc;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#fcfcfc), to(#dedede));
- background-image: -webkit-linear-gradient(top, #fcfcfc, #dedede);
- background-image: -moz-linear-gradient(top, #fcfcfc, #dedede);
- background-image: -ms-linear-gradient(top, #fcfcfc, #dedede);
- background-image: -o-linear-gradient(top, #fcfcfc, #dedede);
- background-image: linear-gradient(to bottom, #fcfcfc, #dedede); }
- .openerp .oe_form header > span {
- margin-left: 4px; }
- .openerp .oe_form header ul {
- display: inline-block;
- float: right; }
- .openerp .oe_form header .oe_button {
- margin: 3px 2px 1px; }
- .openerp .oe_form header .oe_button:first-child {
- margin-left: 6px; }
- .openerp .oe_form header .oe_tags {
- margin: 5px 0 0 5px;
- width: 400px;
- padding-bottom: 0; }
- .openerp .oe_form div.oe_chatter {
- min-width: 650px;
- max-width: 860px;
- margin: 0 auto;
- padding: 16px 0 48px; }
- .openerp .oe_form div.oe_form_configuration p, .openerp .oe_form div.oe_form_configuration ul, .openerp .oe_form div.oe_form_configuration ol {
- color: #aaaaaa;
- max-width: 650px; }
- .openerp .oe_form div.oe_form_configuration label {
- min-width: 150px; }
- .openerp .oe_form div.oe_form_configuration .oe_form_group_cell_label {
- padding: 1px 0; }
- .openerp .oe_form div.oe_form_configuration .oe_form_group_cell div div {
- padding: 1px 0; }
- .openerp .oe_form .oe_subtotal_footer {
- width: 1% !important; }
- .openerp .oe_form .oe_subtotal_footer td.oe_form_group_cell {
- text-align: right;
- padding: 0 !important; }
- .openerp .oe_form .oe_subtotal_footer td.oe_form_group_cell_label {
- border-right: none; }
- .openerp .oe_form .oe_subtotal_footer .oe_subtotal_footer_separator {
- width: 108px;
- border-top: 1px solid #cacaca;
- margin-top: 4px;
- padding-top: 4px;
- font-weight: bold;
- font-size: 18px; }
- .openerp .oe_form .oe_subtotal_footer label:after {
- content: ":"; }
- .openerp .oe_form .oe_subtotal_footer label.oe_subtotal_footer_separator {
- font-weight: bold !important;
- padding: 2px 11px 2px 0px !important; }
- .openerp .oe_form .oe_subtotal_footer label.oe_form_label_help {
- font-weight: normal; }
- .openerp .oe_form .oe_form_button {
- margin: 2px; }
- .openerp .oe_form td.oe_form_group_cell_label {
- border-right: 1px solid #dddddd;
- padding: 2px 0px; }
- .openerp .oe_form td.oe_form_group_cell_label label {
- line-height: 18px;
- display: block;
- min-width: 140px; }
- .openerp .oe_form td.oe_form_group_cell + .oe_form_group_cell {
- padding: 2px 0 2px 8px; }
- .openerp .oe_form .oe_form_group {
- width: 100%;
- margin: 9px 0 9px 0; }
- .openerp .oe_form .oe_form_group .oe_form_group_cell.oe_group_right {
- padding-left: 20px; }
- .openerp .oe_form .oe_form_label_help[for], .openerp .oe_form .oe_form_label[for] {
- font-weight: bold;
- white-space: nowrap;
- padding-right: 8px; }
- .openerp .oe_form .oe_form_label_help[for] span, .openerp .oe_form .oe_form_label[for] span {
- font-size: 80%;
- color: darkGreen;
- vertical-align: top;
- position: relative;
- top: -4px;
- padding: 0 2px; }
- .openerp .oe_horizontal_border {
- border-bottom: 1px solid black; }
- .openerp .oe_horizontal_separator {
- font-weight: bold;
- font-size: 20px;
- margin: 15px 0px 10px 0px;
- color: #7c7bad; }
- .openerp .oe_horizontal_separator:empty {
- height: 5px; }
- .openerp .oe_vertical_separator {
- border-left: 1px solid #666666;
- padding: 0 4px 0 4px; }
- .openerp .oe_form_field_progressbar {
- display: inline-block;
- min-width: 70px; }
- .openerp .oe_form_field_progressbar.ui-progressbar {
- height: 22px;
- font-size: 10px;
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- -ms-box-sizing: border-box;
- box-sizing: border-box;
- border: 1px solid #999999;
- -moz-border-radius: 3px;
- -webkit-border-radius: 3px;
- border-radius: 3px;
- background: white;
- min-width: 50px; }
- .openerp .oe_form_field_progressbar.ui-progressbar span {
- position: absolute;
- margin-left: 10px;
- font-weight: bold; }
- .openerp .oe_form_field_progressbar.ui-progressbar .ui-widget-header {
- background: #cccccc url(/web/static/lib/jquery.ui/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; }
- .openerp .oe_form .oe_form_field_text {
- width: 100%; }
- .openerp .oe_form .oe_form_field_char input,
- .openerp .oe_form .oe_form_field_url input,
- .openerp .oe_form .oe_form_field_email input,
- .openerp .oe_form .oe_form_field_text textarea,
- .openerp .oe_form .oe_form_field_selection select {
- width: 100%; }
- .openerp .oe_form .oe_form_field_text.oe_inline, .openerp .oe_form .oe_form_field_text.oe_inline > textarea {
- width: 500px; }
- .openerp .oe_form h1, .openerp .oe_form h2, .openerp .oe_form h3, .openerp .oe_form h4, .openerp .oe_form h5, .openerp .oe_form h6 {
- margin: 0 0 4px 0; }
- .openerp .oe_form h1 input, .openerp .oe_form h2 input, .openerp .oe_form h3 input, .openerp .oe_form h4 input, .openerp .oe_form h5 input, .openerp .oe_form h6 input {
- height: inherit !important;
- font-size: inherit; }
- .openerp .oe_form .oe_form_field {
- width: 100%;
- display: inline-block;
- padding: 2px 2px 2px 0px; }
- .openerp .oe_form .oe_form_field input {
- margin: 0px; }
- .openerp .oe_form input[type="text"], .openerp .oe_form input[type="password"], .openerp .oe_form input[type="file"], .openerp .oe_form select {
- height: 22px;
- padding-top: 2px; }
- .openerp .oe_form input[type="text"], .openerp .oe_form input[type="password"], .openerp .oe_form input[type="file"], .openerp .oe_form select, .openerp .oe_form textarea {
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- -ms-box-sizing: border-box;
- box-sizing: border-box;
- background: white;
- min-width: 60px;
- color: #1f1f1f; }
- .openerp .oe_form input[readonly], .openerp .oe_form select[readonly], .openerp .oe_form textarea[readonly], .openerp .oe_form input[disabled], .openerp .oe_form select[disabled] {
- background: #e5e5e5 !important;
- color: #666666; }
- .openerp .oe_form textarea[disabled] {
- border: none;
- padding-left: 8px;
- -moz-box-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none;
- -moz-border-radius: 0px;
- -webkit-border-radius: 0px;
- border-radius: 0px; }
- .openerp .oe_form textarea.oe_inline[disabled] {
- border-left: 8px solid #eeeeee; }
- .openerp .oe_form .oe_form_field_url button img {
- vertical-align: top; }
- .openerp .oe_form .oe_form_field_date,
- .openerp .oe_form .oe_form_field_datetime {
- white-space: nowrap; }
- .openerp .oe_form .oe_form_field_boolean {
- padding-top: 4px;
- width: auto; }
- .openerp .oe_form .oe_datepicker_container {
- display: none; }
- .openerp .oe_form .oe_datepicker_root {
- display: inline-block; }
- .openerp .oe_form .oe_form_required input:not([disabled]):not([readonly]), .openerp .oe_form .oe_form_required select:not([disabled]):not([readonly]), .openerp .oe_form .oe_form_required textarea:not([disabled]):not([readonly]) {
- background-color: #d2d2ff !important; }
- .openerp .oe_form .oe_form_invalid input, .openerp .oe_form .oe_form_invalid select, .openerp .oe_form .oe_form_invalid textarea {
- background-color: #ff6666 !important;
- border: 1px solid #dd0000 !important; }
- .openerp .oe_form .oe_input_icon {
- cursor: pointer;
- margin: 3px 0 0 -21px;
- vertical-align: top; }
- .openerp .oe_form .oe_input_icon_disabled {
- position: absolute;
- cursor: default;
- opacity: 0.5;
- filter: alpha(opacity=50);
- right: 5px;
- top: 3px; }
- .openerp .oe_form .oe_form_field_with_button.oe_no_button > .oe_button {
- display: none; }
- .openerp .oe_form .oe_form_field_with_button:not(.oe_no_button) > .oe_button {
- float: right;
- -moz-border-radius: 0;
- -webkit-border-radius: 0;
- border-radius: 0;
- border-bottom-left-radius: 0px;
- height: 22px; }
- .openerp .oe_form .oe_form_field_with_button input {
- width: 100%; }
- .openerp .oe_form .oe_form_field_with_button > div {
- position: relative;
- overflow: hidden; }
- .openerp .oe_form .oe_form_embedded_html {
- position: relative;
- width: 600px;
- margin-left: 130px;
- margin-top: 32px;
- margin-bottom: 32px;
- text-align: justify; }
- .openerp .oe_form_editable .oe_form .oe_form_field_integer input {
- width: 6em !important; }
- .openerp .oe_form_editable .oe_form .oe_form_field_float input {
- width: 7em !important; }
- .openerp .oe_form_editable .oe_form .oe_form_field_date input {
- width: 7.5em !important; }
- .openerp .oe_form_editable .oe_form .oe_form_field_datetime input {
- width: 11.5em !important; }
- .openerp .oe_hidden_input_file {
- position: relative; }
- .openerp .oe_hidden_input_file input.oe_form_binary_file {
- z-index: 0;
- line-height: 0;
- font-size: 12px;
- position: absolute;
- top: 1px;
- left: 0;
- right: 0;
- opacity: 0;
- filter: alpha(opacity=0);
- -ms-filter: "alpha(opacity=0)";
- margin: 0;
- padding: 0; }
- .openerp .oe_form .oe_form_field_image {
- padding: 0;
- position: relative;
- display: inline-block;
- width: auto;
- vertical-align: top; }
- .openerp .oe_form .oe_form_field_image .oe_form_field_image_controls {
- position: absolute;
- top: 1px;
- padding: 4px;
- width: 100%;
- display: none;
- text-align: center;
- color: #eeeeee;
- background: rgba(37, 37, 37, 0.9);
- -moz-border-radius: 3px 3px 0 0;
- -webkit-border-radius: 3px 3px 0 0;
- border-radius: 3px 3px 0 0;
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- -ms-box-sizing: border-box;
- box-sizing: border-box; }
- .openerp .oe_form .oe_form_field_image:hover .oe_form_field_image_controls {
- display: block; }
- .openerp .oe_form_field_many2one td:first-child {
- position: relative; }
- .openerp .oe_form_field_many2one span.oe_m2o_drop_down_button {
- position: absolute;
- top: 2px;
- right: 0px; }
- .openerp .oe_form_field_many2one .oe_m2o_cm_button {
- line-height: 14px;
- float: right;
- padding-left: 2px; }
- .openerp.ui-autocomplete li.oe_m2o_dropdown_option a {
- font-style: italic;
- padding-left: 2em; }
- .openerp.ui-autocomplete li:not(.oe_m2o_dropdown_option) + li.oe_m2o_dropdown_option {
- margin-top: 10px; }
- .openerp ul.oe_form_status, .openerp ul.oe_form_status_clickable {
- display: inline-block;
- margin: 0;
- padding: 0 18px 0 0; }
- .openerp ul.oe_form_status li, .openerp ul.oe_form_status_clickable li {
- display: inline-block;
- list-style-type: none;
- margin: 0 -18px 0 0;
- padding: 0;
- background-color: #fcfcfc;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#fcfcfc), to(#dedede));
- background-image: -webkit-linear-gradient(top, #fcfcfc, #dedede);
- background-image: -moz-linear-gradient(top, #fcfcfc, #dedede);
- background-image: -ms-linear-gradient(top, #fcfcfc, #dedede);
- background-image: -o-linear-gradient(top, #fcfcfc, #dedede);
- background-image: linear-gradient(to bottom, #fcfcfc, #dedede); }
- .openerp ul.oe_form_status li:first-child .label, .openerp ul.oe_form_status_clickable li:first-child .label {
- border-left: 1px solid #cacaca;
- padding-left: 14px; }
- .openerp ul.oe_form_status li:last-child, .openerp ul.oe_form_status_clickable li:last-child {
- border-right: 1px solid #cacaca; }
- .openerp ul.oe_form_status li:last-child .label, .openerp ul.oe_form_status_clickable li:last-child .label {
- padding-right: 14px; }
- .openerp ul.oe_form_status li:last-child .arrow, .openerp ul.oe_form_status_clickable li:last-child .arrow {
- display: none; }
- .openerp ul.oe_form_status li .label, .openerp ul.oe_form_status_clickable li .label {
- color: #4c4c4c;
- text-shadow: 0 1px 1px #fcfcfc, 0 -1px 1px #dedede;
- padding: 7px;
- display: inline-block;
- padding-left: 24px;
- margin: 0;
- position: relative; }
- .openerp ul.oe_form_status li .arrow, .openerp ul.oe_form_status_clickable li .arrow {
- width: 17px;
- display: inline-block;
- vertical-align: top;
- overflow: hidden;
- margin-left: -5px; }
- .openerp ul.oe_form_status li .arrow span, .openerp ul.oe_form_status_clickable li .arrow span {
- position: relative;
- width: 24px;
- height: 24px;
- display: inline-block;
- margin-left: -12px;
- margin-top: 3px;
- box-shadow: -1px 1px 2px rgba(255, 255, 255, 0.2), inset -1px 1px 1px rgba(0, 0, 0, 0.2);
- background-color: #dedede;
- background: -moz-linear-gradient(135deg, #dedede, #fcfcfc);
- background: -o-linear-gradient(135deg, #fcfcfc, #dedede);
- background: -webkit-gradient(linear, left top, right bottom, from(#fcfcfc), to(#dedede));
- -moz-border-radius: 3px;
- -webkit-border-radius: 3px;
- border-radius: 3px;
- -webkit-transform: rotate(45deg);
- -moz-transform: rotate(45deg);
- -ms-transform: rotate(45deg);
- -o-transform: rotate(45deg);
- transform: rotate(45deg); }
- .openerp ul.oe_form_status li.oe_active, .openerp ul.oe_form_status_clickable li.oe_active {
- background-color: #729fcf;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#729fcf), to(#3465a4));
- background-image: -webkit-linear-gradient(top, #729fcf, #3465a4);
- background-image: -moz-linear-gradient(top, #729fcf, #3465a4);
- background-image: -ms-linear-gradient(top, #729fcf, #3465a4);
- background-image: -o-linear-gradient(top, #729fcf, #3465a4);
- background-image: linear-gradient(to bottom, #729fcf, #3465a4); }
- .openerp ul.oe_form_status li.oe_active .arrow span, .openerp ul.oe_form_status_clickable li.oe_active .arrow span {
- background-color: #3465a4;
- background: -moz-linear-gradient(135deg, #3465a4, #729fcf);
- background: -o-linear-gradient(135deg, #729fcf, #3465a4);
- background: -webkit-gradient(linear, left top, right bottom, from(#729fcf), to(#3465a4)); }
- .openerp ul.oe_form_status li.oe_active .label, .openerp ul.oe_form_status_clickable li.oe_active .label {
- color: white;
- text-shadow: 0 1px 1px #729fcf, 0 -1px 1px #3465a4; }
- .openerp ul.oe_form_status_clickable li {
- cursor: pointer; }
- .openerp ul.oe_form_status_clickable li:hover {
- background-color: #e8e8e8;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#cacaca));
- background-image: -webkit-linear-gradient(top, #e8e8e8, #cacaca);
- background-image: -moz-linear-gradient(top, #e8e8e8, #cacaca);
- background-image: -ms-linear-gradient(top, #e8e8e8, #cacaca);
- background-image: -o-linear-gradient(top, #e8e8e8, #cacaca);
- background-image: linear-gradient(to bottom, #e8e8e8, #cacaca); }
- .openerp ul.oe_form_status_clickable li:hover .label {
- text-shadow: 0 -1px 1px #fcfcfc, 0 1px 1px #dedede; }
- .openerp ul.oe_form_status_clickable li:hover .arrow span {
- background-color: #e8e8e8;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#cacaca));
- background-image: -webkit-linear-gradient(top, #e8e8e8, #cacaca);
- background-image: -moz-linear-gradient(top, #e8e8e8, #cacaca);
- background-image: -ms-linear-gradient(top, #e8e8e8, #cacaca);
- background-image: -o-linear-gradient(top, #e8e8e8, #cacaca);
- background-image: linear-gradient(to bottom, #e8e8e8, #cacaca); }
- .openerp ul.oe_form_status_clickable li .label {
- color: #7c7bad; }
- .openerp ul.oe_form_status_clickable li.oe_active:hover {
- background-color: #4c85c2;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#4c85c2), to(#284d7d));
- background-image: -webkit-linear-gradient(top, #4c85c2, #284d7d);
- background-image: -moz-linear-gradient(top, #4c85c2, #284d7d);
- background-image: -ms-linear-gradient(top, #4c85c2, #284d7d);
- background-image: -o-linear-gradient(top, #4c85c2, #284d7d);
- background-image: linear-gradient(to bottom, #4c85c2, #284d7d); }
- .openerp ul.oe_form_status_clickable li.oe_active:hover .label {
- text-shadow: 0 -1px 1px #729fcf, 0 1px 1px #3465a4; }
- .openerp ul.oe_form_status_clickable li.oe_active:hover .arrow span {
- background-color: #284d7d;
- background: -moz-linear-gradient(135deg, #284d7d, #4c85c2);
- background: -o-linear-gradient(135deg, #4c85c2, #284d7d);
- background: -webkit-gradient(linear, left top, right bottom, from(#4c85c2), to(#284d7d)); }
- .openerp .oe_form .oe_form_field_one2many > .oe_view_manager .oe_list_pager_single_page {
- display: none; }
- .openerp .oe_form_field_one2many > .oe_view_manager .oe_list_pager_single_page, .openerp .oe_form_field_many2many > .oe_view_manager .oe_list_pager_single_page {
- display: none !important; }
- .openerp .oe_form_field_one2many .oe_form_field_one2many_list_row_add, .openerp .oe_form_field_many2many .oe_form_field_one2many_list_row_add {
- font-weight: bold; }
- .openerp .oe_form_field_one2many .oe_list_content > thead, .openerp .oe_form_field_many2many .oe_list_content > thead {
- border-bottom: 1px; }
- .openerp .oe_form_field_one2many .oe_list_content > tbody tr:nth-child(odd), .openerp .oe_form_field_many2many .oe_list_content > tbody tr:nth-child(odd) {
- background: transparent; }
- .openerp .oe_form_field_one2many .oe_list .oe_list_edit_row_save, .openerp .oe_form_field_many2many .oe_list .oe_list_edit_row_save {
- background: url(/web/static/src/img/iconset-b-remove.png) 50% 50% no-repeat; }
- .openerp .oe_form_field_one2many .oe_list .oe_list_edit_row_save:before, .openerp .oe_form_field_many2many .oe_list .oe_list_edit_row_save:before {
- visibility: hidden; }
- .openerp .oe_form_field_one2many > .oe_view_manager .oe_header_row_top, .openerp .oe_form_field_many2many > .oe_view_manager .oe_header_row_top {
- display: none; }
- .openerp .oe_form_field_one2many > .oe_view_manager .oe_view_manager_header2 td, .openerp .oe_form_field_many2many > .oe_view_manager .oe_view_manager_header2 td {
- padding: 0px 8px;
- line-height: 16px; }
- .openerp .oe_form_field_one2many > .oe_view_manager .oe_view_manager_header2 td .oe_i, .openerp .oe_form_field_many2many > .oe_view_manager .oe_view_manager_header2 td .oe_i {
- font-size: 13px; }
- .openerp .oe_form_field_one2many > .oe_view_manager .oe_view_manager_header2 td .oe_pager_group, .openerp .oe_form_field_many2many > .oe_view_manager .oe_view_manager_header2 td .oe_pager_group {
- height: auto;
- line-height: 16px; }
- .openerp .oe_form_field_one2many > .oe_view_manager .oe_view_manager_header2 td .oe_pager_group li, .openerp .oe_form_field_many2many > .oe_view_manager .oe_view_manager_header2 td .oe_pager_group li {
- height: auto;
- line-height: 16px; }
- .openerp .oe_form_field_one2many .oe_list_buttons.oe_editing .oe_list_save, .openerp .oe_form_field_many2many .oe_list_buttons.oe_editing .oe_list_save {
- visibility: hidden; }
- .openerp .oe_form_editable .oe_list_editable .oe_list_content td.oe_required {
- background-color: #d2d2ff; }
- .openerp .oe_form_editable .oe_list_editable .oe_list_content td.oe_readonly {
- background-color: #eeeeee; }
- .openerp .oe_list_editable .oe_list_content td.oe_list_field_cell {
- padding: 4px 6px 3px 6px; }
- .openerp .oe_list.oe_list_editable td.oe_list_record_delete {
- position: absolute; }
- .openerp .oe_list.oe_list_editable.oe_editing .oe_edition .oe_list_field_cell:not(.oe_readonly) {
- color: transparent; }
- .openerp .oe_list.oe_list_editable.oe_editing .oe_edition .oe_list_field_cell:not(.oe_readonly) * {
- visibility: hidden; }
- .openerp .oe_list.oe_list_editable.oe_editing .oe_m2o_drop_down_button {
- top: 5px; }
- .openerp .oe_list.oe_list_editable.oe_editing .oe_m2o_cm_button {
- display: none; }
- .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field input, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field textarea {
- height: 27px; }
- .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field input, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field textarea {
- -moz-border-radius: 0;
- -webkit-border-radius: 0;
- border-radius: 0;
- border: 1px solid #aaaaff;
- margin: 0; }
- .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_float input, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_view_integer input {
- text-align: right;
- width: 100% !important; }
- .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_datetime > span, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_date > span {
- width: 100% !important; }
- .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_datetime input.oe_datepicker_master, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_date input.oe_datepicker_master {
- width: 100% !important; }
- .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field .oe_form_field_float, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field .oe_form_view_integer, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_datetime, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_date {
- min-width: 0 !important;
- max-width: none !important; }
- .openerp .oe_list_group_name {
- white-space: nowrap; }
- .openerp .oe_form .oe_form_field_many2many > .oe_list .oe_list_pager_single_page {
- display: none; }
- .openerp .oe_list_buttons .oe_alternative {
- visibility: hidden; }
- .openerp .oe_list_buttons .oe_list_save, .openerp .oe_list_buttons .oe_list_discard {
- display: none; }
- .openerp .oe_list_buttons.oe_editing .oe_list_add {
- display: none; }
- .openerp .oe_list_buttons.oe_editing .oe_list_save {
- display: inline-block; }
- .openerp .oe_list_buttons.oe_editing .oe_list_discard {
- display: inline; }
- .openerp .oe_list_buttons.oe_editing .oe_alternative {
- visibility: visible; }
- .openerp .oe_list .oe_form .oe_form_nosheet {
- margin: 0;
- padding: 0;
- border: none; }
- .openerp .oe_list .oe_form .oe_form_field {
- width: auto;
- position: absolute;
- margin: 0 !important;
- padding: 0; }
- .openerp .oe_list .oe_list_content .oe_group_header {
- background-color: #fcfcfc;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#fcfcfc), to(#dedede));
- background-image: -webkit-linear-gradient(top, #fcfcfc, #dedede);
- background-image: -moz-linear-gradient(top, #fcfcfc, #dedede);
- background-image: -ms-linear-gradient(top, #fcfcfc, #dedede);
- background-image: -o-linear-gradient(top, #fcfcfc, #dedede);
- background-image: linear-gradient(to bottom, #fcfcfc, #dedede); }
- .openerp .oe_list_content {
- width: 100%; }
- .openerp .oe_list_content td:first-child:after, .openerp .oe_list_content th:first-child:after {
- border-width: 0; }
- .openerp .oe_list_content td.oe_number {
- text-align: right !important;
- max-width: 100px; }
- .openerp .oe_list_content > thead {
- border-bottom: 2px solid #cacaca;
- background: #eeeeee;
- vertical-align: top; }
- .openerp .oe_list_content td, .openerp .oe_list_content th {
- padding: 3px 6px;
- line-height: 18px; }
- .openerp .oe_list_content th.oe_sortable, .openerp .oe_list_content th.oe_sortable div {
- cursor: pointer; }
- .openerp .oe_list_content th.oe_sortable div {
- position: relative; }
- .openerp .oe_list_content th.oe_sortable div:after {
- position: absolute;
- right: 6px;
- content: "";
- margin-top: 7px;
- border-width: 0 4px 4px;
- border-style: solid;
- border-color: black transparent;
- visibility: hidden; }
- .openerp .oe_list_content th.sortup div:after {
- visibility: visible;
- filter: alpha(opacity=60);
- opacity: 0.6; }
- .openerp .oe_list_content th.sortdown div:after {
- border-bottom: none;
- border-left: 4px solid transparent;
- border-right: 4px solid transparent;
- border-top: 4px solid black;
- visibility: visible;
- -moz-box-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none;
- filter: alpha(opacity=60);
- opacity: 0.6; }
- .openerp .oe_list_content > tbody {
- cursor: pointer; }
- .openerp .oe_list_content > tbody > tr {
- height: 27px;
- border-top: 1px solid #dddddd; }
- .openerp .oe_list_content > tbody > tr > td.oe_list_field_cell {
- padding: 3px 6px;
- white-space: pre-line; }
- .openerp .oe_list_content > tbody > tr > td > button, .openerp .oe_list_content > tbody > tr > th > button {
- border: none;
- background: transparent;
- padding: 0;
- -moz-box-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none; }
- .openerp .oe_list_content > tbody > tr > td.oe_list_checkbox:first-child, .openerp .oe_list_content > tbody > tr th.oe_list_checkbox:first-child {
- width: 17px; }
- .openerp .oe_list_content > tbody > tr > td.oe_list_checkbox:first-child:after, .openerp .oe_list_content > tbody > tr th.oe_list_checkbox:first-child:after {
- border-width: 0; }
- .openerp .oe_list_content > tbody > tr:nth-child(odd) {
- background-color: #f0f0fa;
- background-color: #f0f0fa;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#f0f0fa), to(#eeeef6));
- background-image: -webkit-linear-gradient(top, #f0f0fa, #eeeef6);
- background-image: -moz-linear-gradient(top, #f0f0fa, #eeeef6);
- background-image: -ms-linear-gradient(top, #f0f0fa, #eeeef6);
- background-image: -o-linear-gradient(top, #f0f0fa, #eeeef6);
- background-image: linear-gradient(to bottom, #f0f0fa, #eeeef6); }
- .openerp .oe_list_content > tfoot {
- border-top: 2px solid #cacaca;
- border-bottom: 1px solid #cacaca;
- background: #eeeeee;
- font-weight: bold; }
- .openerp .oe_list_content .numeric {
- text-align: right;
- width: 82px; }
- .openerp .oe_list_content .numeric input {
- text-align: right; }
- .openerp .oe_list_content th.oe_list_header_handle {
- font-size: 1px;
- overflow: hidden;
- text-indent: -9001px; }
- .openerp .oe_list_content td.oe_list_field_handle {
- width: 1em;
- padding: 0 !important;
- cursor: ns-resize; }
- .openerp .oe_list_content td.oe_list_field_handle .oe_list_handle {
- font-size: 1px;
- letter-spacing: -1px;
- color: transparent;
- font-weight: normal;
- margin-right: 7px; }
- .openerp .oe_list_content td.oe_list_field_handle .oe_list_handle:before {
- font: 18px "entypoRegular";
- content: "}";
- color: #e0e0e0; }
- .openerp .oe_list_cannot_create .oe_view_nocontent_create {
- display: none; }
- .openerp .oe_list_cannot_edit .oe_list_header_handle, .openerp .oe_list_cannot_edit .oe_list_field_handle {
- display: none !important;
- padding: 0 !important; }
- .openerp .oe_list_cannot_delete .oe_list_record_delete {
- display: none !important; }
- .openerp .tree_header {
- background-color: #f0f0f0;
- border-bottom: 1px solid #cacaca;
- color: #4c4c4c;
- padding: 5px;
- height: 25px; }
- .openerp .tree_header button {
- float: right;
- height: 27px;
- margin-right: 5px; }
- .openerp .oe-treeview-table {
- width: 100%;
- background-color: white;
- border-spacing: 0;
- color: #4c4c4c; }
- .openerp .oe-treeview-table th {
- padding: 10px;
- font-weight: bold;
- background-color: #f0f0f0;
- border-bottom: 2px solid #cacaca; }
- .openerp .oe-treeview-table td {
- cursor: pointer;
- vertical-align: middle;
- text-align: left;
- vertical-align: middle;
- height: 20px;
- padding-left: 4px;
- padding-right: 4px;
- border-right: 1px solid #e7e7e7; }
- .openerp .oe-treeview-table td.oe_number {
- text-align: right !important; }
- .openerp .oe-treeview-table tr {
- border-bottom: 1px solid #d6d6d6; }
- .openerp .oe-treeview-table tr:hover {
- background-color: #e7e7e7; }
- .openerp .oe-treeview-table span {
- font-size: 90%;
- font-weight: normal;
- white-space: nowrap;
- display: block; }
- .openerp .oe-treeview-table .treeview-tr.oe-treeview-first {
- background: transparent url(/web/static/src/img/expand.gif) 0 50% no-repeat; }
- .openerp .oe-treeview-table .oe_open .treeview-tr.oe-treeview-first {
- background-image: url(/web/static/src/img/collapse.gif); }
- .openerp .oe-treeview-table .treeview-tr.oe-treeview-first span, .openerp .oe-treeview-table .treeview-td.oe-treeview-first span {
- margin-left: 16px; }
- .openerp .oe_layout_debugging .oe_form_group {
- outline: 2px dashed green; }
- .openerp .oe_layout_debugging .oe_form_group_cell {
- outline: 1px solid blue; }
- .openerp .oe_layout_debugging .oe_form_group:hover, .openerp .oe_layout_debugging .oe_form_group_cell:hover {
- outline-color: red; }
- .openerp .oe_layout_debugging .oe_form_group_row_incomplete > td:last-child:after {
- content: "[Incomplete Row]";
- background: red;
- padding: 2px;
- font-weight: bold;
- color: white;
- float: right; }
- .openerp .oe_layout_debugging .oe_form_group_row_incomplete.oe_form_group_row_newline > td:last-child:after {
- content: "[newline]"; }
- .openerp .oe_debug_view {
- float: left; }
- .openerp .oe_debug_view_log {
- font-size: 95%; }
- .openerp .oe_debug_view_log label {
- display: block;
- width: 49%;
- text-align: right;
- float: left;
- font-weight: bold;
- color: #000099; }
- .openerp .oe_debug_view_log span {
- display: block;
- width: 49%;
- float: right;
- color: #333333; }
+ */
+}
+.openerp :-moz-placeholder {
+ color: #afafb6 !important;
+ font-style: italic !important;
+}
+.openerp ::-webkit-input-placeholder {
+ color: #afafb6 !important;
+ font-style: italic !important;
+}
+.openerp a {
+ text-decoration: none;
+ cursor: pointer !important;
+}
+.openerp table {
+ padding: 0;
+ border-collapse: collapse;
+}
+.openerp thead {
+ font-weight: bold;
+ background-color: #f0f0f0;
+}
+.openerp thead th {
+ border-left: 1px solid #dfdfdf;
+}
+.openerp thead th:first-child {
+ border-left: none;
+}
+.openerp thead th.null {
+ border-left: none;
+}
+.openerp th, .openerp td {
+ padding: 0;
+ text-align: left;
+}
+.openerp th {
+ font-weight: bold;
+ vertical-align: middle;
+}
+.openerp td {
+ vertical-align: top;
+}
+.openerp .zebra tbody tr:nth-child(odd) td {
+ background-color: #f0f0fa;
+ background-color: #f0f0fa;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f0f0fa), to(#eeeef6));
+ background-image: -webkit-linear-gradient(top, #f0f0fa, #eeeef6);
+ background-image: -moz-linear-gradient(top, #f0f0fa, #eeeef6);
+ background-image: -ms-linear-gradient(top, #f0f0fa, #eeeef6);
+ background-image: -o-linear-gradient(top, #f0f0fa, #eeeef6);
+ background-image: linear-gradient(to bottom, #f0f0fa, #eeeef6);
+}
+.openerp .zebra tbody tr:hover td {
+ background-color: #eeeeee;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#eeeeee), to(#dedede));
+ background-image: -webkit-linear-gradient(top, #eeeeee, #dedede);
+ background-image: -moz-linear-gradient(top, #eeeeee, #dedede);
+ background-image: -ms-linear-gradient(top, #eeeeee, #dedede);
+ background-image: -o-linear-gradient(top, #eeeeee, #dedede);
+ background-image: linear-gradient(to bottom, #eeeeee, #dedede);
+}
+.openerp input, .openerp textarea, .openerp select {
+ padding: 2px 4px;
+ border: 1px solid #cccccc;
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+ background: white;
+}
+.openerp img {
+ vertical-align: middle;
+}
+.openerp h4 {
+ margin: 4px 0;
+}
+.openerp a.button:link, .openerp a.button:visited, .openerp button, .openerp input[type='submit'], .openerp .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button {
+ display: inline-block;
+ border: 1px solid rgba(0, 0, 0, 0.4);
+ color: #4c4c4c;
+ margin: 0;
+ padding: 3px 12px;
+ font-size: 13px;
+ text-align: center;
+ background-color: #efefef;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#efefef), to(#d8d8d8));
+ background-image: -webkit-linear-gradient(top, #efefef, #d8d8d8);
+ background-image: -moz-linear-gradient(top, #efefef, #d8d8d8);
+ background-image: -ms-linear-gradient(top, #efefef, #d8d8d8);
+ background-image: -o-linear-gradient(top, #efefef, #d8d8d8);
+ background-image: linear-gradient(to bottom, #efefef, #d8d8d8);
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+ -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
+ text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5);
+ -webkit-font-smoothing: antialiased;
+ outline: none;
+}
+.openerp a.button:hover, .openerp button:hover, .openerp input[type='submit']:hover, .openerp .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button.ui-state-hover {
+ background-color: #f6f6f6;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f6f6f6), to(#e3e3e3));
+ background-image: -webkit-linear-gradient(top, #f6f6f6, #e3e3e3);
+ background-image: -moz-linear-gradient(top, #f6f6f6, #e3e3e3);
+ background-image: -ms-linear-gradient(top, #f6f6f6, #e3e3e3);
+ background-image: -o-linear-gradient(top, #f6f6f6, #e3e3e3);
+ background-image: linear-gradient(to bottom, #f6f6f6, #e3e3e3);
+ cursor: pointer;
+ background-position: 0;
+}
+.openerp a.button:focus, .openerp button:focus, .openerp input[type='submit']:focus, .openerp .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button.ui-state-focus {
+ border: 1px solid #80bfff;
+ background-position: 0;
+ background-color: #f6f6f6;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f6f6f6), to(#e3e3e3));
+ background-image: -webkit-linear-gradient(top, #f6f6f6, #e3e3e3);
+ background-image: -moz-linear-gradient(top, #f6f6f6, #e3e3e3);
+ background-image: -ms-linear-gradient(top, #f6f6f6, #e3e3e3);
+ background-image: -o-linear-gradient(top, #f6f6f6, #e3e3e3);
+ background-image: linear-gradient(to bottom, #f6f6f6, #e3e3e3);
+ -moz-box-shadow: 0 0 3px #80bfff, 0 1px 1px rgba(255, 255, 255, 0.8) inset;
+ -webkit-box-shadow: 0 0 3px #80bfff, 0 1px 1px rgba(255, 255, 255, 0.8) inset;
+ box-shadow: 0 0 3px #80bfff, 0 1px 1px rgba(255, 255, 255, 0.8) inset;
+}
+.openerp a.button:active, .openerp a.button.active, .openerp button:active, .openerp button.active, .openerp input[type='submit']:active, .openerp input[type='submit'].active, .openerp .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button.ui-state-active {
+ background-color: #e3e3e3;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#e3e3e3), to(#f6f6f6));
+ background-image: -webkit-linear-gradient(top, #e3e3e3, #f6f6f6);
+ background-image: -moz-linear-gradient(top, #e3e3e3, #f6f6f6);
+ background-image: -ms-linear-gradient(top, #e3e3e3, #f6f6f6);
+ background-image: -o-linear-gradient(top, #e3e3e3, #f6f6f6);
+ background-image: linear-gradient(to bottom, #e3e3e3, #f6f6f6);
+ -moz-box-shadow: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+.openerp a.button.disabled, .openerp button:disabled, .openerp input[type='submit']:disabled {
+ background: #efefef !important;
+ border: 1px solid #d1d1d1 !important;
+ -moz-box-shadow: none !important;
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+ color: #aaaaaa !important;
+ cursor: default;
+ text-shadow: 0 1px 1px white !important;
+}
+.openerp .ui-widget-content a {
+ color: #7c7bad;
+}
+.openerp .oe_bounce_container {
+ display: inline-block;
+}
+.openerp .ui-tabs {
+ position: static;
+}
+.openerp.ui-dialog {
+ display: none;
+ padding: 6px;
+ background-color: rgba(60, 60, 60, 0.7);
+ border: 1px solid;
+ border-color: #888888 #555555 #444444;
+ -moz-border-radius: 8px;
+ -webkit-border-radius: 8px;
+ border-radius: 8px;
+ -moz-box-shadow: 0 1px 12px rgba(0, 0, 0, 0.6);
+ -webkit-box-shadow: 0 1px 12px rgba(0, 0, 0, 0.6);
+ box-shadow: 0 1px 12px rgba(0, 0, 0, 0.6);
+ -webkit-background-clip: padding-box;
+ -moz-background-clip: padding-box;
+ background-clip: padding-box;
+}
+.openerp.ui-dialog .ui-dialog-content {
+ padding: 0px;
+}
+.openerp.ui-dialog .ui-dialog-titlebar, .openerp.ui-dialog .ui-dialog-content, .openerp.ui-dialog .ui-dialog-buttonpane {
+ padding: 16px;
+}
+.openerp.ui-dialog .ui-dialog-titlebar {
+ border-bottom: 1px solid #cacaca;
+ -moz-border-radius: 2px 2px 0 0;
+ -webkit-border-radius: 2px 2px 0 0;
+ border-radius: 2px 2px 0 0;
+ background-color: #fcfcfc;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#fcfcfc), to(#dedede));
+ background-image: -webkit-linear-gradient(top, #fcfcfc, #dedede);
+ background-image: -moz-linear-gradient(top, #fcfcfc, #dedede);
+ background-image: -ms-linear-gradient(top, #fcfcfc, #dedede);
+ background-image: -o-linear-gradient(top, #fcfcfc, #dedede);
+ background-image: linear-gradient(to bottom, #fcfcfc, #dedede);
+}
+.openerp.ui-dialog .ui-dialog-titlebar .ui-dialog-title {
+ margin: 0;
+ padding: 0;
+}
+.openerp.ui-dialog .ui-widget-header {
+ border: none;
+}
+.openerp.ui-dialog .ui-dialog-content {
+ background: white;
+}
+.openerp.ui-dialog .ui-dialog-buttonpane {
+ border-top: 1px solid #e0e0e0;
+ background: #f5f7f9;
+ margin: 0;
+ -moz-border-radius: 0 0 2px 2px;
+ -webkit-border-radius: 0 0 2px 2px;
+ border-radius: 0 0 2px 2px;
+}
+.openerp.ui-dialog .ui-dialog-buttonpane button {
+ margin: 0 4px 0 0;
+}
+.openerp.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
+ float: left;
+}
+.openerp.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button {
+ margin-right: 4px;
+}
+.openerp.ui-dialog .ui-dialog-titlebar-close {
+ padding: 0;
+}
+.openerp.ui-dialog .ui-dialog-titlebar-close .ui-icon-closethick {
+ display: none;
+}
+.openerp.ui-dialog .ui-dialog-titlebar-close:before {
+ content: "×";
+ font-size: 18px;
+ font-weight: bold;
+ line-height: 16px;
+ color: black;
+ text-shadow: 0 1px 0 white;
+ padding: 0;
+ cursor: pointer;
+ background: transparent;
+ border: 0;
+}
+.openerp.ui-dialog .ui-dialog-titlebar-close:before:hover {
+ color: black;
+ text-decoration: none;
+}
+.openerp.ui-dialog .oe_about {
+ background-color: white;
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAKUlEQVQIHWO8e/fufwYsgAUkJigoiCIF5DMyoYggcUiXgNnBiGQKmAkARpcEQeriln4AAAAASUVORK5CYII=);
+ -moz-border-radius: 0 0 2px 2px;
+ -webkit-border-radius: 0 0 2px 2px;
+ border-radius: 0 0 2px 2px;
+}
+.openerp.ui-dialog .oe_about a {
+ color: #7c7bad;
+}
+.openerp.ui-dialog .oe_about a:hover {
+ text-decoration: underline;
+}
+.openerp.ui-dialog .oe_about a:focus {
+ outline: none;
+}
+.openerp.ui-dialog .oe_about .oe_logo {
+ margin-left: -6px;
+}
+.openerp.ui-dialog .oe_about .oe_bottom {
+ position: absolute;
+ top: 50%;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ text-shadow: 0 1px 1px #999999;
+ background-color: #b41616;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#b41616), to(#600606));
+ background-image: -webkit-linear-gradient(top, #b41616, #600606);
+ background-image: -moz-linear-gradient(top, #b41616, #600606);
+ background-image: -ms-linear-gradient(top, #b41616, #600606);
+ background-image: -o-linear-gradient(top, #b41616, #600606);
+ background-image: linear-gradient(to bottom, #b41616, #600606);
+ color: #eeeeee;
+ padding: 0 16px;
+ -moz-border-radius: 0 0 2px 2px;
+ -webkit-border-radius: 0 0 2px 2px;
+ border-radius: 0 0 2px 2px;
+}
+.openerp.ui-dialog .oe_about .oe_bottom a {
+ color: #eeeeee;
+}
+.openerp.ui-dialog.oe_act_window .ui-dialog-content {
+ padding: 0px;
+}
+.openerp .modal-backdrop {
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1040;
+ background-color: black;
+ filter: alpha(opacity=30);
+ opacity: 0.3;
+}
+.openerp .oe_i {
+ font-family: "mnmliconsRegular" !important;
+ font-size: 21px;
+ font-weight: 300 !important;
+}
+.openerp .oe_e {
+ font-family: "entypoRegular" !important;
+ font-size: 34px;
+ font-weight: 300 !important;
+}
+.openerp .oe_left {
+ float: left;
+ margin-right: 8px;
+}
+.openerp .oe_right {
+ float: right;
+ margin-left: 8px;
+}
+.openerp .oe_text_right {
+ text-align: right;
+}
+.openerp .oe_clear {
+ clear: both;
+}
+.openerp .oe_wait {
+ cursor: wait;
+}
+.openerp .oe_fade {
+ color: #888888;
+ font-weight: normal;
+}
+.openerp .oe_bold {
+ font-weight: bold;
+}
+.openerp .oe_inline {
+ width: auto !important;
+}
+.openerp .oe_highlight {
+ color: white;
+ background: #dc5f59;
+}
+.openerp button.oe_highlight {
+ background-color: #df3f3f;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#df3f3f), to(#a21a1a));
+ background-image: -webkit-linear-gradient(top, #df3f3f, #a21a1a);
+ background-image: -moz-linear-gradient(top, #df3f3f, #a21a1a);
+ background-image: -ms-linear-gradient(top, #df3f3f, #a21a1a);
+ background-image: -o-linear-gradient(top, #df3f3f, #a21a1a);
+ background-image: linear-gradient(to bottom, #df3f3f, #a21a1a);
+ -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(155, 155, 155, 0.4) inset;
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(155, 155, 155, 0.4) inset;
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(155, 155, 155, 0.4) inset;
+}
+.openerp button.oe_highlight:hover {
+ background-color: #e25858;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#e25858), to(#ab1b1b));
+ background-image: -webkit-linear-gradient(top, #e25858, #ab1b1b);
+ background-image: -moz-linear-gradient(top, #e25858, #ab1b1b);
+ background-image: -ms-linear-gradient(top, #e25858, #ab1b1b);
+ background-image: -o-linear-gradient(top, #e25858, #ab1b1b);
+ background-image: linear-gradient(to bottom, #e25858, #ab1b1b);
+}
+.openerp button.oe_highlight:active {
+ background-color: #c52020;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#c52020), to(#d22323));
+ background-image: -webkit-linear-gradient(top, #c52020, #d22323);
+ background-image: -moz-linear-gradient(top, #c52020, #d22323);
+ background-image: -ms-linear-gradient(top, #c52020, #d22323);
+ background-image: -o-linear-gradient(top, #c52020, #d22323);
+ background-image: linear-gradient(to bottom, #c52020, #d22323);
+}
+.openerp .oe_background_grey {
+ background: #eeeeee !important;
+}
+.openerp .oe_form_dirty .oe_highlight_on_dirty {
+ color: white;
+ background: #dc5f59;
+ font-weight: bold;
+}
+.openerp .oe_form_dirty button.oe_highlight_on_dirty {
+ background-color: #dc5f59;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#dc5f59), to(#b33630));
+ background-image: -webkit-linear-gradient(top, #dc5f59, #b33630);
+ background-image: -moz-linear-gradient(top, #dc5f59, #b33630);
+ background-image: -ms-linear-gradient(top, #dc5f59, #b33630);
+ background-image: -o-linear-gradient(top, #dc5f59, #b33630);
+ background-image: linear-gradient(to bottom, #dc5f59, #b33630);
+ -moz-box-shadow: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+.openerp .oe_form_dirty button.oe_highlight_on_dirty:hover {
+ background: #ed6f6a;
+}
+.openerp .oe_title {
+ width: 50%;
+ float: left;
+}
+.openerp .oe_title:after {
+ content: ".";
+ display: block;
+ height: 0;
+ clear: both;
+ visibility: hidden;
+}
+.openerp .oe_button_box {
+ width: 270px;
+ text-align: right;
+}
+.openerp .oe_button_box button {
+ margin: 4px;
+}
+.openerp .oe_avatar > img {
+ max-height: 90px;
+ max-width: 90px;
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+ -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
+ -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
+ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
+ border: none;
+ margin-bottom: 10px;
+}
+.openerp .oe_avatar + div {
+ margin-left: 5px;
+}
+.openerp .oe_image_small > img {
+ max-width: 50px;
+ max-height: 50px;
+}
+.openerp .oe_image_medium > img {
+ max-width: 180px;
+ max-height: 180px;
+}
+.openerp .oe_button.oe_link {
+ border: none;
+ padding: 0;
+ margin: 0;
+ background: none;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ border-radius: 0;
+ -moz-box-shadow: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+.openerp .oe_button.oe_link img {
+ display: none;
+}
+.openerp .oe_button.oe_link span {
+ border: none;
+ padding: 0;
+ margin: 0;
+ background: none;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ border-radius: 0;
+ -moz-box-shadow: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ color: #7c7bad;
+ font-weight: bold;
+}
+.openerp .oe_button.oe_link span:hover {
+ text-decoration: underline;
+}
+.openerp .oe_webclient .oe_star_on, .openerp .oe_webclient .oe_star_off {
+ color: #cccccc;
+ text-shadow: 0 0 2px black;
+ vertical-align: top;
+ position: relative;
+ top: -5px;
+}
+.openerp .oe_webclient .oe_star_on:hover, .openerp .oe_webclient .oe_star_off:hover {
+ text-decoration: none;
+}
+.openerp .oe_webclient .oe_star_on {
+ color: gold;
+}
+.openerp p.oe_grey {
+ max-width: 650px;
+}
+.openerp .oe_grey {
+ color: #aaaaaa;
+}
+.openerp .oe_tag {
+ border: 1px solid #afafb6;
+ font-size: 11px;
+ padding: 2px 4px;
+ margin: 0 2px 2px 0;
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+ background: #f0f0fa;
+ color: #4c4c4c;
+}
+.openerp .oe_tag_dark {
+ background: #7c7bad;
+ color: #eeeeee;
+}
+.openerp .oe_tags {
+ margin-bottom: 1px;
+}
+.openerp .oe_tags.oe_inline {
+ min-width: 250px;
+}
+.openerp .oe_tags .text-wrap {
+ width: 100% !important;
+}
+.openerp .oe_tags .text-wrap textarea {
+ width: 100% !important;
+}
+.openerp .oe_tags .text-core .text-wrap .text-dropdown .text-list .text-suggestion em {
+ font-style: italic;
+ text-decoration: none;
+}
+.openerp.oe_tooltip {
+ font-size: 12px;
+}
+.openerp.oe_tooltip .oe_tooltip_string {
+ color: #ffdd55;
+ font-weight: bold;
+ font-size: 13px;
+}
+.openerp.oe_tooltip .oe_tooltip_help {
+ white-space: pre-wrap;
+}
+.openerp.oe_tooltip .oe_tooltip_technical {
+ padding: 0 0 4px 0;
+ margin: 5px 0 0 15px;
+}
+.openerp.oe_tooltip .oe_tooltip_technical li {
+ list-style: circle;
+}
+.openerp.oe_tooltip .oe_tooltip_technical_title {
+ font-weight: bold;
+}
+.openerp.oe_tooltip .oe_tooltip_close {
+ margin: -5px 0 0 2px;
+ cursor: default;
+ float: right;
+ color: white;
+}
+.openerp.oe_tooltip .oe_tooltip_close:hover {
+ color: #999999;
+ cursor: pointer;
+}
+.openerp.oe_tooltip .oe_tooltip_message {
+ max-width: 310px;
+}
+.openerp .oe_notebook {
+ margin: 8px 0;
+ padding: 0 16px;
+ list-style: none;
+ zoom: 1;
+}
+.openerp .oe_notebook.ui-corner-all {
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ border-radius: 0;
+}
+.openerp .oe_notebook:before, .openerp .oe_notebook:after {
+ display: table;
+ content: "";
+ zoom: 1;
+}
+.openerp .oe_notebook:after {
+ clear: both;
+}
+.openerp .oe_notebook > li {
+ float: left;
+}
+.openerp .oe_notebook > li > a {
+ display: block;
+ color: #4c4c4c;
+}
+.openerp .oe_notebook {
+ border-color: #dddddd;
+ border-style: solid;
+ border-width: 0 0 1px;
+}
+.openerp .oe_notebook > li {
+ position: relative;
+}
+.openerp .oe_notebook > li > a {
+ padding: 0 12px;
+ margin-right: 2px;
+ line-height: 30px;
+ border: 1px solid transparent;
+ -moz-border-radius: 4px 4px 0 0;
+ -webkit-border-radius: 4px 4px 0 0;
+ border-radius: 4px 4px 0 0;
+}
+.openerp .oe_notebook > li > a:hover {
+ text-decoration: none;
+ background-color: #eeeeee;
+ border-color: #eeeeee #eeeeee #dddddd;
+}
+.openerp .oe_notebook > li.ui-state-active > a, .openerp .oe_notebook > li.ui-state-active > a:hover {
+ background-color: white;
+ border: 1px solid #dddddd;
+ border-bottom-color: transparent;
+ cursor: default;
+}
+.openerp .oe_notebook_page {
+ padding: 0;
+}
+.openerp div.ui-tabs {
+ padding: 3px 0px 3px 0px;
+}
+.openerp .ui-tabs-hide {
+ display: none;
+}
+.openerp .oe_dropdown, .openerp .oe_dropdown_hover, .openerp .oe_dropdown_toggle {
+ position: relative;
+ cursor: pointer;
+}
+.openerp .oe_dropdown_toggle {
+ color: rgba(0, 0, 0, 0.5);
+ font-weight: normal;
+}
+.openerp .oe_dropdown_hover:hover .oe_dropdown_menu, .openerp .oe_dropdown_menu.oe_opened {
+ display: block;
+}
+.openerp .oe_dropdown_menu {
+ display: none;
+ position: absolute;
+ top: 26px;
+ left: 0;
+ z-index: 3;
+ margin: 0;
+ padding: 0;
+ border: 1px solid #afafb6;
+ background: white;
+ padding: 4px 0;
+ min-width: 140px;
+ text-align: left;
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+ -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
+ -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
+ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
+}
+.openerp .oe_dropdown_menu > li {
+ list-style-type: none;
+ float: none;
+ display: block;
+ position: relative;
+ margin: 0;
+ padding: 2px 8px;
+}
+.openerp .oe_dropdown_menu > li:hover {
+ background-color: #f0f0fa;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f0f0fa), to(#eeeef6));
+ background-image: -webkit-linear-gradient(top, #f0f0fa, #eeeef6);
+ background-image: -moz-linear-gradient(top, #f0f0fa, #eeeef6);
+ background-image: -ms-linear-gradient(top, #f0f0fa, #eeeef6);
+ background-image: -o-linear-gradient(top, #f0f0fa, #eeeef6);
+ background-image: linear-gradient(to bottom, #f0f0fa, #eeeef6);
+ -moz-box-shadow: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+.openerp .oe_dropdown_menu > li > a {
+ white-space: nowrap;
+ display: block;
+ color: #4c4c4c;
+ text-decoration: none;
+}
+.openerp .oe_dropdown_menu > li > a:hover {
+ text-decoration: none;
+}
+.openerp .oe_dropdown_arrow:after {
+ width: 0;
+ height: 0;
+ display: inline-block;
+ content: "&darr";
+ text-indent: -99999px;
+ vertical-align: top;
+ margin-top: 8px;
+ margin-left: 3px;
+ border-left: 4px solid transparent;
+ border-right: 4px solid transparent;
+ border-top: 4px solid #404040;
+ filter: alpha(opacity=50);
+ opacity: 0.5;
+}
+.openerp .oe_sidebar {
+ white-space: nowrap;
+}
+.openerp .oe_sidebar .oe_dropdown_menu .oe_sidebar_add_attachment {
+ height: 20px;
+ cursor: pointer;
+ padding-left: 6px;
+ margin-top: 6px;
+}
+.openerp .oe_sidebar .oe_dropdown_menu .oe_sidebar_add_attachment span {
+ font-weight: bold;
+}
+.openerp .oe_sidebar .oe_dropdown_menu .oe_sidebar_add_attachment .oe_hidden_input_file {
+ width: 200px;
+}
+.openerp .oe_sidebar .oe_dropdown_menu .oe_sidebar_add_attachment:hover {
+ background-color: #f0f0fa;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f0f0fa), to(#eeeef6));
+ background-image: -webkit-linear-gradient(top, #f0f0fa, #eeeef6);
+ background-image: -moz-linear-gradient(top, #f0f0fa, #eeeef6);
+ background-image: -ms-linear-gradient(top, #f0f0fa, #eeeef6);
+ background-image: -o-linear-gradient(top, #f0f0fa, #eeeef6);
+ background-image: linear-gradient(to bottom, #f0f0fa, #eeeef6);
+ -moz-box-shadow: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+.openerp .oe_sidebar .oe_dropdown_menu li .oe_sidebar_delete_item {
+ position: absolute;
+ top: 4px;
+ right: 4px;
+ display: none;
+ width: 12px;
+ height: 12px;
+ padding: 1px;
+ color: #8786b7;
+ line-height: 8px;
+ text-align: center;
+ font-weight: bold;
+ text-shadow: 0 1px 1px white;
+}
+.openerp .oe_sidebar .oe_dropdown_menu li .oe_sidebar_delete_item:hover {
+ text-decoration: none;
+ color: white;
+ background: #8786b7;
+ text-shadow: 0 1px 1px rgba(0, 0, 0, 0.4);
+ -moz-border-radius: 2px;
+ -webkit-border-radius: 2px;
+ border-radius: 2px;
+}
+.openerp .oe_sidebar .oe_dropdown_menu li:hover .oe_sidebar_delete_item {
+ display: inline-block;
+}
+.openerp .oe_loading {
+ display: none;
+ z-index: 100;
+ position: fixed;
+ top: 0;
+ right: 50%;
+ padding: 4px 12px;
+ background: #a61300;
+ color: white;
+ text-align: center;
+ border: 1px solid #990000;
+ border-top: none;
+ -moz-border-radius-bottomright: 8px;
+ -moz-border-radius-bottomleft: 8px;
+ border-bottom-right-radius: 8px;
+ border-bottom-left-radius: 8px;
+}
+.openerp .oe_notification {
+ z-index: 1050;
+}
+.openerp .oe_login {
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAKUlEQVQIHWO8e/fufwYsgAUkJigoiCIF5DMyoYggcUiXgNnBiGQKmAkARpcEQeriln4AAAAASUVORK5CYII=);
+ text-align: center;
+ font-size: 14px;
+ height: 100%;
+}
+.openerp .oe_login ul, .openerp .oe_login li {
+ margin: 0;
+ list-style-type: none;
+ padding: 0 0 4px 0;
+}
+.openerp .oe_login button {
+ float: right;
+ display: inline-block;
+ cursor: pointer;
+ padding: 6px 16px;
+ border: 1px solid #222222;
+ color: white;
+ margin: 0;
+ background-color: #b92020;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#b92020), to(#600606));
+ background-image: -webkit-linear-gradient(top, #b92020, #600606);
+ background-image: -moz-linear-gradient(top, #b92020, #600606);
+ background-image: -ms-linear-gradient(top, #b92020, #600606);
+ background-image: -o-linear-gradient(top, #b92020, #600606);
+ background-image: linear-gradient(to bottom, #b92020, #600606);
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ border-radius: 4px;
+ -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(155, 155, 155, 0.4) inset;
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(155, 155, 155, 0.4) inset;
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(155, 155, 155, 0.4) inset;
+}
+.openerp .oe_login input, .openerp .oe_login select {
+ width: 252px;
+ font-family: "Lucida Grande", Helvetica, Verdana, Arial;
+ border: 1px solid #999999;
+ background: whitesmoke;
+ -moz-box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.4);
+ -webkit-box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.4);
+ box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.4);
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+}
+.openerp .oe_login input {
+ margin-bottom: 9px;
+ padding: 5px 6px;
+}
+.openerp .oe_login select {
+ padding: 1px;
+}
+.openerp .oe_login .oe_login_dbpane {
+ position: fixed;
+ top: 0;
+ right: 8px;
+ padding: 5px 10px;
+ color: #eeeeee;
+ border: solid 1px #333333;
+ background: #1e1e1e;
+ background: rgba(30, 30, 30, 0.94);
+ -moz-border-radius: 0 0 8px 8px;
+ -webkit-border-radius: 0 0 8px 8px;
+ border-radius: 0 0 8px 8px;
+}
+.openerp .oe_login .oe_login_dbpane input {
+ padding: 2px 4px;
+ margin: 4px 0;
+}
+.openerp .oe_login .oe_login_bottom {
+ position: absolute;
+ top: 50%;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ text-shadow: 0 1px 1px #999999;
+ background-color: #b41616;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#b41616), to(#600606));
+ background-image: -webkit-linear-gradient(top, #b41616, #600606);
+ background-image: -moz-linear-gradient(top, #b41616, #600606);
+ background-image: -ms-linear-gradient(top, #b41616, #600606);
+ background-image: -o-linear-gradient(top, #b41616, #600606);
+ background-image: linear-gradient(to bottom, #b41616, #600606);
+}
+.openerp .oe_login .oe_login_pane {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ margin: -160px -166px;
+ border: solid 1px #333333;
+ background: #1e1e1e;
+ background: rgba(30, 30, 30, 0.94);
+ padding: 22px 32px;
+ color: #eeeeee;
+ text-align: left;
+ -moz-border-radius: 8px;
+ -webkit-border-radius: 8px;
+ border-radius: 8px;
+ -moz-box-shadow: 0 0 18px rgba(0, 0, 0, 0.9);
+ -webkit-box-shadow: 0 0 18px rgba(0, 0, 0, 0.9);
+ box-shadow: 0 0 18px rgba(0, 0, 0, 0.9);
+}
+.openerp .oe_login .oe_login_pane h2 {
+ margin-top: 0;
+ font-size: 18px;
+}
+.openerp .oe_login .oe_login_logo {
+ position: absolute;
+ top: -70px;
+ left: 0;
+ width: 100%;
+ margin: 0 auto;
+ text-align: center;
+}
+.openerp .oe_login .oe_login_footer {
+ position: absolute;
+ bottom: -40px;
+ left: 0;
+ width: 100%;
+ text-align: center;
+}
+.openerp .oe_login .oe_login_footer a {
+ color: #eeeeee;
+ margin: 0 8px;
+}
+.openerp .oe_login .oe_login_footer a:hover {
+ text-decoration: underline;
+}
+.openerp .oe_login .oe_login_footer span {
+ font-weight: bold;
+ font-size: 16px;
+}
+.openerp .oe_login .oe_login_error_message {
+ display: none;
+ background-color: #b41616;
+ color: #eeeeee;
+ padding: 14px 18px;
+ margin-top: 15px;
+ text-align: center;
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ border-radius: 4px;
+ -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.8);
+ -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.8);
+ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.8);
+}
+.openerp .oe_login_invalid .oe_login_error_message {
+ display: inline-block;
+}
+.openerp .oe_database_manager {
+ background: white;
+ color: black;
+ text-align: left;
+}
+.openerp .oe_database_manager .oe_database_manager_menu {
+ color: black;
+}
+.openerp .oe_webclient {
+ width: 100%;
+ height: 100%;
+ border-spacing: 0px;
+}
+.openerp .oe_content_full_screen .oe_application {
+ top: 0;
+ left: 0;
+}
+.openerp .oe_content_full_screen .oe_topbar, .openerp .oe_content_full_screen .oe_leftbar {
+ display: none;
+}
+.openerp .oe_topbar {
+ width: 100%;
+ height: 32px;
+ background-color: #414141;
+ background-color: #646060;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#646060), to(#262626));
+ background-image: -webkit-linear-gradient(top, #646060, #262626);
+ background-image: -moz-linear-gradient(top, #646060, #262626);
+ background-image: -ms-linear-gradient(top, #646060, #262626);
+ background-image: -o-linear-gradient(top, #646060, #262626);
+ background-image: linear-gradient(to bottom, #646060, #262626);
+}
+.openerp .oe_topbar .oe_topbar_item {
+ display: block;
+ padding: 5px 10px 7px;
+ line-height: 20px;
+ height: 20px;
+ text-decoration: none;
+ color: #eeeeee;
+ vertical-align: top;
+ text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
+ -webkit-transition: all 0.2s ease-out;
+ -moz-transition: all 0.2s ease-out;
+ -ms-transition: all 0.2s ease-out;
+ -o-transition: all 0.2s ease-out;
+ transition: all 0.2s ease-out;
+}
+.openerp .oe_topbar .oe_topbar_item:hover {
+ background: rgba(0, 0, 0, 0.2);
+ text-shadow: black 0px 0px 3px;
+ color: white;
+ -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset;
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset;
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset;
+}
+.openerp .oe_topbar .oe_topbar_avatar {
+ width: 24px;
+ height: 24px;
+ margin: -2px 2px 0 0;
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+}
+.openerp .oe_topbar .oe_topbar_avatar {
+ vertical-align: top;
+}
+.openerp .oe_topbar .oe_dropdown_arrow:after {
+ border-top: 4px solid white;
+}
+.openerp .oe_topbar .oe_dropdown_menu {
+ top: 32px;
+ background: #333333;
+ background: rgba(37, 37, 37, 0.9);
+ border-color: #999999;
+ border-color: rgba(0, 0, 0, 0.2);
+ border-style: solid;
+ border-width: 0 1px 1px;
+ -moz-border-radius: 0 0 6px 6px;
+ -webkit-border-radius: 0 0 6px 6px;
+ border-radius: 0 0 6px 6px;
+ -webkit-background-clip: padding-box;
+ -moz-background-clip: padding-box;
+ background-clip: padding-box;
+}
+.openerp .oe_topbar .oe_dropdown_menu li {
+ float: none;
+ padding: 3px 12px;
+}
+.openerp .oe_topbar .oe_dropdown_menu li a {
+ color: #eeeeee;
+}
+.openerp .oe_topbar .oe_dropdown_menu li:hover {
+ background-color: #292929;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#292929), to(#191919));
+ background-image: -webkit-linear-gradient(top, #292929, #191919);
+ background-image: -moz-linear-gradient(top, #292929, #191919);
+ background-image: -ms-linear-gradient(top, #292929, #191919);
+ background-image: -o-linear-gradient(top, #292929, #191919);
+ background-image: linear-gradient(to bottom, #292929, #191919);
+ -moz-box-shadow: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+.openerp .oe_menu {
+ float: left;
+ padding: 0;
+ margin: 0;
+ font-size: 13px;
+}
+.openerp .oe_menu > li {
+ list-style-type: none;
+ padding: 0;
+ margin: 0;
+ float: left;
+ display: block;
+ color: #eeeeee;
+}
+.openerp .oe_menu > li > a {
+ display: block;
+ padding: 5px 10px 7px;
+ line-height: 20px;
+ height: 20px;
+ text-decoration: none;
+ color: #eeeeee;
+ vertical-align: top;
+ text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
+ -webkit-transition: all 0.2s ease-out;
+ -moz-transition: all 0.2s ease-out;
+ -ms-transition: all 0.2s ease-out;
+ -o-transition: all 0.2s ease-out;
+ transition: all 0.2s ease-out;
+}
+.openerp .oe_menu > li > a:hover {
+ background: rgba(0, 0, 0, 0.2);
+ text-shadow: black 0px 0px 3px;
+ color: white;
+ -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset;
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset;
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset;
+}
+.openerp .oe_menu > li > .oe_active {
+ background: rgba(0, 0, 0, 0.3);
+ text-shadow: black 0px 0px 3px;
+ -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset;
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset;
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset;
+}
+.openerp .oe_user_menu {
+ float: right;
+ padding: 0;
+ margin: 0;
+}
+.openerp .oe_user_menu li {
+ list-style-type: none;
+ float: left;
+}
+.openerp .oe_user_menu .oe_dropdown_menu {
+ right: -1px;
+}
+.openerp .oe_systray > div {
+ float: left;
+ padding: 0 4px 0 4px;
+}
+.openerp .oe_systray {
+ float: right;
+}
+.openerp .oe_leftbar {
+ display: none;
+ width: 220px;
+ background: #f0eeee;
+ border-right: 1px solid #afafb6;
+ text-shadow: 0 1px 1px white;
+ padding-bottom: 16px;
+}
+.openerp a.oe_logo {
+ width: 220px;
+ display: block;
+ text-align: center;
+ height: 70px;
+ line-height: 70px;
+}
+.openerp a.oe_logo img {
+ height: 40px;
+ width: 157px;
+ margin: 14px 0;
+}
+.openerp .oe_footer {
+ position: fixed;
+ bottom: 0;
+ padding: 4px 0;
+ background: #f0eeee;
+ width: 220px;
+ text-align: center;
+}
+.openerp .oe_footer a {
+ font-weight: 800;
+ font-family: serif;
+ font-size: 16px;
+ color: black;
+}
+.openerp .oe_footer a span {
+ color: #c81010;
+ font-style: italic;
+}
+.openerp .oe_secondary_menu_section {
+ font-weight: bold;
+ margin-left: 8px;
+ color: #7c7bad;
+}
+.openerp .oe_secondary_submenu {
+ padding: 2px 0 8px 0;
+ margin: 0;
+ width: 100%;
+ display: inline-block;
+}
+.openerp .oe_secondary_submenu li {
+ position: relative;
+ margin: 0;
+ padding: 1px 0 1px 20px !important;
+ list-style-type: none;
+}
+.openerp .oe_secondary_submenu li a {
+ display: block;
+ color: #4c4c4c;
+ padding: 2px 4px 2px 0;
+}
+.openerp .oe_secondary_submenu li .oe_menu_label {
+ position: absolute;
+ top: 1px;
+ right: 1px;
+ font-size: 10px;
+ background: #7c7bad;
+ color: white;
+ padding: 2px 4px;
+ margin: 1px 6px 0 0;
+ border: 1px solid lightGray;
+ text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ border-radius: 4px;
+ -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.2);
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.2);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.2);
+}
+.openerp .oe_secondary_submenu .oe_menu_counter {
+ float: right;
+ text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
+ margin: 1px;
+ padding: 1px 4px;
+ border: none;
+}
+.openerp .oe_secondary_submenu .oe_menu_counter:hover {
+ cursor: pointer;
+ -webkit-transform: scale(1.1);
+ -moz-transform: scale(1.1);
+ -ms-transform: scale(1.1);
+ -o-transform: scale(1.1);
+ transform: scale(1.1);
+}
+.openerp .oe_secondary_submenu .oe_active {
+ border-top: 1px solid lightGray;
+ border-bottom: 1px solid #dedede;
+ text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
+ -moz-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.2), inset 0 -1px 3px rgba(40, 40, 40, 0.2);
+ -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.2), inset 0 -1px 3px rgba(40, 40, 40, 0.2);
+ box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.2), inset 0 -1px 3px rgba(40, 40, 40, 0.2);
+ background: #7c7bad;
+}
+.openerp .oe_secondary_submenu .oe_active a {
+ color: white;
+}
+.openerp .oe_secondary_submenu .oe_active .oe_menu_label {
+ background: #eeeeee;
+ color: #7c7bad;
+ text-shadow: 0 1px 1px white;
+ -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
+ -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
+}
+.openerp .oe_secondary_submenu .oe_active .oe_menu_counter {
+ background: #eeeeee;
+ color: #7c7bad;
+ -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2);
+ -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2);
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2);
+}
+.openerp .oe_secondary_submenu .oe_menu_toggler:before {
+ width: 0;
+ height: 0;
+ display: inline-block;
+ content: "&darr";
+ text-indent: -99999px;
+ vertical-align: top;
+ margin-left: -12px;
+ margin-top: 4px;
+ margin-right: 4px;
+ border-top: 4px solid transparent;
+ border-bottom: 4px solid transparent;
+ border-left: 4px solid #4c4c4c;
+ filter: alpha(opacity=50);
+ opacity: 0.5;
+}
+.openerp .oe_secondary_submenu .oe_menu_opened:before {
+ margin-top: 6px;
+ margin-left: -16px;
+ margin-right: 4px;
+ border-left: 4px solid transparent;
+ border-right: 4px solid transparent;
+ border-top: 4px solid #4c4c4c;
+}
+.openerp .oe_about {
+ background-color: white;
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAKUlEQVQIHWO8e/fufwYsgAUkJigoiCIF5DMyoYggcUiXgNnBiGQKmAkARpcEQeriln4AAAAASUVORK5CYII=);
+ -moz-border-radius: 0 0 2px 2px;
+ -webkit-border-radius: 0 0 2px 2px;
+ border-radius: 0 0 2px 2px;
+}
+.openerp .oe_about a {
+ color: #7c7bad;
+}
+.openerp .oe_about a:hover {
+ text-decoration: underline;
+}
+.openerp .oe_about a:focus {
+ outline: none;
+}
+.openerp .oe_about .oe_logo {
+ margin-left: -6px;
+}
+.openerp .oe_about .oe_bottom {
+ position: absolute;
+ top: 50%;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ text-shadow: 0 1px 1px #999999;
+ background-color: #b41616;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#b41616), to(#600606));
+ background-image: -webkit-linear-gradient(top, #b41616, #600606);
+ background-image: -moz-linear-gradient(top, #b41616, #600606);
+ background-image: -ms-linear-gradient(top, #b41616, #600606);
+ background-image: -o-linear-gradient(top, #b41616, #600606);
+ background-image: linear-gradient(to bottom, #b41616, #600606);
+ color: #eeeeee;
+ padding: 0 16px;
+ -moz-border-radius: 0 0 2px 2px;
+ -webkit-border-radius: 0 0 2px 2px;
+ border-radius: 0 0 2px 2px;
+}
+.openerp .oe_about .oe_bottom a {
+ color: #eeeeee;
+}
+.openerp .oe_application {
+ width: 100%;
+}
+.openerp .oe_application a {
+ color: #7c7bad;
+}
+.openerp .oe_application a:hover {
+ text-decoration: underline;
+}
+.openerp .oe_application > div {
+ height: 100%;
+}
+.openerp .oe_application .oe_breadcrumb_item:not(:last-child) {
+ display: inline-block;
+ max-width: 7em;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+.openerp .oe_view_manager .oe_view_manager_body {
+ height: inherit;
+}
+.openerp .oe_view_manager .oe_view_manager_view_kanban {
+ height: inherit;
+}
+.openerp .oe_view_manager table.oe_view_manager_header {
+ width: 100%;
+ table-layout: fixed;
+}
+.openerp .oe_view_manager table.oe_view_manager_header .oe_header_row {
+ clear: both;
+ text-shadow: 0 1px 1px white;
+}
+.openerp .oe_view_manager table.oe_view_manager_header .oe_header_row:last-child td {
+ padding-top: 0;
+}
+.openerp .oe_view_manager table.oe_view_manager_header .oe_header_row:first-child td {
+ padding-top: 8px;
+}
+.openerp .oe_view_manager table.oe_view_manager_header .oe_view_manager_sidebar {
+ margin: 0px auto;
+ text-align: center;
+}
+.openerp .oe_view_manager table.oe_view_manager_header td {
+ line-height: 26px;
+}
+.openerp .oe_view_manager table.oe_view_manager_header h2 {
+ font-size: 18px;
+ margin: 0;
+ float: left;
+}
+.openerp .oe_view_manager table.oe_view_manager_header h2 a {
+ color: #7c7bad;
+}
+.openerp .oe_view_manager table.oe_view_manager_header .oe_dropdown_menu {
+ line-height: normal;
+}
+.openerp .oe_view_manager table.oe_view_manager_header .oe_button_group {
+ display: inline-block;
+ border: 1px solid #ababab;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+}
+.openerp .oe_view_manager table.oe_view_manager_header .oe_button_group li {
+ float: left;
+ border-right: 1px solid #ababab;
+}
+.openerp .oe_view_manager table.oe_view_manager_header .oe_button_group li:last-child {
+ border: none;
+}
+.openerp .oe_view_manager table.oe_view_manager_header .oe_button_group a {
+ color: #4c4c4c;
+}
+.openerp .oe_view_manager table.oe_view_manager_header .oe_button_group a:hover {
+ text-decoration: none;
+}
+.openerp .oe_view_manager table.oe_view_manager_header .oe_button_group .active {
+ background: #999999;
+ -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset;
+ -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset;
+ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset;
+}
+.openerp .oe_view_manager table.oe_view_manager_header .oe_button_group .active a {
+ color: white;
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
+}
+.openerp .oe_view_manager table.oe_view_manager_header .oe_view_manager_buttons {
+ white-space: nowrap;
+}
+.openerp .oe_view_manager .oe_view_manager_pager {
+ line-height: 26px;
+}
+.openerp .oe_view_manager .oe_view_manager_pager .oe_list_pager_single_page .oe_pager_group {
+ display: none;
+}
+.openerp .oe_view_manager .oe_pager_value {
+ float: left;
+ margin-right: 8px;
+}
+.openerp .oe_view_manager ul.oe_pager_group {
+ padding: 0;
+ margin: 0;
+}
+.openerp .oe_view_manager .oe_pager_group {
+ float: left;
+ height: 24px;
+ line-height: 24px;
+ display: inline-block;
+ border: 1px solid #ababab;
+ cursor: pointer;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+}
+.openerp .oe_view_manager .oe_pager_group li {
+ height: 24px;
+ line-height: 24px;
+ padding: 0;
+ margin: 0;
+ list-style-type: none;
+ float: left;
+ border-right: 1px solid #ababab;
+}
+.openerp .oe_view_manager .oe_pager_group li:last-child {
+ border: none;
+}
+.openerp .oe_view_manager .oe_pager_group a {
+ color: #4c4c4c;
+ padding: 0 8px;
+}
+.openerp .oe_view_manager .oe_pager_group a:hover {
+ text-decoration: none;
+}
+.openerp .oe_view_manager .oe_pager_group .active {
+ background: #999999;
+ -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset;
+ -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset;
+ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset;
+}
+.openerp .oe_view_manager .oe_pager_group .active a {
+ color: white;
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
+}
+.openerp .oe_view_manager .oe_view_manager_switch {
+ padding: 0;
+ margin: 0 0 0 8px;
+}
+.openerp .oe_view_manager .oe_view_manager_switch li {
+ margin: 0;
+ width: 24px;
+ height: 24px;
+ line-height: 16px;
+ padding: 0;
+ text-align: center;
+ list-style-type: none;
+}
+.openerp .oe_view_manager .oe_view_manager_switch li a {
+ position: relative;
+}
+.openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_list:after, .openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_tree:after {
+ padding: 2px;
+ content: "i";
+}
+.openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_form:after {
+ content: "m";
+}
+.openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_graph:after {
+ font-family: "mnmliconsRegular" !important;
+ font-size: 21px;
+ font-weight: 300 !important;
+ content: "}";
+ top: -2px;
+ position: relative;
+}
+.openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_gantt:after {
+ font-family: "mnmliconsRegular" !important;
+ font-size: 21px;
+ font-weight: 300 !important;
+ content: "y";
+ top: -2px;
+ position: relative;
+}
+.openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_calendar:after {
+ content: "P";
+}
+.openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_kanban:after {
+ content: "k";
+}
+.openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_diagram:after {
+ content: "f";
+}
+.openerp .oe_view_manager_current {
+ height: 100%;
+}
+.openerp .oe_view_manager_current > .oe_view_manager_header {
+ border-bottom: 1px solid #cacaca;
+ background-color: #fcfcfc;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#fcfcfc), to(#dedede));
+ background-image: -webkit-linear-gradient(top, #fcfcfc, #dedede);
+ background-image: -moz-linear-gradient(top, #fcfcfc, #dedede);
+ background-image: -ms-linear-gradient(top, #fcfcfc, #dedede);
+ background-image: -o-linear-gradient(top, #fcfcfc, #dedede);
+ background-image: linear-gradient(to bottom, #fcfcfc, #dedede);
+ -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4), 0 0 9px rgba(0, 0, 0, 0.1);
+ -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4), 0 0 9px rgba(0, 0, 0, 0.1);
+ box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4), 0 0 9px rgba(0, 0, 0, 0.1);
+}
+.openerp .oe_view_manager_current > .oe_view_manager_header .oe_header_row td {
+ padding: 8px;
+}
+.openerp .oe_view_manager_current > .oe_view_manager_header .oe_header_row:first-child td {
+ padding-top: 8px;
+}
+.openerp .oe_view_manager_inline, .openerp .oe_view_manager_inlineview {
+ height: 100%;
+}
+.openerp .oe_view_manager_inline > .oe_view_manager_header, .openerp .oe_view_manager_inlineview > .oe_view_manager_header {
+ display: none;
+}
+.openerp .oe_popup_form > .oe_formview > .oe_form_pager {
+ display: none !important;
+}
+.openerp .oe_searchview {
+ cursor: text;
+ position: relative;
+ float: right;
+ padding: 1px 0;
+ line-height: 18px;
+ width: 400px;
+ border: 1px solid #ababab;
+ background: white;
+ -moz-border-radius: 13px;
+ -webkit-border-radius: 13px;
+ border-radius: 13px;
+ -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) inset;
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) inset;
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) inset;
+}
+.openerp .oe_searchview input, .openerp .oe_searchview textarea {
+ padding: 3px;
+ height: 14px;
+ font-size: 12px;
+ line-height: 18px;
+}
+.openerp .oe_searchview.oe_focused {
+ border-color: #a6a6fe;
+ -moz-box-shadow: 0 1px 2px #a6a6fe inset;
+ -webkit-box-shadow: 0 1px 2px #a6a6fe inset;
+ box-shadow: 0 1px 2px #a6a6fe inset;
+}
+.openerp .oe_searchview .oe_searchview_clear {
+ cursor: pointer;
+ position: absolute;
+ top: 0;
+ right: 18px;
+ width: 15px;
+ height: 100%;
+ background: url(../img/search_reset.gif) center center no-repeat;
+}
+.openerp .oe_searchview .oe_searchview_unfold_drawer {
+ position: absolute;
+ top: 0;
+ right: 0;
+ height: 100%;
+ padding: 0 7px 0 4px;
+ color: #cccccc;
+ cursor: pointer;
+}
+.openerp .oe_searchview .oe_searchview_unfold_drawer:hover {
+ color: #999999;
+}
+.openerp .oe_searchview .oe_searchview_unfold_drawer:before {
+ position: absolute;
+ top: 10px;
+ right: 7px;
+ width: 0;
+ height: 0;
+ display: inline-block;
+ content: "";
+ vertical-align: top;
+ border-top: 5px solid #4c4c4c;
+ border-left: 5px solid transparent;
+ border-right: 5px solid transparent;
+ filter: alpha(opacity=50);
+ opacity: 0.5;
+}
+.openerp .oe_searchview .oe_searchview_search {
+ font-size: 1px;
+ letter-spacing: -1px;
+ color: transparent;
+ font-weight: normal;
+ -moz-box-shadow: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ border-radius: 0;
+ position: absolute;
+ left: 3px;
+ top: 1px;
+ padding: 0;
+ border: none;
+ background: transparent;
+}
+.openerp .oe_searchview .oe_searchview_search:before {
+ font: 21px "mnmliconsRegular";
+ content: "r";
+ color: #a3a3a3;
+}
+.openerp .oe_searchview .oe_searchview_facets {
+ min-height: 22px;
+ margin-left: 15px;
+}
+.openerp .oe_searchview .oe_searchview_facets * {
+ vertical-align: top;
+ display: inline-block;
+ line-height: 17px;
+}
+.openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet {
+ height: 18px;
+ margin: 1px 0;
+ font-size: 11px;
+}
+.openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet:focus {
+ outline: none;
+}
+.openerp .oe_searchview .oe_searchview_facets .oe_searchview_input {
+ padding: 0 0 0 6px;
+ font-size: 12px;
+ height: 16px;
+ margin-top: 3px;
+}
+.openerp .oe_searchview .oe_searchview_facets .oe_searchview_input:focus {
+ outline: none;
+}
+.openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet {
+ position: relative;
+ cursor: pointer;
+ padding: 0;
+ -webkit-font-smoothing: auto;
+}
+.openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet:focus {
+ border-color: #a6a6fe;
+ -moz-box-shadow: 0 0 3px 1px #a6a6fe;
+ -webkit-box-shadow: 0 0 3px 1px #a6a6fe;
+ box-shadow: 0 0 3px 1px #a6a6fe;
+}
+.openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_values {
+ background: #f0f0fa;
+ -moz-border-radius: 0 3px 3px 0;
+ -webkit-border-radius: 0 3px 3px 0;
+ border-radius: 0 3px 3px 0;
+}
+.openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_category, .openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_value {
+ height: 18px;
+ padding: 0 4px;
+}
+.openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_category {
+ color: white;
+ text-shadow: 0 1px 1px rgba(0, 0, 0, 0.4);
+}
+.openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_category.oe_i {
+ font-size: 16px;
+}
+.openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_value {
+ border-left: 1px solid #afafb6;
+ text-shadow: 0 1px 1px white;
+ color: #4c4c4c;
+}
+.openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_value:last-child {
+ padding-right: 16px;
+}
+.openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_remove {
+ position: absolute;
+ top: 3px;
+ right: 3px;
+ color: #8786b7;
+ line-height: 8px;
+ width: 12px;
+ height: 12px;
+ padding-top: 1px;
+ text-align: center;
+ font-weight: bold;
+ cursor: pointer;
+ text-shadow: 0 1px 1px white;
+}
+.openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_remove:hover {
+ color: white;
+ background: #8786b7;
+ text-shadow: 0 1px 1px rgba(0, 0, 0, 0.4);
+ -moz-border-radius: 2px;
+ -webkit-border-radius: 2px;
+ border-radius: 2px;
+}
+.openerp .oe_searchview.oe_searchview_open_drawer .oe_searchview_drawer {
+ display: block;
+}
+.openerp .oe_searchview .oe_searchview_drawer {
+ position: absolute;
+ z-index: 100;
+ margin-top: 4px;
+ top: 100%;
+ right: -1px;
+ background-color: white;
+ min-width: 100%;
+ display: none;
+ border: 1px solid #afafb6;
+ text-align: left;
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ border-radius: 4px;
+ -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
+ -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
+ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
+}
+.openerp .oe_searchview .oe_searchview_drawer > div {
+ border-top: 1px solid #cccccc;
+ margin: 0;
+ padding: 8px;
+}
+.openerp .oe_searchview .oe_searchview_drawer > div:first-child {
+ border-top: none;
+ margin: 0;
+}
+.openerp .oe_searchview .oe_searchview_drawer h3 {
+ margin: 8px 4px 4px 12px;
+ color: #7c7bad;
+ font-size: 13px;
+}
+.openerp .oe_searchview .oe_searchview_drawer h4, .openerp .oe_searchview .oe_searchview_drawer h4 * {
+ margin: 0;
+ cursor: pointer;
+ font-weight: normal;
+ display: inline-block;
+}
+.openerp .oe_searchview .oe_searchview_drawer h4:hover, .openerp .oe_searchview .oe_searchview_drawer h4 *:hover {
+ background-color: #f0f0fa;
+}
+.openerp .oe_searchview .oe_searchview_drawer h4:before {
+ content: "▸ ";
+ color: #a3a3a3;
+}
+.openerp .oe_searchview .oe_searchview_drawer button {
+ margin: 4px 0;
+}
+.openerp .oe_searchview .oe_searchview_drawer .button {
+ border: none;
+ background: transparent;
+ padding: 0 2px;
+ -moz-box-shadow: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ border-radius: 0;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section {
+ display: table;
+ width: 100%;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section > div {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ display: table-cell;
+ width: 50%;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section ul {
+ margin: 0 8px 8px;
+ padding: 0;
+ list-style: none;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section li {
+ list-style: none;
+ padding: 2px 4px 2px 20px;
+ line-height: 14px;
+ color: inherit;
+ cursor: pointer;
+ position: relative;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section li.oe_selected:before {
+ content: "W";
+ font-family: "entypoRegular" !important;
+ font-size: 24px;
+ font-weight: 300 !important;
+ color: #a3a3a3;
+ position: absolute;
+ left: 4px;
+ top: -2px;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section li:hover {
+ background-color: #f0f0fa;
+}
+.openerp .oe_searchview .oe_searchview_drawer form {
+ margin-left: 12px;
+}
+.openerp .oe_searchview .oe_searchview_drawer form p {
+ margin: 4px 0;
+ line-height: 18px;
+}
+.openerp .oe_searchview .oe_searchview_drawer form button {
+ margin: 0 0 8px 0;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom {
+ padding: 0 8px 8px 8px;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom form {
+ display: none;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom li {
+ cursor: pointer;
+ position: relative;
+ line-height: 14px;
+ padding: 2px 4px 2px 20px;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom li:hover {
+ background-color: #f0f0fa;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom li button {
+ position: absolute;
+ top: 0;
+ right: 5px;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_dashboard form {
+ display: none;
+ margin-top: 2px;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced form {
+ display: none;
+ margin-top: 8px;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced button.oe_add_condition:before {
+ content: "Z";
+ font-family: "entypoRegular" !important;
+ font-size: 24px;
+ font-weight: 300 !important;
+ margin-right: 4px;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced ul {
+ list-style: none;
+ padding: 0;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced li {
+ position: relative;
+ list-style: none;
+ margin: 0;
+ white-space: nowrap;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced li:first-child .searchview_extended_prop_or {
+ visibility: hidden;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced .searchview_extended_prop_or {
+ opacity: 0.5;
+ margin-left: -14px;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_opened h4:before {
+ content: "▾ ";
+ position: relative;
+ top: -1px;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_opened form {
+ display: block;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_delete, .openerp .oe_searchview .oe_searchview_drawer .searchview_extended_delete_prop {
+ display: inline-block;
+ width: 12px;
+ height: 12px;
+ line-height: 12px;
+ padding: 1px;
+ color: #8786b7;
+ line-height: 8px;
+ text-align: center;
+ font-weight: bold;
+ text-shadow: 0 1px 1px white;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_delete:hover, .openerp .oe_searchview .oe_searchview_drawer .searchview_extended_delete_prop:hover {
+ text-decoration: none;
+ color: white;
+ background: #8786b7;
+ text-shadow: 0 1px 1px rgba(0, 0, 0, 0.4);
+ -moz-border-radius: 2px;
+ -webkit-border-radius: 2px;
+ border-radius: 2px;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_delete {
+ display: none;
+ position: absolute;
+ bottom: 1px;
+ right: 4px;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_private:hover .oe_searchview_custom_delete, .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_public:hover .oe_searchview_custom_delete {
+ display: inline-block;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_public:after {
+ content: ",";
+ font-family: "entypoRegular" !important;
+ font-size: 22px;
+ font-weight: 300 !important;
+ margin: 0 0 0 4px;
+ padding: 0;
+}
+.openerp .oe_view_nocontent {
+ padding: 15px;
+ margin-top: 0;
+ color: #777777;
+ font-size: 125%;
+ max-width: 700px;
+}
+.openerp .oe_view_nocontent .oe_view_nocontent_create {
+ background: transparent url(/web/static/src/img/view_empty_arrow.png) no-repeat 7px 0;
+ margin-top: 0;
+ padding-top: 35px;
+ min-height: 28px;
+ color: #4c4c4c;
+}
+.openerp .oe_view_nocontent > p {
+ padding-left: 95px;
+}
+.openerp .oe_view_nocontent .oe_empty_custom_dashboard {
+ background: transparent url(/web/static/src/img/graph_background.png) no-repeat 0 0;
+ margin-top: -15px;
+ padding: 100px 0 0 137px;
+ min-height: 327px;
+ margin-left: -15px;
+}
+.openerp .oe_view.oe_cannot_create .oe_view_nocontent_create {
+ display: none;
+}
+.openerp .oe_formview {
+ background: white;
+}
+.openerp .oe_form_dropdown_section {
+ position: relative;
+ display: inline-block;
+}
+.openerp .oe_form_invalid input, .openerp .oe_form_invalid select, .openerp .oe_form_invalid textarea {
+ background-color: #ff6666 !important;
+ border: 1px solid #dd0000 !important;
+}
+.openerp .oe_view_manager_current .oe_form_editable .oe_highlight {
+ color: #404040;
+ background: none;
+}
+.openerp .oe_view_manager_current .oe_form_editable button.oe_highlight {
+ background-color: #efefef;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#efefef), to(#d8d8d8));
+ background-image: -webkit-linear-gradient(top, #efefef, #d8d8d8);
+ background-image: -moz-linear-gradient(top, #efefef, #d8d8d8);
+ background-image: -ms-linear-gradient(top, #efefef, #d8d8d8);
+ background-image: -o-linear-gradient(top, #efefef, #d8d8d8);
+ background-image: linear-gradient(to bottom, #efefef, #d8d8d8);
+ -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
+}
+.openerp .oe_view_manager_current .oe_form_editable button.oe_highlight:active {
+ background-color: #e3e3e3;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#e3e3e3), to(#f6f6f6));
+ background-image: -webkit-linear-gradient(top, #e3e3e3, #f6f6f6);
+ background-image: -moz-linear-gradient(top, #e3e3e3, #f6f6f6);
+ background-image: -ms-linear-gradient(top, #e3e3e3, #f6f6f6);
+ background-image: -o-linear-gradient(top, #e3e3e3, #f6f6f6);
+ background-image: linear-gradient(to bottom, #e3e3e3, #f6f6f6);
+ -moz-box-shadow: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+.openerp .oe_view_manager_current .oe_form_editable button.oe_highlight:hover {
+ background-color: #f6f6f6;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f6f6f6), to(#e3e3e3));
+ background-image: -webkit-linear-gradient(top, #f6f6f6, #e3e3e3);
+ background-image: -moz-linear-gradient(top, #f6f6f6, #e3e3e3);
+ background-image: -ms-linear-gradient(top, #f6f6f6, #e3e3e3);
+ background-image: -o-linear-gradient(top, #f6f6f6, #e3e3e3);
+ background-image: linear-gradient(to bottom, #f6f6f6, #e3e3e3);
+ -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
+}
+.openerp .oe_form_invisible {
+ display: none !important;
+}
+.openerp .oe_form_readonly .oe_edit_only, .openerp .oe_form_readonly .oe_form_field:empty {
+ display: none !important;
+}
+.openerp .oe_form_readonly .oe_form .oe_form_field_date {
+ width: auto;
+}
+.openerp .oe_form_nosheet {
+ margin: 16px;
+}
+.openerp .oe_form_nosheet > header {
+ margin: -16px -16px 0 -16px;
+ padding: 0;
+}
+.openerp .oe_form_sheetbg {
+ padding: 16px 0;
+}
+.openerp .oe_form_sheet_width {
+ min-width: 650px;
+ max-width: 860px;
+ margin: 0 auto;
+}
+.openerp .oe_form_sheet {
+ background: white;
+ min-height: 330px;
+ padding: 16px;
+}
+.openerp .oe_application .oe_form_sheetbg {
+ background: url(/web/static/src/img/form_sheetbg.png);
+ border-bottom: 1px solid #dddddd;
+}
+.openerp .oe_application .oe_form_sheet {
+ border: 1px solid #c8c8d3;
+ -moz-box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
+ -webkit-box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
+}
+.openerp .oe_application .oe_form_sheet .ui-tabs {
+ margin: 0 -16px;
+}
+.openerp .oe_application .oe_form_sheet .oe_notebook_page {
+ padding: 0 16px;
+}
+.openerp .oe_form header {
+ position: relative;
+ border-bottom: 1px solid #cacaca;
+ padding-left: 2px;
+ background-color: #fcfcfc;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#fcfcfc), to(#dedede));
+ background-image: -webkit-linear-gradient(top, #fcfcfc, #dedede);
+ background-image: -moz-linear-gradient(top, #fcfcfc, #dedede);
+ background-image: -ms-linear-gradient(top, #fcfcfc, #dedede);
+ background-image: -o-linear-gradient(top, #fcfcfc, #dedede);
+ background-image: linear-gradient(to bottom, #fcfcfc, #dedede);
+}
+.openerp .oe_form header > span {
+ margin-left: 4px;
+}
+.openerp .oe_form header ul {
+ display: inline-block;
+ float: right;
+}
+.openerp .oe_form header .oe_button {
+ margin: 3px 2px 1px;
+}
+.openerp .oe_form header .oe_button:first-child {
+ margin-left: 6px;
+}
+.openerp .oe_form header .oe_tags {
+ margin: 5px 0 0 5px;
+ width: 400px;
+ padding-bottom: 0;
+}
+.openerp .oe_form div.oe_chatter {
+ min-width: 650px;
+ max-width: 860px;
+ margin: 0 auto;
+ padding: 16px 0 48px;
+}
+.openerp .oe_form div.oe_form_configuration p, .openerp .oe_form div.oe_form_configuration ul, .openerp .oe_form div.oe_form_configuration ol {
+ color: #aaaaaa;
+ max-width: 650px;
+}
+.openerp .oe_form div.oe_form_configuration label {
+ min-width: 150px;
+}
+.openerp .oe_form div.oe_form_configuration .oe_form_group_cell_label {
+ padding: 1px 0;
+}
+.openerp .oe_form div.oe_form_configuration .oe_form_group_cell div div {
+ padding: 1px 0;
+}
+.openerp .oe_form .oe_subtotal_footer {
+ width: 1% !important;
+}
+.openerp .oe_form .oe_subtotal_footer td.oe_form_group_cell {
+ text-align: right;
+ padding: 0 !important;
+}
+.openerp .oe_form .oe_subtotal_footer td.oe_form_group_cell_label {
+ border-right: none;
+}
+.openerp .oe_form .oe_subtotal_footer .oe_subtotal_footer_separator {
+ width: 108px;
+ border-top: 1px solid #cacaca;
+ margin-top: 4px;
+ padding-top: 4px;
+ font-weight: bold;
+ font-size: 18px;
+}
+.openerp .oe_form .oe_subtotal_footer label:after {
+ content: ":";
+}
+.openerp .oe_form .oe_subtotal_footer label.oe_subtotal_footer_separator {
+ font-weight: bold !important;
+ padding: 2px 11px 2px 0px !important;
+}
+.openerp .oe_form .oe_subtotal_footer label.oe_form_label_help {
+ font-weight: normal;
+}
+.openerp .oe_form .oe_form_button {
+ margin: 2px;
+}
+.openerp .oe_form td.oe_form_group_cell_label {
+ border-right: 1px solid #dddddd;
+ padding: 2px 0px;
+}
+.openerp .oe_form td.oe_form_group_cell_label label {
+ line-height: 18px;
+ display: block;
+ min-width: 140px;
+}
+.openerp .oe_form td.oe_form_group_cell + .oe_form_group_cell {
+ padding: 2px 0 2px 8px;
+}
+.openerp .oe_form .oe_form_group {
+ width: 100%;
+ margin: 9px 0 9px 0;
+}
+.openerp .oe_form .oe_form_group .oe_form_group_cell.oe_group_right {
+ padding-left: 20px;
+}
+.openerp .oe_form .oe_form_label_help[for], .openerp .oe_form .oe_form_label[for] {
+ font-weight: bold;
+ white-space: nowrap;
+ padding-right: 8px;
+}
+.openerp .oe_form .oe_form_label_help[for] span, .openerp .oe_form .oe_form_label[for] span {
+ font-size: 80%;
+ color: darkGreen;
+ vertical-align: top;
+ position: relative;
+ top: -4px;
+ padding: 0 2px;
+}
+.openerp .oe_horizontal_border {
+ border-bottom: 1px solid black;
+}
+.openerp .oe_horizontal_separator {
+ font-weight: bold;
+ font-size: 20px;
+ margin: 15px 0px 10px 0px;
+ color: #7c7bad;
+}
+.openerp .oe_horizontal_separator:empty {
+ height: 5px;
+}
+.openerp .oe_vertical_separator {
+ border-left: 1px solid #666666;
+ padding: 0 4px 0 4px;
+}
+.openerp .oe_form_field_progressbar {
+ display: inline-block;
+ min-width: 70px;
+}
+.openerp .oe_form_field_progressbar.ui-progressbar {
+ height: 22px;
+ font-size: 10px;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ border: 1px solid #999999;
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+ background: white;
+ min-width: 50px;
+}
+.openerp .oe_form_field_progressbar.ui-progressbar span {
+ position: absolute;
+ margin-left: 10px;
+ font-weight: bold;
+}
+.openerp .oe_form_field_progressbar.ui-progressbar .ui-widget-header {
+ background: #cccccc url(/web/static/lib/jquery.ui/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;
+}
+.openerp .oe_form .oe_form_field_text {
+ width: 100%;
+}
+.openerp .oe_form .oe_form_field_char input,
+.openerp .oe_form .oe_form_field_url input,
+.openerp .oe_form .oe_form_field_email input,
+.openerp .oe_form .oe_form_field_text textarea,
+.openerp .oe_form .oe_form_field_selection select {
+ width: 100%;
+}
+.openerp .oe_form .oe_form_field_text.oe_inline, .openerp .oe_form .oe_form_field_text.oe_inline > textarea {
+ width: 500px;
+}
+.openerp .oe_form h1, .openerp .oe_form h2, .openerp .oe_form h3, .openerp .oe_form h4, .openerp .oe_form h5, .openerp .oe_form h6 {
+ margin: 0 0 4px 0;
+}
+.openerp .oe_form h1 input, .openerp .oe_form h2 input, .openerp .oe_form h3 input, .openerp .oe_form h4 input, .openerp .oe_form h5 input, .openerp .oe_form h6 input {
+ height: inherit !important;
+ font-size: inherit;
+}
+.openerp .oe_form .oe_form_field {
+ width: 100%;
+ display: inline-block;
+ padding: 2px 2px 2px 0px;
+}
+.openerp .oe_form .oe_form_field input {
+ margin: 0px;
+}
+.openerp .oe_form input[type="text"], .openerp .oe_form input[type="password"], .openerp .oe_form input[type="file"], .openerp .oe_form select {
+ height: 22px;
+ padding-top: 2px;
+}
+.openerp .oe_form input[type="text"], .openerp .oe_form input[type="password"], .openerp .oe_form input[type="file"], .openerp .oe_form select, .openerp .oe_form textarea {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ background: white;
+ min-width: 60px;
+ color: #1f1f1f;
+}
+.openerp .oe_form input[readonly], .openerp .oe_form select[readonly], .openerp .oe_form textarea[readonly], .openerp .oe_form input[disabled], .openerp .oe_form select[disabled] {
+ background: #e5e5e5 !important;
+ color: #666666;
+}
+.openerp .oe_form textarea[disabled] {
+ border: none;
+ padding-left: 8px;
+ -moz-box-shadow: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-radius: 0px;
+}
+.openerp .oe_form textarea.oe_inline[disabled] {
+ border-left: 8px solid #eeeeee;
+}
+.openerp .oe_form .oe_form_field_url button img {
+ vertical-align: top;
+}
+.openerp .oe_form .oe_form_field_date,
+.openerp .oe_form .oe_form_field_datetime {
+ white-space: nowrap;
+}
+.openerp .oe_form .oe_form_field_boolean {
+ padding-top: 4px;
+ width: auto;
+}
+.openerp .oe_form .oe_datepicker_container {
+ display: none;
+}
+.openerp .oe_form .oe_datepicker_root {
+ display: inline-block;
+}
+.openerp .oe_form .oe_form_required input:not([disabled]):not([readonly]), .openerp .oe_form .oe_form_required select:not([disabled]):not([readonly]), .openerp .oe_form .oe_form_required textarea:not([disabled]):not([readonly]) {
+ background-color: #d2d2ff !important;
+}
+.openerp .oe_form .oe_form_invalid input, .openerp .oe_form .oe_form_invalid select, .openerp .oe_form .oe_form_invalid textarea {
+ background-color: #ff6666 !important;
+ border: 1px solid #dd0000 !important;
+}
+.openerp .oe_form .oe_input_icon {
+ cursor: pointer;
+ margin: 3px 0 0 -21px;
+ vertical-align: top;
+}
+.openerp .oe_form .oe_input_icon_disabled {
+ position: absolute;
+ cursor: default;
+ opacity: 0.5;
+ filter: alpha(opacity=50);
+ right: 5px;
+ top: 3px;
+}
+.openerp .oe_form .oe_form_field_with_button.oe_no_button > .oe_button {
+ display: none;
+}
+.openerp .oe_form .oe_form_field_with_button:not(.oe_no_button) > .oe_button {
+ float: right;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ border-radius: 0;
+ border-bottom-left-radius: 0px;
+ height: 22px;
+}
+.openerp .oe_form .oe_form_field_with_button input {
+ width: 100%;
+}
+.openerp .oe_form .oe_form_field_with_button > div {
+ position: relative;
+ overflow: hidden;
+}
+.openerp .oe_form .oe_form_embedded_html {
+ position: relative;
+ width: 600px;
+ margin-left: 130px;
+ margin-top: 32px;
+ margin-bottom: 32px;
+ text-align: justify;
+}
+.openerp .oe_form_editable .oe_form .oe_form_field_integer input {
+ width: 6em !important;
+}
+.openerp .oe_form_editable .oe_form .oe_form_field_float input {
+ width: 7em !important;
+}
+.openerp .oe_form_editable .oe_form .oe_form_field_date input {
+ width: 7.5em !important;
+}
+.openerp .oe_form_editable .oe_form .oe_form_field_datetime input {
+ width: 11.5em !important;
+}
+.openerp .oe_hidden_input_file {
+ position: relative;
+}
+.openerp .oe_hidden_input_file input.oe_form_binary_file {
+ z-index: 0;
+ line-height: 0;
+ font-size: 12px;
+ position: absolute;
+ top: 1px;
+ left: 0;
+ right: 0;
+ opacity: 0;
+ filter: alpha(opacity=0);
+ -ms-filter: "alpha(opacity=0)";
+ margin: 0;
+ padding: 0;
+}
+.openerp .oe_form .oe_form_field_image {
+ padding: 0;
+ position: relative;
+ display: inline-block;
+ width: auto;
+ vertical-align: top;
+}
+.openerp .oe_form .oe_form_field_image .oe_form_field_image_controls {
+ position: absolute;
+ top: 1px;
+ padding: 4px;
+ width: 100%;
+ display: none;
+ text-align: center;
+ color: #eeeeee;
+ background: rgba(37, 37, 37, 0.9);
+ -moz-border-radius: 3px 3px 0 0;
+ -webkit-border-radius: 3px 3px 0 0;
+ border-radius: 3px 3px 0 0;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+.openerp .oe_form .oe_form_field_image:hover .oe_form_field_image_controls {
+ display: block;
+}
+.openerp .oe_form_field_many2one td:first-child {
+ position: relative;
+}
+.openerp .oe_form_field_many2one span.oe_m2o_drop_down_button {
+ position: absolute;
+ top: 2px;
+ right: 0px;
+}
+.openerp .oe_form_field_many2one .oe_m2o_cm_button {
+ line-height: 14px;
+ float: right;
+ padding-left: 2px;
+}
+.openerp.ui-autocomplete li.oe_m2o_dropdown_option a {
+ font-style: italic;
+ padding-left: 2em;
+}
+.openerp.ui-autocomplete li:not(.oe_m2o_dropdown_option) + li.oe_m2o_dropdown_option {
+ margin-top: 10px;
+}
+.openerp ul.oe_form_status, .openerp ul.oe_form_status_clickable {
+ display: inline-block;
+ margin: 0;
+ padding: 0 18px 0 0;
+}
+.openerp ul.oe_form_status li, .openerp ul.oe_form_status_clickable li {
+ display: inline-block;
+ list-style-type: none;
+ margin: 0 -18px 0 0;
+ padding: 0;
+ background-color: #fcfcfc;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#fcfcfc), to(#dedede));
+ background-image: -webkit-linear-gradient(top, #fcfcfc, #dedede);
+ background-image: -moz-linear-gradient(top, #fcfcfc, #dedede);
+ background-image: -ms-linear-gradient(top, #fcfcfc, #dedede);
+ background-image: -o-linear-gradient(top, #fcfcfc, #dedede);
+ background-image: linear-gradient(to bottom, #fcfcfc, #dedede);
+}
+.openerp ul.oe_form_status li:first-child .label, .openerp ul.oe_form_status_clickable li:first-child .label {
+ border-left: 1px solid #cacaca;
+ padding-left: 14px;
+}
+.openerp ul.oe_form_status li:last-child, .openerp ul.oe_form_status_clickable li:last-child {
+ border-right: 1px solid #cacaca;
+}
+.openerp ul.oe_form_status li:last-child .label, .openerp ul.oe_form_status_clickable li:last-child .label {
+ padding-right: 14px;
+}
+.openerp ul.oe_form_status li:last-child .arrow, .openerp ul.oe_form_status_clickable li:last-child .arrow {
+ display: none;
+}
+.openerp ul.oe_form_status li .label, .openerp ul.oe_form_status_clickable li .label {
+ color: #4c4c4c;
+ text-shadow: 0 1px 1px #fcfcfc, 0 -1px 1px #dedede;
+ padding: 7px;
+ display: inline-block;
+ padding-left: 24px;
+ margin: 0;
+ position: relative;
+}
+.openerp ul.oe_form_status li .arrow, .openerp ul.oe_form_status_clickable li .arrow {
+ width: 17px;
+ display: inline-block;
+ vertical-align: top;
+ overflow: hidden;
+ margin-left: -5px;
+}
+.openerp ul.oe_form_status li .arrow span, .openerp ul.oe_form_status_clickable li .arrow span {
+ position: relative;
+ width: 24px;
+ height: 24px;
+ display: inline-block;
+ margin-left: -12px;
+ margin-top: 3px;
+ box-shadow: -1px 1px 2px rgba(255, 255, 255, 0.2), inset -1px 1px 1px rgba(0, 0, 0, 0.2);
+ background-color: #dedede;
+ background: -moz-linear-gradient(135deg, #dedede, #fcfcfc);
+ background: -o-linear-gradient(135deg, #fcfcfc, #dedede);
+ background: -webkit-gradient(linear, left top, right bottom, from(#fcfcfc), to(#dedede));
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ -o-transform: rotate(45deg);
+ transform: rotate(45deg);
+}
+.openerp ul.oe_form_status li.oe_active, .openerp ul.oe_form_status_clickable li.oe_active {
+ background-color: #729fcf;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#729fcf), to(#3465a4));
+ background-image: -webkit-linear-gradient(top, #729fcf, #3465a4);
+ background-image: -moz-linear-gradient(top, #729fcf, #3465a4);
+ background-image: -ms-linear-gradient(top, #729fcf, #3465a4);
+ background-image: -o-linear-gradient(top, #729fcf, #3465a4);
+ background-image: linear-gradient(to bottom, #729fcf, #3465a4);
+}
+.openerp ul.oe_form_status li.oe_active .arrow span, .openerp ul.oe_form_status_clickable li.oe_active .arrow span {
+ background-color: #3465a4;
+ background: -moz-linear-gradient(135deg, #3465a4, #729fcf);
+ background: -o-linear-gradient(135deg, #729fcf, #3465a4);
+ background: -webkit-gradient(linear, left top, right bottom, from(#729fcf), to(#3465a4));
+}
+.openerp ul.oe_form_status li.oe_active .label, .openerp ul.oe_form_status_clickable li.oe_active .label {
+ color: white;
+ text-shadow: 0 1px 1px #729fcf, 0 -1px 1px #3465a4;
+}
+.openerp ul.oe_form_status_clickable li {
+ cursor: pointer;
+}
+.openerp ul.oe_form_status_clickable li:hover {
+ background-color: #e8e8e8;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#cacaca));
+ background-image: -webkit-linear-gradient(top, #e8e8e8, #cacaca);
+ background-image: -moz-linear-gradient(top, #e8e8e8, #cacaca);
+ background-image: -ms-linear-gradient(top, #e8e8e8, #cacaca);
+ background-image: -o-linear-gradient(top, #e8e8e8, #cacaca);
+ background-image: linear-gradient(to bottom, #e8e8e8, #cacaca);
+}
+.openerp ul.oe_form_status_clickable li:hover .label {
+ text-shadow: 0 -1px 1px #fcfcfc, 0 1px 1px #dedede;
+}
+.openerp ul.oe_form_status_clickable li:hover .arrow span {
+ background-color: #e8e8e8;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#cacaca));
+ background-image: -webkit-linear-gradient(top, #e8e8e8, #cacaca);
+ background-image: -moz-linear-gradient(top, #e8e8e8, #cacaca);
+ background-image: -ms-linear-gradient(top, #e8e8e8, #cacaca);
+ background-image: -o-linear-gradient(top, #e8e8e8, #cacaca);
+ background-image: linear-gradient(to bottom, #e8e8e8, #cacaca);
+}
+.openerp ul.oe_form_status_clickable li .label {
+ color: #7c7bad;
+}
+.openerp ul.oe_form_status_clickable li.oe_active:hover {
+ background-color: #4c85c2;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#4c85c2), to(#284d7d));
+ background-image: -webkit-linear-gradient(top, #4c85c2, #284d7d);
+ background-image: -moz-linear-gradient(top, #4c85c2, #284d7d);
+ background-image: -ms-linear-gradient(top, #4c85c2, #284d7d);
+ background-image: -o-linear-gradient(top, #4c85c2, #284d7d);
+ background-image: linear-gradient(to bottom, #4c85c2, #284d7d);
+}
+.openerp ul.oe_form_status_clickable li.oe_active:hover .label {
+ text-shadow: 0 -1px 1px #729fcf, 0 1px 1px #3465a4;
+}
+.openerp ul.oe_form_status_clickable li.oe_active:hover .arrow span {
+ background-color: #284d7d;
+ background: -moz-linear-gradient(135deg, #284d7d, #4c85c2);
+ background: -o-linear-gradient(135deg, #4c85c2, #284d7d);
+ background: -webkit-gradient(linear, left top, right bottom, from(#4c85c2), to(#284d7d));
+}
+.openerp .oe_form .oe_form_field_one2many > .oe_view_manager .oe_list_pager_single_page {
+ display: none;
+}
+.openerp .oe_form_field_one2many > .oe_view_manager .oe_list_pager_single_page, .openerp .oe_form_field_many2many > .oe_view_manager .oe_list_pager_single_page {
+ display: none !important;
+}
+.openerp .oe_form_field_one2many .oe_form_field_one2many_list_row_add, .openerp .oe_form_field_many2many .oe_form_field_one2many_list_row_add {
+ font-weight: bold;
+}
+.openerp .oe_form_field_one2many .oe_list_content > thead, .openerp .oe_form_field_many2many .oe_list_content > thead {
+ border-bottom: 1px;
+}
+.openerp .oe_form_field_one2many .oe_list_content > tbody tr:nth-child(odd), .openerp .oe_form_field_many2many .oe_list_content > tbody tr:nth-child(odd) {
+ background: transparent;
+}
+.openerp .oe_form_field_one2many .oe_list .oe_list_edit_row_save, .openerp .oe_form_field_many2many .oe_list .oe_list_edit_row_save {
+ background: url(/web/static/src/img/iconset-b-remove.png) 50% 50% no-repeat;
+}
+.openerp .oe_form_field_one2many .oe_list .oe_list_edit_row_save:before, .openerp .oe_form_field_many2many .oe_list .oe_list_edit_row_save:before {
+ visibility: hidden;
+}
+.openerp .oe_form_field_one2many > .oe_view_manager .oe_header_row_top, .openerp .oe_form_field_many2many > .oe_view_manager .oe_header_row_top {
+ display: none;
+}
+.openerp .oe_form_field_one2many > .oe_view_manager .oe_view_manager_header2 td, .openerp .oe_form_field_many2many > .oe_view_manager .oe_view_manager_header2 td {
+ padding: 0px 8px;
+ line-height: 16px;
+}
+.openerp .oe_form_field_one2many > .oe_view_manager .oe_view_manager_header2 td .oe_i, .openerp .oe_form_field_many2many > .oe_view_manager .oe_view_manager_header2 td .oe_i {
+ font-size: 13px;
+}
+.openerp .oe_form_field_one2many > .oe_view_manager .oe_view_manager_header2 td .oe_pager_group, .openerp .oe_form_field_many2many > .oe_view_manager .oe_view_manager_header2 td .oe_pager_group {
+ height: auto;
+ line-height: 16px;
+}
+.openerp .oe_form_field_one2many > .oe_view_manager .oe_view_manager_header2 td .oe_pager_group li, .openerp .oe_form_field_many2many > .oe_view_manager .oe_view_manager_header2 td .oe_pager_group li {
+ height: auto;
+ line-height: 16px;
+}
+.openerp .oe_form_field_one2many .oe_list_buttons.oe_editing .oe_list_save, .openerp .oe_form_field_many2many .oe_list_buttons.oe_editing .oe_list_save {
+ visibility: hidden;
+}
+.openerp .oe_form_editable .oe_list_editable .oe_list_content td.oe_required {
+ background-color: #d2d2ff;
+}
+.openerp .oe_form_editable .oe_list_editable .oe_list_content td.oe_readonly {
+ background-color: #eeeeee;
+}
+.openerp .oe_list_editable .oe_list_content td.oe_list_field_cell {
+ padding: 4px 6px 3px 6px;
+}
+.openerp .oe_list.oe_list_editable td.oe_list_record_delete {
+ position: absolute;
+}
+.openerp .oe_list.oe_list_editable.oe_editing .oe_edition .oe_list_field_cell:not(.oe_readonly) {
+ color: transparent;
+}
+.openerp .oe_list.oe_list_editable.oe_editing .oe_edition .oe_list_field_cell:not(.oe_readonly) * {
+ visibility: hidden;
+}
+.openerp .oe_list.oe_list_editable.oe_editing .oe_m2o_drop_down_button {
+ top: 5px;
+}
+.openerp .oe_list.oe_list_editable.oe_editing .oe_m2o_cm_button {
+ display: none;
+}
+.openerp .oe_list.oe_list_editable.oe_editing .oe_form_field input, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field textarea {
+ height: 27px;
+}
+.openerp .oe_list.oe_list_editable.oe_editing .oe_form_field input, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field textarea {
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ border-radius: 0;
+ border: 1px solid #aaaaff;
+ margin: 0;
+}
+.openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_float input, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_view_integer input {
+ text-align: right;
+ width: 100% !important;
+}
+.openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_datetime > span, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_date > span {
+ width: 100% !important;
+}
+.openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_datetime input.oe_datepicker_master, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_date input.oe_datepicker_master {
+ width: 100% !important;
+}
+.openerp .oe_list.oe_list_editable.oe_editing .oe_form_field .oe_form_field_float, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field .oe_form_view_integer, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_datetime, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_date {
+ min-width: 0 !important;
+ max-width: none !important;
+}
+.openerp .oe_list_group_name {
+ white-space: nowrap;
+}
+.openerp .oe_form .oe_form_field_many2many > .oe_list .oe_list_pager_single_page {
+ display: none;
+}
+.openerp .oe_list_buttons .oe_alternative {
+ visibility: hidden;
+}
+.openerp .oe_list_buttons .oe_list_save, .openerp .oe_list_buttons .oe_list_discard {
+ display: none;
+}
+.openerp .oe_list_buttons.oe_editing .oe_list_add {
+ display: none;
+}
+.openerp .oe_list_buttons.oe_editing .oe_list_save {
+ display: inline-block;
+}
+.openerp .oe_list_buttons.oe_editing .oe_list_discard {
+ display: inline;
+}
+.openerp .oe_list_buttons.oe_editing .oe_alternative {
+ visibility: visible;
+}
+.openerp .oe_list.oe_cannot_edit .oe_list_header_handle, .openerp .oe_list.oe_cannot_edit .oe_list_field_handle {
+ display: none !important;
+ padding: 0 !important;
+}
+.openerp .oe_list.oe_cannot_delete .oe_list_record_delete {
+ display: none !important;
+}
+.openerp .oe_list .oe_form .oe_form_nosheet {
+ margin: 0;
+ padding: 0;
+ border: none;
+}
+.openerp .oe_list .oe_form .oe_form_field {
+ width: auto;
+ position: absolute;
+ margin: 0 !important;
+ padding: 0;
+}
+.openerp .oe_list .oe_list_content .oe_group_header {
+ background-color: #fcfcfc;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#fcfcfc), to(#dedede));
+ background-image: -webkit-linear-gradient(top, #fcfcfc, #dedede);
+ background-image: -moz-linear-gradient(top, #fcfcfc, #dedede);
+ background-image: -ms-linear-gradient(top, #fcfcfc, #dedede);
+ background-image: -o-linear-gradient(top, #fcfcfc, #dedede);
+ background-image: linear-gradient(to bottom, #fcfcfc, #dedede);
+}
+.openerp .oe_list_content {
+ width: 100%;
+}
+.openerp .oe_list_content td:first-child:after, .openerp .oe_list_content th:first-child:after {
+ border-width: 0;
+}
+.openerp .oe_list_content td.oe_number {
+ text-align: right !important;
+ max-width: 100px;
+}
+.openerp .oe_list_content > thead {
+ border-bottom: 2px solid #cacaca;
+ background: #eeeeee;
+ vertical-align: top;
+}
+.openerp .oe_list_content td, .openerp .oe_list_content th {
+ padding: 3px 6px;
+ line-height: 18px;
+}
+.openerp .oe_list_content th.oe_sortable, .openerp .oe_list_content th.oe_sortable div {
+ cursor: pointer;
+}
+.openerp .oe_list_content th.oe_sortable div {
+ position: relative;
+}
+.openerp .oe_list_content th.oe_sortable div:after {
+ position: absolute;
+ right: 6px;
+ content: "";
+ margin-top: 7px;
+ border-width: 0 4px 4px;
+ border-style: solid;
+ border-color: black transparent;
+ visibility: hidden;
+}
+.openerp .oe_list_content th.sortup div:after {
+ visibility: visible;
+ filter: alpha(opacity=60);
+ opacity: 0.6;
+}
+.openerp .oe_list_content th.sortdown div:after {
+ border-bottom: none;
+ border-left: 4px solid transparent;
+ border-right: 4px solid transparent;
+ border-top: 4px solid black;
+ visibility: visible;
+ -moz-box-shadow: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ filter: alpha(opacity=60);
+ opacity: 0.6;
+}
+.openerp .oe_list_content > tbody {
+ cursor: pointer;
+}
+.openerp .oe_list_content > tbody > tr {
+ height: 27px;
+ border-top: 1px solid #dddddd;
+}
+.openerp .oe_list_content > tbody > tr > td.oe_list_field_cell {
+ padding: 3px 6px;
+ white-space: pre-line;
+}
+.openerp .oe_list_content > tbody > tr > td > button, .openerp .oe_list_content > tbody > tr > th > button {
+ border: none;
+ background: transparent;
+ padding: 0;
+ -moz-box-shadow: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+.openerp .oe_list_content > tbody > tr > td.oe_list_checkbox:first-child, .openerp .oe_list_content > tbody > tr th.oe_list_checkbox:first-child {
+ width: 17px;
+}
+.openerp .oe_list_content > tbody > tr > td.oe_list_checkbox:first-child:after, .openerp .oe_list_content > tbody > tr th.oe_list_checkbox:first-child:after {
+ border-width: 0;
+}
+.openerp .oe_list_content > tbody > tr:nth-child(odd) {
+ background-color: #f0f0fa;
+ background-color: #f0f0fa;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f0f0fa), to(#eeeef6));
+ background-image: -webkit-linear-gradient(top, #f0f0fa, #eeeef6);
+ background-image: -moz-linear-gradient(top, #f0f0fa, #eeeef6);
+ background-image: -ms-linear-gradient(top, #f0f0fa, #eeeef6);
+ background-image: -o-linear-gradient(top, #f0f0fa, #eeeef6);
+ background-image: linear-gradient(to bottom, #f0f0fa, #eeeef6);
+}
+.openerp .oe_list_content > tfoot {
+ border-top: 2px solid #cacaca;
+ border-bottom: 1px solid #cacaca;
+ background: #eeeeee;
+ font-weight: bold;
+}
+.openerp .oe_list_content .numeric {
+ text-align: right;
+ width: 82px;
+}
+.openerp .oe_list_content .numeric input {
+ text-align: right;
+}
+.openerp .oe_list_content th.oe_list_header_handle {
+ font-size: 1px;
+ overflow: hidden;
+ text-indent: -9001px;
+}
+.openerp .oe_list_content td.oe_list_field_handle {
+ width: 1em;
+ padding: 0 !important;
+ cursor: ns-resize;
+}
+.openerp .oe_list_content td.oe_list_field_handle .oe_list_handle {
+ font-size: 1px;
+ letter-spacing: -1px;
+ color: transparent;
+ font-weight: normal;
+ margin-right: 7px;
+}
+.openerp .oe_list_content td.oe_list_field_handle .oe_list_handle:before {
+ font: 18px "entypoRegular";
+ content: "}";
+ color: #e0e0e0;
+}
+.openerp .tree_header {
+ background-color: #f0f0f0;
+ border-bottom: 1px solid #cacaca;
+ color: #4c4c4c;
+ padding: 5px;
+ height: 25px;
+}
+.openerp .tree_header button {
+ float: right;
+ height: 27px;
+ margin-right: 5px;
+}
+.openerp .oe-treeview-table {
+ width: 100%;
+ background-color: white;
+ border-spacing: 0;
+ color: #4c4c4c;
+}
+.openerp .oe-treeview-table th {
+ padding: 10px;
+ font-weight: bold;
+ background-color: #f0f0f0;
+ border-bottom: 2px solid #cacaca;
+}
+.openerp .oe-treeview-table td {
+ cursor: pointer;
+ vertical-align: middle;
+ text-align: left;
+ vertical-align: middle;
+ height: 20px;
+ padding-left: 4px;
+ padding-right: 4px;
+ border-right: 1px solid #e7e7e7;
+}
+.openerp .oe-treeview-table td.oe_number {
+ text-align: right !important;
+}
+.openerp .oe-treeview-table tr {
+ border-bottom: 1px solid #d6d6d6;
+}
+.openerp .oe-treeview-table tr:hover {
+ background-color: #e7e7e7;
+}
+.openerp .oe-treeview-table span {
+ font-size: 90%;
+ font-weight: normal;
+ white-space: nowrap;
+ display: block;
+}
+.openerp .oe-treeview-table .treeview-tr.oe-treeview-first {
+ background: transparent url(/web/static/src/img/expand.gif) 0 50% no-repeat;
+}
+.openerp .oe-treeview-table .oe_open .treeview-tr.oe-treeview-first {
+ background-image: url(/web/static/src/img/collapse.gif);
+}
+.openerp .oe-treeview-table .treeview-tr.oe-treeview-first span, .openerp .oe-treeview-table .treeview-td.oe-treeview-first span {
+ margin-left: 16px;
+}
+.openerp .oe_layout_debugging .oe_form_group {
+ outline: 2px dashed green;
+}
+.openerp .oe_layout_debugging .oe_form_group_cell {
+ outline: 1px solid blue;
+}
+.openerp .oe_layout_debugging .oe_form_group:hover, .openerp .oe_layout_debugging .oe_form_group_cell:hover {
+ outline-color: red;
+}
+.openerp .oe_layout_debugging .oe_form_group_row_incomplete > td:last-child:after {
+ content: "[Incomplete Row]";
+ background: red;
+ padding: 2px;
+ font-weight: bold;
+ color: white;
+ float: right;
+}
+.openerp .oe_layout_debugging .oe_form_group_row_incomplete.oe_form_group_row_newline > td:last-child:after {
+ content: "[newline]";
+}
+.openerp .oe_debug_view {
+ float: left;
+}
+.openerp .oe_debug_view_log {
+ font-size: 95%;
+}
+.openerp .oe_debug_view_log label {
+ display: block;
+ width: 49%;
+ text-align: right;
+ float: left;
+ font-weight: bold;
+ color: #000099;
+}
+.openerp .oe_debug_view_log span {
+ display: block;
+ width: 49%;
+ float: right;
+ color: #333333;
+}
.kitten-mode-activated {
background-image: url(http://placekitten.com/g/1365/769);
background-size: cover;
- background-attachment: fixed; }
- .kitten-mode-activated > * {
- opacity: 0.7; }
+ background-attachment: fixed;
+}
+.kitten-mode-activated > * {
+ opacity: 0.7;
+}
div.ui-widget-overlay {
background: black;
filter: alpha(opacity=30);
- opacity: 0.3; }
+ opacity: 0.3;
+}
.ui-widget {
font-family: "Lucida Grande", Helvetica, Verdana, Arial, sans-serif;
color: #4c4c4c;
- font-size: 13px; }
+ font-size: 13px;
+}
.ui-menu {
padding: 2px 0;
@@ -2371,22 +2901,29 @@ div.ui-widget-overlay {
-webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
margin-top: 4px;
- border: 1px solid #afafb6; }
- .ui-menu .ui-menu-item {
- width: 100%;
- padding: 0; }
- .ui-menu .ui-menu-item a {
- padding: 1px 16px; }
- .ui-menu .ui-menu-item a.ui-corner-all {
- -moz-border-radius: 0;
- -webkit-border-radius: 0;
- border-radius: 0; }
- .ui-menu .ui-menu-item a.ui-state-active {
- background: #f0f0fa; }
- .ui-menu .ui-menu-item a.ui-state-hover, .ui-menu .ui-menu-item a.ui-state-active {
- background: #7c7bad; }
+ border: 1px solid #afafb6;
+}
+.ui-menu .ui-menu-item {
+ width: 100%;
+ padding: 0;
+}
+.ui-menu .ui-menu-item a {
+ padding: 1px 16px;
+}
+.ui-menu .ui-menu-item a.ui-corner-all {
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ border-radius: 0;
+}
+.ui-menu .ui-menu-item a.ui-state-active {
+ background: #f0f0fa;
+}
+.ui-menu .ui-menu-item a.ui-state-hover, .ui-menu .ui-menu-item a.ui-state-active {
+ background: #7c7bad;
+}
.ui-corner-all {
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
- border-radius: 3px; }
+ border-radius: 3px;
+}
diff --git a/addons/web/static/src/css/base.sass b/addons/web/static/src/css/base.sass
index 568db634815..f84d30a93ea 100644
--- a/addons/web/static/src/css/base.sass
+++ b/addons/web/static/src/css/base.sass
@@ -1547,7 +1547,9 @@ $sheet-max-width: 860px
padding: 100px 0 0 137px
min-height: 327px
margin-left: -15px
-
+ .oe_view.oe_cannot_create
+ .oe_view_nocontent_create
+ display: none
// }}}
// FormView.base and dynamic tags {{{
.oe_formview
@@ -2081,6 +2083,14 @@ $sheet-max-width: 860px
visibility: visible
.oe_list
+ &.oe_cannot_edit
+ .oe_list_header_handle, .oe_list_field_handle
+ display: none !important
+ padding: 0 !important
+ &.oe_cannot_delete
+ .oe_list_record_delete
+ display: none !important
+
.oe_form
.oe_form_nosheet
margin: 0 // FIXME: either class or border should not be by default
@@ -2178,16 +2188,6 @@ $sheet-max-width: 860px
.oe_list_handle
@include text-to-entypo-icon("}",#E0E0E0,18px)
margin-right: 7px
- .oe_list_cannot_create
- .oe_view_nocontent_create
- display: none
- .oe_list_cannot_edit
- .oe_list_header_handle, .oe_list_field_handle
- display: none !important
- padding: 0 !important
- .oe_list_cannot_delete
- .oe_list_record_delete
- display: none !important
// }}}
// Tree view {{{
.tree_header
diff --git a/addons/web/static/src/js/view_list.js b/addons/web/static/src/js/view_list.js
index 4da6136d3cc..75bf6c2f586 100644
--- a/addons/web/static/src/js/view_list.js
+++ b/addons/web/static/src/js/view_list.js
@@ -252,11 +252,6 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
this.$el.html(QWeb.render(this._template, this));
this.$el.addClass(this.fields_view.arch.attrs['class']);
- // add css classes that reflect the (absence of) access rights
- this.$el.toggleClass('oe_list_cannot_create', !this.is_action_enabled('create'))
- .toggleClass('oe_list_cannot_edit', !this.is_action_enabled('edit'))
- .toggleClass('oe_list_cannot_delete', !this.is_action_enabled('delete'));
-
// Head hook
// Selecting records
this.$el.find('.oe_list_record_selector').click(function(){
diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js
index 66dfba99d9f..d373adf514e 100644
--- a/addons/web/static/src/js/views.js
+++ b/addons/web/static/src/js/views.js
@@ -1161,6 +1161,11 @@ instance.web.View = instance.web.Widget.extend({
}
return view_loaded.pipe(function(r) {
self.trigger('view_loaded', r);
+ // add css classes that reflect the (absence of) access rights
+ self.$el.addClass('oe_view')
+ .toggleClass('oe_cannot_create', !self.is_action_enabled('create'))
+ .toggleClass('oe_cannot_edit', !self.is_action_enabled('edit'))
+ .toggleClass('oe_cannot_delete', !self.is_action_enabled('delete'));
});
},
set_default_options: function(options) {
From 910bb4d24e77638a73cbd369f81966bf22dc2e15 Mon Sep 17 00:00:00 2001
From: Antonin Bourguignon
Date: Tue, 23 Oct 2012 14:15:01 +0200
Subject: [PATCH 56/82] [FIX] only fetch the analytic accounts that the current
user has the right to read, avoiding an access error when calling name_get()
lp bug: https://launchpad.net/bugs/1033505 fixed
bzr revid: abo@openerp.com-20121023121501-gl0wfhdo9zp34wx2
---
addons/analytic/analytic.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/addons/analytic/analytic.py b/addons/analytic/analytic.py
index 1ce483a26cd..21e2d4156fe 100644
--- a/addons/analytic/analytic.py
+++ b/addons/analytic/analytic.py
@@ -255,8 +255,8 @@ class account_analytic_account(osv.osv):
if context is None:
context={}
if context.get('current_model') == 'project.project':
- cr.execute("select analytic_account_id from project_project")
- project_ids = [x[0] for x in cr.fetchall()]
+ project_obj = self.pool.get("account.analytic.account")
+ project_ids = project_obj.search(cr, uid, args)
return self.name_get(cr, uid, project_ids, context=context)
if name:
account = self.search(cr, uid, [('code', '=', name)] + args, limit=limit, context=context)
From f50c720f3e02e211f3d7831a6b88b7d4b8a08f0e Mon Sep 17 00:00:00 2001
From: Fabien Meghazi
Date: Tue, 23 Oct 2012 14:28:33 +0200
Subject: [PATCH 57/82] [ADD] Add menu_id in url state
bzr revid: fme@openerp.com-20121023122833-l9a520bkpe2yty2r
---
addons/web/static/src/js/chrome.js | 1 +
addons/web/static/src/js/views.js | 5 +++++
2 files changed, 6 insertions(+)
diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js
index 3cb4437d1c3..6cf35a14e92 100644
--- a/addons/web/static/src/js/chrome.js
+++ b/addons/web/static/src/js/chrome.js
@@ -1128,6 +1128,7 @@ instance.web.WebClient = instance.web.Client.extend({
}
return $.when(self.action_manager.do_action(action, {
clear_breadcrumbs: true,
+ action_menu_id: self.menu.current_menu,
})).fail(function() {
self.menu.open_menu(options.previous_menu_id);
});
diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js
index d373adf514e..c6b150a4d77 100644
--- a/addons/web/static/src/js/views.js
+++ b/addons/web/static/src/js/views.js
@@ -174,6 +174,9 @@ instance.web.ActionManager = instance.web.Widget.extend({
if(this.inner_action.type == 'ir.actions.act_window') {
state['model'] = this.inner_action.res_model;
}
+ if (this.inner_action.menu_id) {
+ state['menu_id'] = this.inner_action.menu_id;
+ }
if (this.inner_action.id) {
state['action'] = this.inner_action.id;
} else if (this.inner_action.type == 'ir.actions.client') {
@@ -241,6 +244,7 @@ instance.web.ActionManager = instance.web.Widget.extend({
clear_breadcrumbs: false,
on_reverse_breadcrumb: function() {},
on_close: function() {},
+ action_menu_id: null,
});
if (_.isString(action) && instance.web.client_actions.contains(action)) {
var action_client = { type: "ir.actions.client", tag: action };
@@ -266,6 +270,7 @@ instance.web.ActionManager = instance.web.Widget.extend({
pager : !popup && !inline,
display_title : !popup
}, action.flags || {});
+ action.menu_id = options.action_menu_id;
if (!(type in this)) {
console.error("Action manager can't handle action of type " + action.type, action);
return $.Deferred().reject();
From cb713061b57d45162591b979f192994f0a3ce3cf Mon Sep 17 00:00:00 2001
From: Antonin Bourguignon
Date: Tue, 23 Oct 2012 14:38:14 +0200
Subject: [PATCH 58/82] [IMP] var names
bzr revid: abo@openerp.com-20121023123814-wbdrf146em3d39pe
---
addons/analytic/analytic.py | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/addons/analytic/analytic.py b/addons/analytic/analytic.py
index 21e2d4156fe..5ea8c59b848 100644
--- a/addons/analytic/analytic.py
+++ b/addons/analytic/analytic.py
@@ -259,23 +259,23 @@ class account_analytic_account(osv.osv):
project_ids = project_obj.search(cr, uid, args)
return self.name_get(cr, uid, project_ids, context=context)
if name:
- account = self.search(cr, uid, [('code', '=', name)] + args, limit=limit, context=context)
- if not account:
+ account_ids = self.search(cr, uid, [('code', '=', name)] + args, limit=limit, context=context)
+ if not account_ids:
names=map(lambda i : i.strip(),name.split('/'))
for i in range(len(names)):
dom=[('name', operator, names[i])]
if i>0:
- dom+=[('id','child_of',account)]
- account = self.search(cr, uid, dom, limit=limit, context=context)
- newacc = account
+ dom+=[('id','child_of',account_ids)]
+ account_ids = self.search(cr, uid, dom, limit=limit, context=context)
+ newacc = account_ids
while newacc:
newacc = self.search(cr, uid, [('parent_id', 'in', newacc)], limit=limit, context=context)
- account += newacc
+ account_ids += newacc
if args:
- account = self.search(cr, uid, [('id', 'in', account)] + args, limit=limit, context=context)
+ account_ids = self.search(cr, uid, [('id', 'in', account_ids)] + args, limit=limit, context=context)
else:
- account = self.search(cr, uid, args, limit=limit, context=context)
- return self.name_get(cr, uid, account, context=context)
+ account_ids = self.search(cr, uid, args, limit=limit, context=context)
+ return self.name_get(cr, uid, account_ids, context=context)
def create(self, cr, uid, vals, context=None):
contract = super(account_analytic_account, self).create(cr, uid, vals, context=context)
From 8d92a334431a03a655bc42d9f731fdb174ddbdf2 Mon Sep 17 00:00:00 2001
From: niv-openerp
Date: Tue, 23 Oct 2012 14:40:42 +0200
Subject: [PATCH 59/82] [FIX] corrected the field reference
bzr revid: nicolas.vanhoren@openerp.com-20121023124042-u5yfvylxy7a2clfv
---
addons/web/static/src/js/view_form.js | 55 ++++++++++++---------------
1 file changed, 25 insertions(+), 30 deletions(-)
diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js
index 850a334c40b..bd2fed78042 100644
--- a/addons/web/static/src/js/view_form.js
+++ b/addons/web/static/src/js/view_form.js
@@ -4605,16 +4605,6 @@ instance.web.form.FieldReference = instance.web.form.AbstractField.extend(instan
this._super(field_manager, node);
this.reference_ready = true;
},
- on_nop: function() {
- },
- on_selection_changed: function() {
- if (this.reference_ready) {
- var sel = this.selection.get_value();
- this.m2o.field.relation = sel;
- this.m2o.set_value(false);
- this.m2o.$el.toggle(sel !== false);
- }
- },
destroy_content: function() {
if (this.fm) {
this.fm.destroy();
@@ -4655,33 +4645,38 @@ instance.web.form.FieldReference = instance.web.form.AbstractField.extend(instan
.on('focused', null, function () {self.trigger('focused')})
.on('blurred', null, function () {self.trigger('blurred')});
},
- is_false: function() {
- return typeof(this.get_value()) !== 'string';
+ on_selection_changed: function() {
+ if (this.reference_ready) {
+ this.internal_set_value([this.selection.get_value(), false]);
+ this.render_value();
+ }
+ },
+ data_changed: function() {
+ if (this.reference_ready) {
+ this.internal_set_value([this.selection.get_value(), this.m2o.get_value()]);
+ }
+ },
+ set_value: function(val) {
+ if (val) {
+ val = val.split(',');
+ val[0] = val[0] || false;
+ val[1] = val[0] ? (val[1] ? parseInt(val[1], 10) : val[1]) : false;
+ }
+ this._super(val || [false, false]);
+ },
+ get_value: function() {
+ return this.get('value')[0] && this.get('value')[1] ? (this.get('value')[0] + ',' + this.get('value')[1]) : false;
},
render_value: function() {
this.reference_ready = false;
- var vals = [], sel_val, m2o_val;
- if (typeof(this.get('value')) === 'string') {
- vals = this.get('value').split(',');
- }
- sel_val = vals[0] || false;
- m2o_val = vals[1] ? parseInt(vals[1], 10) : vals[1];
if (!this.get("effective_readonly")) {
- this.selection.set_value(sel_val);
+ this.selection.set_value(this.get('value')[0]);
}
- this.m2o.field.relation = sel_val;
- this.m2o.set_value(m2o_val);
+ this.m2o.field.relation = this.get('value')[0];
+ this.m2o.set_value(this.get('value')[1]);
+ this.m2o.$el.toggle(!!this.get('value')[0]);
this.reference_ready = true;
},
- data_changed: function() {
- var model = this.selection.get_value(),
- id = this.m2o.get_value();
- if (typeof(model) === 'string' && typeof(id) === 'number') {
- this.internal_set_value(model + ',' + id);
- } else {
- this.internal_set_value(false);
- }
- },
});
instance.web.form.FieldBinary = instance.web.form.AbstractField.extend(instance.web.form.ReinitializeFieldMixin, {
From 94bc60b31027c36f94d6f07c3a485f4d355b673e Mon Sep 17 00:00:00 2001
From: niv-openerp
Date: Tue, 23 Oct 2012 14:52:13 +0200
Subject: [PATCH 60/82] reverted changes to o2m
bzr revid: nicolas.vanhoren@openerp.com-20121023125213-d7nc1282zmbvk72a
---
addons/web/static/src/js/view_form.js | 25 +++++--------------------
1 file changed, 5 insertions(+), 20 deletions(-)
diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js
index ce6be5b2305..bd2fed78042 100644
--- a/addons/web/static/src/js/view_form.js
+++ b/addons/web/static/src/js/view_form.js
@@ -3234,12 +3234,6 @@ var commands = {
return [6, false, ids];
}
};
-/**
- widget options:
- - reload_on_button: Reload the whole form view if click on a button in a list view.
- If you see this options, do not use it, it's basically a dirty hack to make one
- precise o2m to behave the way we want.
-*/
instance.web.form.FieldOne2Many = instance.web.form.AbstractField.extend({
multi_selection: false,
disable_utility_classes: true,
@@ -3695,8 +3689,7 @@ instance.web.form.One2ManyListView = instance.web.ListView.extend({
readonly: !this.is_action_enabled('edit') || self.o2m.get("effective_readonly")
});
},
- handle_button: function(name, id, call) {
- var _sup = _.bind(this._super, this);
+ do_button_action: function (name, id, callback) {
if (!_.isNumber(id)) {
instance.webclient.notification.warn(
_t("Action Button"),
@@ -3707,22 +3700,14 @@ instance.web.form.One2ManyListView = instance.web.ListView.extend({
var self = this;
this.ensure_saved().pipe(function () {
if (parent_form)
- return parent_form.recursive_save();
+ return parent_form.save();
else
return $.when();
- }).pipe(function () {
- var call;
- debugger;
- if (! self.o2m.options.reload_on_button) {
- call = callback;
- } else {
- call = function() {
- self.o2m.view.recursive_reload();
- };
- }
- _sup(name, id, call);
+ }).then(function () {
+ self.handle_button(name, id, callback);
});
},
+
_before_edit: function () {
this.__ignore_blur = false;
this.editor.form.on('blurred', this, this._on_form_blur);
From cdb0601417a1e114bec809a3082491dbc008cd67 Mon Sep 17 00:00:00 2001
From: niv-openerp
Date: Tue, 23 Oct 2012 14:59:57 +0200
Subject: [PATCH 61/82] got it
bzr revid: nicolas.vanhoren@openerp.com-20121023125957-lfs7yogbygw2uz4a
---
addons/web/static/src/js/view_form.js | 24 ++++++++++++++++++++----
1 file changed, 20 insertions(+), 4 deletions(-)
diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js
index bd2fed78042..72d9725e105 100644
--- a/addons/web/static/src/js/view_form.js
+++ b/addons/web/static/src/js/view_form.js
@@ -3987,9 +3987,12 @@ instance.web.form.FieldMany2ManyTags = instance.web.form.AbstractField.extend(in
},
});
-/*
- * TODO niv: clean those deferred stuff, it could be better
- */
+/**
+ widget options:
+ - reload_on_button: Reload the whole form view if click on a button in a list view.
+ If you see this options, do not use it, it's basically a dirty hack to make one
+ precise o2m to behave the way we want.
+*/
instance.web.form.FieldMany2Many = instance.web.form.AbstractField.extend({
multi_selection: false,
disable_utility_classes: true,
@@ -4118,7 +4121,20 @@ instance.web.form.Many2ManyListView = instance.web.ListView.extend(/** @lends in
readonly: this.getParent().get("effective_readonly")
});
pop.on('write_completed', self, self.reload_content);
- }
+ },
+ do_button_action: function(name, id, callback) {
+ var self = this;
+ var _sup = _.bind(this._super, this);
+ if (! this.m2m_field.options.reload_on_button) {
+ return _sup(name, id, callback);
+ } else {
+ return this.m2m_field.view.save().pipe(function() {
+ return _sup(name, id, function() {
+ self.m2m_field.view.reload();
+ });
+ });
+ }
+ },
});
instance.web.form.FieldMany2ManyKanban = instance.web.form.AbstractField.extend(instance.web.form.CompletionFieldMixin, {
From 9155f0318ec5a180d43449d9f8c5aac58fe8b25b Mon Sep 17 00:00:00 2001
From: Antony Lesuisse
Date: Tue, 23 Oct 2012 16:14:41 +0200
Subject: [PATCH 62/82] [IMP] http dispatching decorators
bzr revid: al@openerp.com-20121023141441-5yc5gso95tl1p157
---
addons/web/http.py | 46 ++++++++++++++++++++++------------------------
1 file changed, 22 insertions(+), 24 deletions(-)
diff --git a/addons/web/http.py b/addons/web/http.py
index 65630768737..1a636971fb5 100644
--- a/addons/web/http.py
+++ b/addons/web/http.py
@@ -128,10 +128,9 @@ class JsonRequest(WebRequest):
"id": null}
"""
- def dispatch(self, controller, method):
+ def dispatch(self, method):
""" Calls the method asked for by the JSON-RPC2 or JSONP request
- :param controller: the instance of the controller which received the request
:param method: the method which received the request
:returns: an utf8 encoded JSON-RPC2 or JSONP reply
@@ -170,9 +169,9 @@ class JsonRequest(WebRequest):
self.jsonrequest = simplejson.loads(request, object_hook=nonliterals.non_literal_decoder)
self.init(self.jsonrequest.get("params", {}))
if _logger.isEnabledFor(logging.DEBUG):
- _logger.debug("--> %s.%s\n%s", controller.__class__.__name__, method.__name__, pprint.pformat(self.jsonrequest))
+ _logger.debug("--> %s.%s\n%s", method.im_class.__name__, method.__name__, pprint.pformat(self.jsonrequest))
response['id'] = self.jsonrequest.get('id')
- response["result"] = method(controller, self, **self.params)
+ response["result"] = method(self, **self.params)
except session.AuthenticationError:
error = {
'code': 100,
@@ -230,16 +229,13 @@ def jsonrequest(f):
the ``session_id``, ``context`` and ``debug`` keys (which are stripped out
beforehand)
"""
- @functools.wraps(f)
- def json_handler(controller, request):
- return JsonRequest(request).dispatch(controller, f)
- json_handler.exposed = True
- return json_handler
+ f.exposed = 'json'
+ return f
class HttpRequest(WebRequest):
""" Regular GET/POST request
"""
- def dispatch(self, controller, method):
+ def dispatch(self, method):
params = dict(self.httprequest.args)
params.update(self.httprequest.form)
params.update(self.httprequest.files)
@@ -250,9 +246,9 @@ class HttpRequest(WebRequest):
akw[key] = value
else:
akw[key] = type(value)
- _logger.debug("%s --> %s.%s %r", self.httprequest.method, controller.__class__.__name__, method.__name__, akw)
+ _logger.debug("%s --> %s.%s %r", self.httprequest.method, method.im_class.__name__, method.__name__, akw)
try:
- r = method(controller, self, **self.params)
+ r = method(self, **self.params)
except xmlrpclib.Fault, e:
r = werkzeug.exceptions.InternalServerError(cgi.escape(simplejson.dumps({
'code': 200,
@@ -317,11 +313,8 @@ def httprequest(f):
merged in the same dictionary), apart from the ``session_id``, ``context``
and ``debug`` keys (which are stripped out beforehand)
"""
- @functools.wraps(f)
- def http_handler(controller, request):
- return HttpRequest(request).dispatch(controller, f)
- http_handler.exposed = True
- return http_handler
+ f.exposed = 'http'
+ return f
#----------------------------------------------------------
# Controller registration with a metaclass
@@ -538,16 +531,21 @@ class Root(object):
"""
if l:
ps = '/' + '/'.join(l)
- meth = 'index'
+ method_name = 'index'
while ps:
c = controllers_path.get(ps)
if c:
- m = getattr(c, meth, None)
- if m and getattr(m, 'exposed', False):
- _logger.debug("Dispatching to %s %s %s", ps, c, meth)
- return m
- ps, _slash, meth = ps.rpartition('/')
- if not ps and meth:
+ method = getattr(c, method_name, None)
+ if method:
+ exposed = getattr(method, 'exposed', False)
+ if exposed == 'json':
+ _logger.debug("Dispatch json to %s %s %s", ps, c, method_name)
+ return lambda request: JsonRequest(request).dispatch(method)
+ elif exposed == 'http':
+ _logger.debug("Dispatch http to %s %s %s", ps, c, method_name)
+ return lambda request: HttpRequest(request).dispatch(method)
+ ps, _slash, method_name = ps.rpartition('/')
+ if not ps and method_name:
ps = '/'
return None
From f57cc2402d2df0b1512c3f8aeeb5ba01024436ba Mon Sep 17 00:00:00 2001
From: "Quentin (OpenERP)"
Date: Tue, 23 Oct 2012 16:47:46 +0200
Subject: [PATCH 63/82] [IMP] survey: code review
bzr revid: qdp-launchpad@openerp.com-20121023144746-aidxyhxho59irw2d
---
addons/survey/survey.py | 6 ++----
addons/survey/survey_view.xml | 2 +-
addons/survey/wizard/survey_answer.py | 4 ++--
addons/survey/wizard/survey_send_invitation.py | 15 ++++++++++-----
4 files changed, 15 insertions(+), 12 deletions(-)
diff --git a/addons/survey/survey.py b/addons/survey/survey.py
index 809079eaedb..3b406484d43 100644
--- a/addons/survey/survey.py
+++ b/addons/survey/survey.py
@@ -152,8 +152,7 @@ class survey(osv.osv):
pages = sur['page_ids']
if not pages:
raise osv.except_osv(_('Warning!'), _('This survey has no question defined. Please define the questions and answers first.'))
- else:
- context.update({'active':False,'survey_id': ids[0]})
+ context.update({'active':False,'survey_id': ids[0]})
return {
'view_type': 'form',
'view_mode': 'form',
@@ -170,8 +169,7 @@ class survey(osv.osv):
pages = sur['page_ids']
if not pages:
raise osv.except_osv(_('Warning!'), _('This survey has no pages defined. Please define pages first.'))
- else:
- context.update({'active':True,'survey_id': ids[0]})
+ context.update({'active':True,'survey_id': ids[0]})
return {
'view_type': 'form',
'view_mode': 'form',
diff --git a/addons/survey/survey_view.xml b/addons/survey/survey_view.xml
index ef3366ee1ee..c01e8b45ce2 100644
--- a/addons/survey/survey_view.xml
+++ b/addons/survey/survey_view.xml
@@ -215,7 +215,7 @@
-
+
diff --git a/addons/survey/wizard/survey_answer.py b/addons/survey/wizard/survey_answer.py
index 7e1417ecdb7..f1a96fa154a 100644
--- a/addons/survey/wizard/survey_answer.py
+++ b/addons/survey/wizard/survey_answer.py
@@ -153,9 +153,9 @@ class survey_question_wiz(osv.osv_memory):
if pag_rec:
title = pag_rec.title
note = pag_rec.note
- question_ids=pag_rec.question_ids
+ question_ids = pag_rec.question_ids
else:
- title=sur_rec.title
+ title = sur_rec.title
xml_form = etree.Element('form', {'string': tools.ustr(title)})
if context.has_key('active') and context.get('active',False) and context.has_key('edit'):
context.update({'page_id' : tools.ustr(p_id),'page_number' : sur_name_rec.page_no , 'transfer' : sur_name_read.transfer})
diff --git a/addons/survey/wizard/survey_send_invitation.py b/addons/survey/wizard/survey_send_invitation.py
index 661c9417180..dd0d6157caf 100644
--- a/addons/survey/wizard/survey_send_invitation.py
+++ b/addons/survey/wizard/survey_send_invitation.py
@@ -67,14 +67,19 @@ class survey_send_invitation(osv.osv_memory):
name += "\t --> " + sur.title + "\n"
if sur.state != 'open':
msg += sur.title + "\n"
- data['mail_subject'] = "Invitation for " + sur.title
- data['mail_subject_existing'] = "Invitation for " + sur.title
+ data['mail_subject'] = _("Invitation for %s") % (sur.title)
+ data['mail_subject_existing'] = "_(Invitation for %s") % (sur.title)
data['mail_from'] = sur.responsible_id.email
if msg:
raise osv.except_osv(_('Warning!'), _('%sSurvey is not in open state') % msg)
- data['mail'] = '''Hello %(name)s, \n\n We are inviting you for following survey. \
- \n ''' + name + '''\n Your login ID: %(login)s, Your password: %(passwd)s
- \n '''+ self.pool.get('ir.config_parameter').get_param(cr, uid, 'web.base.url', default='http://localhost:8069', context=context) + '''\n\n Thanks,'''
+ data['mail'] = _('''
+Hello %(name)s, \n\n
+Please find hereby a survey that we would like you to fill: %s\n
+You can access this survey with the following parameters:
+ Your login ID: %(login)s,\n
+ Your password: %(passwd)s\n
+%s\n\n
+Thanks,''') % (name, self.pool.get('ir.config_parameter').get_param(cr, uid, 'web.base.url', default='http://localhost:8069', context=context))
return data
def create_report(self, cr, uid, res_ids, report_name=False, file_name=False):
From f6a1c4986dc7bcbe2d6d2b0557de00b51ece44c6 Mon Sep 17 00:00:00 2001
From: niv-openerp
Date: Tue, 23 Oct 2012 16:58:58 +0200
Subject: [PATCH 64/82] lot of modifs, still not functionning
bzr revid: nicolas.vanhoren@openerp.com-20121023145858-dg34k7kqi3jkar6z
---
addons/web_graph/controllers/graph.py | 82 +------------
addons/web_graph/static/src/js/graph.js | 154 ++++++++++++++++++++++--
2 files changed, 146 insertions(+), 90 deletions(-)
diff --git a/addons/web_graph/controllers/graph.py b/addons/web_graph/controllers/graph.py
index 21ec7d6e973..bae535a9137 100644
--- a/addons/web_graph/controllers/graph.py
+++ b/addons/web_graph/controllers/graph.py
@@ -8,85 +8,5 @@ class GraphView(openerp.addons.web.controllers.main.View):
@openerp.addons.web.http.jsonrequest
def data_get(self, req, model=None, domain=[], context={}, group_by=[], view_id=False, orientation=False, stacked=False, mode="bar", **kwargs):
- obj = req.session.model(model)
-
- res = obj.fields_view_get(view_id, 'graph')
- fields = res['fields']
- toload = filter(lambda x: x not in fields, group_by)
- if toload:
- fields.update( obj.fields_get(toload, context) )
-
- tree = etree.fromstring(res['arch'])
-
- pos = 0
- xaxis = group_by or []
- yaxis = []
- for field in tree.iter(tag='field'):
- if (field.tag != 'field') or (not field.get('name')):
- continue
- assert field.get('name'), "This tag must have a 'name' attribute."
- if (not group_by) and ((not pos) or field.get('group')):
- xaxis.append(field.get('name'))
- if pos and not field.get('group'):
- yaxis.append(field.get('name'))
- pos += 1
-
- assert len(xaxis), "No field for the X axis!"
- assert len(yaxis), "No field for the Y axis!"
-
- # Convert a field's data into a displayable string
-
- ticks = {}
- def _convert_key(field, data):
- if fields[field]['type']=='many2one':
- data = data and data[0]
- return data
-
- def _convert(field, data, tick=True):
- if fields[field]['type']=='many2one':
- data = data and data[1]
- elif (fields[field]['type']=='selection') and (type(fields[field]['selection']) in (list, tuple)):
- d = dict(fields[field]['selection'])
- data = d[data]
- if tick:
- return ticks.setdefault(data, len(ticks))
- return data or 0
-
- def _orientation(x, y):
- if not orientation:
- return (x,y)
- return (y,x)
-
- result = []
- if mode=="pie":
- res = obj.read_group(domain, yaxis+[xaxis[0]], [xaxis[0]], context=context)
- for record in res:
- result.append( {
- 'data': [(_convert(xaxis[0], record[xaxis[0]]), record[yaxis[0]])],
- 'label': _convert(xaxis[0], record[xaxis[0]], tick=False)
- })
-
- elif (not stacked) or (len(xaxis)<2):
- for x in xaxis:
- res = obj.read_group(domain, yaxis+[x], [x], context=context)
- result.append( {
- 'data': map(lambda record: _orientation(_convert(x, record[x]), record[yaxis[0]] or 0), res),
- 'label': fields[x]['string']
- })
- else:
- xaxis.reverse()
- axis = obj.read_group(domain, yaxis+xaxis[0:1], xaxis[0:1], context=context)
- for x in axis:
- key = x[xaxis[0]]
- res = obj.read_group(domain+[(xaxis[0],'=',_convert_key(xaxis[0], key))], yaxis+xaxis[1:2], xaxis[1:2], context=context)
- result.append( {
- 'data': map(lambda record: _orientation(_convert(xaxis[1], record[xaxis[1]]), record[yaxis[0]] or 0), res),
- 'label': _convert(xaxis[0], key, tick=False)
- })
-
- res = {
- 'data': result,
- 'ticks': map(lambda x: (x[1], x[0]), ticks.items())
- }
- return res
+ pass
diff --git a/addons/web_graph/static/src/js/graph.js b/addons/web_graph/static/src/js/graph.js
index 788ec3bcb3f..0295020dd92 100644
--- a/addons/web_graph/static/src/js/graph.js
+++ b/addons/web_graph/static/src/js/graph.js
@@ -228,15 +228,151 @@ instance.web_graph.GraphView = instance.web.View.extend({
},
graph_get_data: function () {
- return this.rpc('/web_graph/graph/data_get', {
- model: this.dataset.model,
- domain: this.domain,
- context: this.context,
- group_by: this.group_by,
- view_id: this.view_id,
- mode: this.mode,
- orientation: this.orientation,
- stacked: this.stacked
+ var model = this.dataset.model,
+ domain = new instance.web.CompoundDomain(this.domain),
+ context = new instance.web.CompoundContext(this.context),
+ group_by = this.group_by,
+ view_id = this.view_id,
+ mode = this.mode,
+ orientation = this.orientation,
+ stacked = this.stacked;
+
+ var obj = new instance.web.Model(model);
+ var view_get;
+ var fields;
+ var result = [];
+ var ticks = {};
+
+ return obj.call("fields_view_get", [view_id, 'graph']).pipe(function(tmp) {
+ view_get = tmp;
+ fields = view_get['fields'];
+ var toload = _.select(group_by, function(x) { return fields[x] === undefined });
+ if (toload.length >= 1)
+ return obj.call("fields_get", [toload, context]);
+ else
+ return $.when([]);
+ }).pipe(function (fields_to_add) {
+ _.extend(fields, fields_to_add);
+
+ var tree = $($.parseXML(view_get['arch']));
+
+ var pos = 0;
+ var xaxis = group_by || [];
+ var yaxis = [];
+ debugger;
+ tree.find("field").each(function() {
+ var field = $(this);
+ if (! field.attr("name"))
+ return;
+ if ((! group_by) && ((! pos) || field.attr('group'))) {
+ xaxis.push(field.attr('name'));
+ }
+ if (pos && ! field.attr('group')) {
+ yaxis.push(field.attr('name'));
+ }
+ pos += 1;
+ });
+
+ if (xaxis.length === 0)
+ throw new Error("No field for the X axis!");
+ if (yaxis.length === 0)
+ throw new Error("No field for the Y axis!");
+
+ // Convert a field's data into a displayable string
+
+ function _convert_key(field, data) {
+ if (fields[field]['type'] === 'many2one')
+ data = data && data[0];
+ return data;
+ }
+
+ function _convert(field, data, tick) {
+ tick = tick === undefined ? true : false;
+ if (fields[field]['type'] === 'many2one') {
+ data = data && data[1];
+ } else if ((fields[field]['type'] === 'selection') && (fields[field]['selection'] instanceof Array)) {
+ var d = {};
+ _.each(fields[field]['selection'], function(el) {
+ d[el[0]] = el[1];
+ });
+ data = d[data];
+ }
+ if (tick) {
+ if (ticks[data] === undefined)
+ ticks[data] = _.size(ticks);
+ return ticks[data];
+ }
+ return data || 0;
+ }
+
+ function _orientation(x, y) {
+ if (! orientation)
+ return [x, y]
+ return [y, x]
+ }
+
+ if (mode === "pie") {
+ return obj.call("read_group", [domain, yaxis+[xaxis[0]], [xaxis[0]]], {context: context}).pipe(function(res) {
+ _.each(res, function(record) {
+ result.push({
+ 'data': [[_convert(xaxis[0], record[xaxis[0]]), record[yaxis[0]]]],
+ 'label': _convert(xaxis[0], record[xaxis[0]], false)
+ });
+ });
+ });
+ } else if ((! stacked) || (xaxis.length < 2)) {
+ var defs = [];
+ _.each(xaxis, function(x) {
+ defs.push(obj.call("read_group", [domain, yaxis+[x], [x]], {context: context}).pipe(function(res) {
+ return [x, res];
+ }));
+ });
+ return $.when.apply($, defs).pipe(function() {
+ _.each(_.toArray(arguments), function(res) {
+ // TODO: must convert res
+ debugger;
+ var x = res[0];
+ res = res[1];
+ result.push({
+ 'data': _.map(res, function(record) {
+ return _orientation(_convert(x, record[x]), record[yaxis[0]] || 0);
+ }),
+ 'label': fields[x]['string']
+ });
+ });
+ });
+ } else {
+ xaxis.reverse();
+ return obj.call("read_group", [domain, yaxis + xaxis.slice(0, 1), xaxis.slice(0, 1)], {context: context}).pipe(function(axis) {
+ var defs = [];
+ _.each(axis, function(x) {
+ var key = x[xaxis[0]]
+ defs.push(obj.call("read_group", [domain+[(xaxis[0],'=',_convert_key(xaxis[0], key))], yaxis + xaxis.slice(1, 2), xaxis.slice(1, 2)],
+ {context: context}).pipe(function(res) {
+ return [x, key, res];
+ }));
+ });
+ return $.when.apply($, defs).pipe(function(res) {
+ // TODO: must convert res
+ debugger;
+ var x = res[0];
+ var key = res[1];
+ res = res[2];
+ result.push({
+ 'data': _.map(res, function(record) {
+ return _orientation(_convert(xaxis[1], record[xaxis[1]]), record[yaxis[0]] or 0);
+ }),
+ 'label': _convert(xaxis[0], key, false)
+ })
+ });
+ });
+ }
+ }).pipe(function() {
+ var res = {
+ 'data': result,
+ 'ticks': _.map(ticks, function(el, key) { return [el, key] })
+ };
+ return res;
});
},
From 796958fa7c214eaba2c8379cd79a5d86059530f5 Mon Sep 17 00:00:00 2001
From: niv-openerp
Date: Tue, 23 Oct 2012 17:11:23 +0200
Subject: [PATCH 65/82] Currently working for bar charts
bzr revid: nicolas.vanhoren@openerp.com-20121023151123-ebo1edkp65c3dk94
---
addons/web_graph/controllers/graph.py | 82 ++++++++++++++++++++++++-
addons/web_graph/static/src/js/graph.js | 31 ++++------
2 files changed, 94 insertions(+), 19 deletions(-)
diff --git a/addons/web_graph/controllers/graph.py b/addons/web_graph/controllers/graph.py
index bae535a9137..21ec7d6e973 100644
--- a/addons/web_graph/controllers/graph.py
+++ b/addons/web_graph/controllers/graph.py
@@ -8,5 +8,85 @@ class GraphView(openerp.addons.web.controllers.main.View):
@openerp.addons.web.http.jsonrequest
def data_get(self, req, model=None, domain=[], context={}, group_by=[], view_id=False, orientation=False, stacked=False, mode="bar", **kwargs):
- pass
+ obj = req.session.model(model)
+
+ res = obj.fields_view_get(view_id, 'graph')
+ fields = res['fields']
+ toload = filter(lambda x: x not in fields, group_by)
+ if toload:
+ fields.update( obj.fields_get(toload, context) )
+
+ tree = etree.fromstring(res['arch'])
+
+ pos = 0
+ xaxis = group_by or []
+ yaxis = []
+ for field in tree.iter(tag='field'):
+ if (field.tag != 'field') or (not field.get('name')):
+ continue
+ assert field.get('name'), "This tag must have a 'name' attribute."
+ if (not group_by) and ((not pos) or field.get('group')):
+ xaxis.append(field.get('name'))
+ if pos and not field.get('group'):
+ yaxis.append(field.get('name'))
+ pos += 1
+
+ assert len(xaxis), "No field for the X axis!"
+ assert len(yaxis), "No field for the Y axis!"
+
+ # Convert a field's data into a displayable string
+
+ ticks = {}
+ def _convert_key(field, data):
+ if fields[field]['type']=='many2one':
+ data = data and data[0]
+ return data
+
+ def _convert(field, data, tick=True):
+ if fields[field]['type']=='many2one':
+ data = data and data[1]
+ elif (fields[field]['type']=='selection') and (type(fields[field]['selection']) in (list, tuple)):
+ d = dict(fields[field]['selection'])
+ data = d[data]
+ if tick:
+ return ticks.setdefault(data, len(ticks))
+ return data or 0
+
+ def _orientation(x, y):
+ if not orientation:
+ return (x,y)
+ return (y,x)
+
+ result = []
+ if mode=="pie":
+ res = obj.read_group(domain, yaxis+[xaxis[0]], [xaxis[0]], context=context)
+ for record in res:
+ result.append( {
+ 'data': [(_convert(xaxis[0], record[xaxis[0]]), record[yaxis[0]])],
+ 'label': _convert(xaxis[0], record[xaxis[0]], tick=False)
+ })
+
+ elif (not stacked) or (len(xaxis)<2):
+ for x in xaxis:
+ res = obj.read_group(domain, yaxis+[x], [x], context=context)
+ result.append( {
+ 'data': map(lambda record: _orientation(_convert(x, record[x]), record[yaxis[0]] or 0), res),
+ 'label': fields[x]['string']
+ })
+ else:
+ xaxis.reverse()
+ axis = obj.read_group(domain, yaxis+xaxis[0:1], xaxis[0:1], context=context)
+ for x in axis:
+ key = x[xaxis[0]]
+ res = obj.read_group(domain+[(xaxis[0],'=',_convert_key(xaxis[0], key))], yaxis+xaxis[1:2], xaxis[1:2], context=context)
+ result.append( {
+ 'data': map(lambda record: _orientation(_convert(xaxis[1], record[xaxis[1]]), record[yaxis[0]] or 0), res),
+ 'label': _convert(xaxis[0], key, tick=False)
+ })
+
+ res = {
+ 'data': result,
+ 'ticks': map(lambda x: (x[1], x[0]), ticks.items())
+ }
+ return res
diff --git a/addons/web_graph/static/src/js/graph.js b/addons/web_graph/static/src/js/graph.js
index 0295020dd92..3b4a29bc55a 100644
--- a/addons/web_graph/static/src/js/graph.js
+++ b/addons/web_graph/static/src/js/graph.js
@@ -229,13 +229,13 @@ instance.web_graph.GraphView = instance.web.View.extend({
graph_get_data: function () {
var model = this.dataset.model,
- domain = new instance.web.CompoundDomain(this.domain),
- context = new instance.web.CompoundContext(this.context),
- group_by = this.group_by,
- view_id = this.view_id,
- mode = this.mode,
- orientation = this.orientation,
- stacked = this.stacked;
+ domain = new instance.web.CompoundDomain(this.domain || []),
+ context = new instance.web.CompoundContext(this.context || {}),
+ group_by = this.group_by || [],
+ view_id = this.view_id || false,
+ mode = this.mode || 'bar',
+ orientation = this.orientation || false,
+ stacked = this.stacked || false;
var obj = new instance.web.Model(model);
var view_get;
@@ -259,12 +259,11 @@ instance.web_graph.GraphView = instance.web.View.extend({
var pos = 0;
var xaxis = group_by || [];
var yaxis = [];
- debugger;
tree.find("field").each(function() {
var field = $(this);
if (! field.attr("name"))
return;
- if ((! group_by) && ((! pos) || field.attr('group'))) {
+ if ((group_by.length == 0) && ((! pos) || field.attr('group'))) {
xaxis.push(field.attr('name'));
}
if (pos && ! field.attr('group')) {
@@ -312,7 +311,7 @@ instance.web_graph.GraphView = instance.web.View.extend({
}
if (mode === "pie") {
- return obj.call("read_group", [domain, yaxis+[xaxis[0]], [xaxis[0]]], {context: context}).pipe(function(res) {
+ return obj.call("read_group", [domain, yaxis.concat([xaxis[0]]), [xaxis[0]]], {context: context}).pipe(function(res) {
_.each(res, function(record) {
result.push({
'data': [[_convert(xaxis[0], record[xaxis[0]]), record[yaxis[0]]]],
@@ -323,14 +322,12 @@ instance.web_graph.GraphView = instance.web.View.extend({
} else if ((! stacked) || (xaxis.length < 2)) {
var defs = [];
_.each(xaxis, function(x) {
- defs.push(obj.call("read_group", [domain, yaxis+[x], [x]], {context: context}).pipe(function(res) {
+ defs.push(obj.call("read_group", [domain, yaxis.concat([x]), [x]], {context: context}).pipe(function(res) {
return [x, res];
}));
});
return $.when.apply($, defs).pipe(function() {
_.each(_.toArray(arguments), function(res) {
- // TODO: must convert res
- debugger;
var x = res[0];
res = res[1];
result.push({
@@ -343,24 +340,22 @@ instance.web_graph.GraphView = instance.web.View.extend({
});
} else {
xaxis.reverse();
- return obj.call("read_group", [domain, yaxis + xaxis.slice(0, 1), xaxis.slice(0, 1)], {context: context}).pipe(function(axis) {
+ return obj.call("read_group", [domain, yaxis.concat(xaxis.slice(0, 1)), xaxis.slice(0, 1)], {context: context}).pipe(function(axis) {
var defs = [];
_.each(axis, function(x) {
var key = x[xaxis[0]]
- defs.push(obj.call("read_group", [domain+[(xaxis[0],'=',_convert_key(xaxis[0], key))], yaxis + xaxis.slice(1, 2), xaxis.slice(1, 2)],
+ defs.push(obj.call("read_group", [domain+[(xaxis[0],'=',_convert_key(xaxis[0], key))], yaxis.concat(xaxis.slice(1, 2)), xaxis.slice(1, 2)],
{context: context}).pipe(function(res) {
return [x, key, res];
}));
});
return $.when.apply($, defs).pipe(function(res) {
- // TODO: must convert res
- debugger;
var x = res[0];
var key = res[1];
res = res[2];
result.push({
'data': _.map(res, function(record) {
- return _orientation(_convert(xaxis[1], record[xaxis[1]]), record[yaxis[0]] or 0);
+ return _orientation(_convert(xaxis[1], record[xaxis[1]]), record[yaxis[0]] || 0);
}),
'label': _convert(xaxis[0], key, false)
})
From f1e8ad572e31d78376976aab1a9a48526715fec0 Mon Sep 17 00:00:00 2001
From: niv-openerp
Date: Tue, 23 Oct 2012 17:16:15 +0200
Subject: [PATCH 66/82] fixed problem with some other bar chart
bzr revid: nicolas.vanhoren@openerp.com-20121023151615-ptv4was339w13li6
---
addons/web_graph/static/src/js/graph.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/addons/web_graph/static/src/js/graph.js b/addons/web_graph/static/src/js/graph.js
index 3b4a29bc55a..aceb02cdc61 100644
--- a/addons/web_graph/static/src/js/graph.js
+++ b/addons/web_graph/static/src/js/graph.js
@@ -344,8 +344,8 @@ instance.web_graph.GraphView = instance.web.View.extend({
var defs = [];
_.each(axis, function(x) {
var key = x[xaxis[0]]
- defs.push(obj.call("read_group", [domain+[(xaxis[0],'=',_convert_key(xaxis[0], key))], yaxis.concat(xaxis.slice(1, 2)), xaxis.slice(1, 2)],
- {context: context}).pipe(function(res) {
+ defs.push(obj.call("read_group", [new instance.web.CompoundDomain(domain, [[xaxis[0], '=' ,_convert_key(xaxis[0], key)]]),
+ yaxis.concat(xaxis.slice(1, 2)), xaxis.slice(1, 2)], {context: context}).pipe(function(res) {
return [x, key, res];
}));
});
From 4014421326ddd6935a598c1e62505ff5c6708761 Mon Sep 17 00:00:00 2001
From: niv-openerp
Date: Tue, 23 Oct 2012 17:17:40 +0200
Subject: [PATCH 67/82] Regression with bar charts
bzr revid: nicolas.vanhoren@openerp.com-20121023151740-20xaros930r9806p
---
addons/web_graph/static/src/js/graph.js | 22 ++++++++++++----------
1 file changed, 12 insertions(+), 10 deletions(-)
diff --git a/addons/web_graph/static/src/js/graph.js b/addons/web_graph/static/src/js/graph.js
index aceb02cdc61..4e4dd98be9b 100644
--- a/addons/web_graph/static/src/js/graph.js
+++ b/addons/web_graph/static/src/js/graph.js
@@ -349,16 +349,18 @@ instance.web_graph.GraphView = instance.web.View.extend({
return [x, key, res];
}));
});
- return $.when.apply($, defs).pipe(function(res) {
- var x = res[0];
- var key = res[1];
- res = res[2];
- result.push({
- 'data': _.map(res, function(record) {
- return _orientation(_convert(xaxis[1], record[xaxis[1]]), record[yaxis[0]] || 0);
- }),
- 'label': _convert(xaxis[0], key, false)
- })
+ return $.when.apply($, defs).pipe(function() {
+ _.each(_.toArray(arguments), function(res) {
+ var x = res[0];
+ var key = res[1];
+ res = res[2];
+ result.push({
+ 'data': _.map(res, function(record) {
+ return _orientation(_convert(xaxis[1], record[xaxis[1]]), record[yaxis[0]] || 0);
+ }),
+ 'label': _convert(xaxis[0], key, false)
+ })
+ });
});
});
}
From a94b8b432f5e044f155d2ef0a68911b739084595 Mon Sep 17 00:00:00 2001
From: "Quentin (OpenERP)"
Date: Tue, 23 Oct 2012 17:17:40 +0200
Subject: [PATCH 68/82] [FIX] survey: syntax error
bzr revid: qdp-launchpad@openerp.com-20121023151740-wjft48qjgffasaug
---
addons/survey/wizard/survey_send_invitation.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/survey/wizard/survey_send_invitation.py b/addons/survey/wizard/survey_send_invitation.py
index dd0d6157caf..a75cae2f893 100644
--- a/addons/survey/wizard/survey_send_invitation.py
+++ b/addons/survey/wizard/survey_send_invitation.py
@@ -68,7 +68,7 @@ class survey_send_invitation(osv.osv_memory):
if sur.state != 'open':
msg += sur.title + "\n"
data['mail_subject'] = _("Invitation for %s") % (sur.title)
- data['mail_subject_existing'] = "_(Invitation for %s") % (sur.title)
+ data['mail_subject_existing'] = _("Invitation for %s") % (sur.title)
data['mail_from'] = sur.responsible_id.email
if msg:
raise osv.except_osv(_('Warning!'), _('%sSurvey is not in open state') % msg)
From fa11c31eaea1168dbbb79c2646eb75c7458846f4 Mon Sep 17 00:00:00 2001
From: niv-openerp
Date: Tue, 23 Oct 2012 17:26:46 +0200
Subject: [PATCH 69/82] Removed server-side implementation
bzr revid: nicolas.vanhoren@openerp.com-20121023152646-ju42b5dzmckfzi5a
---
addons/web_graph/__init__.py | 1 -
addons/web_graph/controllers/__init__.py | 1 -
addons/web_graph/controllers/graph.py | 92 ------------------------
3 files changed, 94 deletions(-)
delete mode 100644 addons/web_graph/controllers/__init__.py
delete mode 100644 addons/web_graph/controllers/graph.py
diff --git a/addons/web_graph/__init__.py b/addons/web_graph/__init__.py
index ee5959455ad..e69de29bb2d 100644
--- a/addons/web_graph/__init__.py
+++ b/addons/web_graph/__init__.py
@@ -1 +0,0 @@
-import controllers
diff --git a/addons/web_graph/controllers/__init__.py b/addons/web_graph/controllers/__init__.py
deleted file mode 100644
index 7f317cca530..00000000000
--- a/addons/web_graph/controllers/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-import graph
diff --git a/addons/web_graph/controllers/graph.py b/addons/web_graph/controllers/graph.py
deleted file mode 100644
index 21ec7d6e973..00000000000
--- a/addons/web_graph/controllers/graph.py
+++ /dev/null
@@ -1,92 +0,0 @@
-# -*- coding: utf-8 -*-
-import openerp
-
-from lxml import etree
-
-class GraphView(openerp.addons.web.controllers.main.View):
- _cp_path = '/web_graph/graph'
-
- @openerp.addons.web.http.jsonrequest
- def data_get(self, req, model=None, domain=[], context={}, group_by=[], view_id=False, orientation=False, stacked=False, mode="bar", **kwargs):
- obj = req.session.model(model)
-
- res = obj.fields_view_get(view_id, 'graph')
- fields = res['fields']
- toload = filter(lambda x: x not in fields, group_by)
- if toload:
- fields.update( obj.fields_get(toload, context) )
-
- tree = etree.fromstring(res['arch'])
-
- pos = 0
- xaxis = group_by or []
- yaxis = []
- for field in tree.iter(tag='field'):
- if (field.tag != 'field') or (not field.get('name')):
- continue
- assert field.get('name'), "This tag must have a 'name' attribute."
- if (not group_by) and ((not pos) or field.get('group')):
- xaxis.append(field.get('name'))
- if pos and not field.get('group'):
- yaxis.append(field.get('name'))
- pos += 1
-
- assert len(xaxis), "No field for the X axis!"
- assert len(yaxis), "No field for the Y axis!"
-
- # Convert a field's data into a displayable string
-
- ticks = {}
- def _convert_key(field, data):
- if fields[field]['type']=='many2one':
- data = data and data[0]
- return data
-
- def _convert(field, data, tick=True):
- if fields[field]['type']=='many2one':
- data = data and data[1]
- elif (fields[field]['type']=='selection') and (type(fields[field]['selection']) in (list, tuple)):
- d = dict(fields[field]['selection'])
- data = d[data]
- if tick:
- return ticks.setdefault(data, len(ticks))
- return data or 0
-
- def _orientation(x, y):
- if not orientation:
- return (x,y)
- return (y,x)
-
- result = []
- if mode=="pie":
- res = obj.read_group(domain, yaxis+[xaxis[0]], [xaxis[0]], context=context)
- for record in res:
- result.append( {
- 'data': [(_convert(xaxis[0], record[xaxis[0]]), record[yaxis[0]])],
- 'label': _convert(xaxis[0], record[xaxis[0]], tick=False)
- })
-
- elif (not stacked) or (len(xaxis)<2):
- for x in xaxis:
- res = obj.read_group(domain, yaxis+[x], [x], context=context)
- result.append( {
- 'data': map(lambda record: _orientation(_convert(x, record[x]), record[yaxis[0]] or 0), res),
- 'label': fields[x]['string']
- })
- else:
- xaxis.reverse()
- axis = obj.read_group(domain, yaxis+xaxis[0:1], xaxis[0:1], context=context)
- for x in axis:
- key = x[xaxis[0]]
- res = obj.read_group(domain+[(xaxis[0],'=',_convert_key(xaxis[0], key))], yaxis+xaxis[1:2], xaxis[1:2], context=context)
- result.append( {
- 'data': map(lambda record: _orientation(_convert(xaxis[1], record[xaxis[1]]), record[yaxis[0]] or 0), res),
- 'label': _convert(xaxis[0], key, tick=False)
- })
-
- res = {
- 'data': result,
- 'ticks': map(lambda x: (x[1], x[0]), ticks.items())
- }
- return res
-
From 1480c7508a9353c7f77b843c39f5a17efa8bf27f Mon Sep 17 00:00:00 2001
From: niv-openerp
Date: Tue, 23 Oct 2012 17:38:01 +0200
Subject: [PATCH 70/82] Now uses official formatting method
bzr revid: nicolas.vanhoren@openerp.com-20121023153801-l98x0dtpyh6l8vjm
---
addons/web_graph/static/src/js/graph.js | 10 +---------
1 file changed, 1 insertion(+), 9 deletions(-)
diff --git a/addons/web_graph/static/src/js/graph.js b/addons/web_graph/static/src/js/graph.js
index 4e4dd98be9b..df26e6fc123 100644
--- a/addons/web_graph/static/src/js/graph.js
+++ b/addons/web_graph/static/src/js/graph.js
@@ -287,15 +287,7 @@ instance.web_graph.GraphView = instance.web.View.extend({
function _convert(field, data, tick) {
tick = tick === undefined ? true : false;
- if (fields[field]['type'] === 'many2one') {
- data = data && data[1];
- } else if ((fields[field]['type'] === 'selection') && (fields[field]['selection'] instanceof Array)) {
- var d = {};
- _.each(fields[field]['selection'], function(el) {
- d[el[0]] = el[1];
- });
- data = d[data];
- }
+ data = instance.web.format_value(data, fields[field]);
if (tick) {
if (ticks[data] === undefined)
ticks[data] = _.size(ticks);
From b8756e66062d5c1c209861ccc8dee9ab8e8c1f7c Mon Sep 17 00:00:00 2001
From: "Quentin (OpenERP)"
Date: Tue, 23 Oct 2012 20:32:57 +0200
Subject: [PATCH 71/82] [FIX] survey: 'format requires mapping' error fixed
bzr revid: qdp-launchpad@openerp.com-20121023183257-hzl1ed9nhkci7348
---
addons/survey/wizard/survey_send_invitation.py | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/addons/survey/wizard/survey_send_invitation.py b/addons/survey/wizard/survey_send_invitation.py
index a75cae2f893..51b652a2d13 100644
--- a/addons/survey/wizard/survey_send_invitation.py
+++ b/addons/survey/wizard/survey_send_invitation.py
@@ -71,13 +71,13 @@ class survey_send_invitation(osv.osv_memory):
data['mail_subject_existing'] = _("Invitation for %s") % (sur.title)
data['mail_from'] = sur.responsible_id.email
if msg:
- raise osv.except_osv(_('Warning!'), _('%sSurvey is not in open state') % msg)
+ raise osv.except_osv(_('Warning!'), _('The following surveys are not in open state: %s') % msg)
data['mail'] = _('''
-Hello %(name)s, \n\n
+Hello %%(name)s, \n\n
Please find hereby a survey that we would like you to fill: %s\n
You can access this survey with the following parameters:
- Your login ID: %(login)s,\n
- Your password: %(passwd)s\n
+ Your login ID: %%(login)s,\n
+ Your password: %%(passwd)s\n
%s\n\n
Thanks,''') % (name, self.pool.get('ir.config_parameter').get_param(cr, uid, 'web.base.url', default='http://localhost:8069', context=context))
return data
From d78b7a28150f996dd5417377c79bc5282c592aa3 Mon Sep 17 00:00:00 2001
From: Fabien Pinckaers
Date: Tue, 23 Oct 2012 23:13:47 +0200
Subject: [PATCH 72/82] [IMP] accounting
bzr revid: fp@openerp.com-20121023211347-kdodwhdir7p1skgb
---
addons/account/account_view.xml | 26 --------------------------
addons/l10n_be/l10n_be_wizard.yml | 6 +-----
2 files changed, 1 insertion(+), 31 deletions(-)
diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml
index 1b614a1ee85..745795452d3 100644
--- a/addons/account/account_view.xml
+++ b/addons/account/account_view.xml
@@ -2414,32 +2414,6 @@
form
new
-
- ir.actions.server
- True
- code
-
-
-
-# check for unconfigured companies
-account_installer_obj = self.pool.get('account.installer')
-account_installer_obj.check_unconfigured_cmp(cr, uid, context=context)
-action_ids = []
-# fetch the act_window actions related to chart of account configuration
-# we use ir.actions.todo to enable the possibility for other modules to insert their own
-# wizards during the configuration process
-ref = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'account', 'action_wizard_multi_chart')
-if ref:
- action_ids += [ref[1]]
-ref = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'account', 'action_account_configuration_installer')
-if ref:
- action_ids += [ref[1]]
-todo_ids = pool.get('ir.actions.todo').search(cr, uid, [('action_id', 'in', action_ids)], context=context)
-pool.get('ir.actions.todo').write(cr, uid, todo_ids, {'state':'open'}, context=context)
-action = pool.get('res.config').next(cr, uid, [], context)
-
- New Company Financial Setting
-
account.account.graph
diff --git a/addons/l10n_be/l10n_be_wizard.yml b/addons/l10n_be/l10n_be_wizard.yml
index 178009be7ff..0b16827225f 100644
--- a/addons/l10n_be/l10n_be_wizard.yml
+++ b/addons/l10n_be/l10n_be_wizard.yml
@@ -1,10 +1,6 @@
--
- !record {model: ir.actions.todo, id: config_call_account_template}:
- action_id: account.action_wizard_multi_chart
- type: automatic
-
!python {model: ir.actions.todo}: |
- install_todo = self.browse(cr, uid, ref('l10n_be.config_call_account_template'))
+ install_todo = self.browse(cr, uid, ref('account.action_wizard_multi_chart_todo'))
if install_todo.state == 'open':
wiz = self.pool.get('wizard.multi.charts.accounts')
values = {
From 9c712d53365c5d1e4885b33ff2eb7ac2156ca691 Mon Sep 17 00:00:00 2001
From: "Quentin (OpenERP)"
Date: Wed, 24 Oct 2012 00:33:58 +0200
Subject: [PATCH 73/82] [IMP] survey: code review
bzr revid: qdp-launchpad@openerp.com-20121023223358-vqey57o52eyi6fhf
---
addons/survey/survey.py | 2 +-
addons/survey/wizard/survey_send_invitation.py | 9 +++++----
2 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/addons/survey/survey.py b/addons/survey/survey.py
index 3b406484d43..b57f778a5cc 100644
--- a/addons/survey/survey.py
+++ b/addons/survey/survey.py
@@ -77,7 +77,7 @@ class survey(osv.osv):
'tot_comp_survey': lambda * a: 0,
'send_response': lambda * a: 1,
'response_user': lambda * a:1,
- 'date_open': strftime("%Y-%m-%d %H:%M:%S"),
+ 'date_open': fields.datetime.now,
}
def survey_open(self, cr, uid, ids, arg):
diff --git a/addons/survey/wizard/survey_send_invitation.py b/addons/survey/wizard/survey_send_invitation.py
index 51b652a2d13..936e3363bde 100644
--- a/addons/survey/wizard/survey_send_invitation.py
+++ b/addons/survey/wizard/survey_send_invitation.py
@@ -64,7 +64,7 @@ class survey_send_invitation(osv.osv_memory):
msg = ""
name = ""
for sur in survey_obj.browse(cr, uid, context.get('active_ids', []), context=context):
- name += "\t --> " + sur.title + "\n"
+ name += "\n --> " + sur.title + "\n"
if sur.state != 'open':
msg += sur.title + "\n"
data['mail_subject'] = _("Invitation for %s") % (sur.title)
@@ -74,11 +74,12 @@ class survey_send_invitation(osv.osv_memory):
raise osv.except_osv(_('Warning!'), _('The following surveys are not in open state: %s') % msg)
data['mail'] = _('''
Hello %%(name)s, \n\n
-Please find hereby a survey that we would like you to fill: %s\n
+Would you please spent some of your time to fill-in our survey: \n%s\n
You can access this survey with the following parameters:
- Your login ID: %%(login)s,\n
+ URL: %s
+ Your login ID: %%(login)s\n
Your password: %%(passwd)s\n
-%s\n\n
+\n\n
Thanks,''') % (name, self.pool.get('ir.config_parameter').get_param(cr, uid, 'web.base.url', default='http://localhost:8069', context=context))
return data
From b7feab731b1d0e56c22bf338ef476a45eb40debe Mon Sep 17 00:00:00 2001
From: Launchpad Translations on behalf of openerp <>
Date: Wed, 24 Oct 2012 05:20:44 +0000
Subject: [PATCH 74/82] Launchpad automatic translations update.
bzr revid: launchpad_translations_on_behalf_of_openerp-20121024045536-py0ehkq8nazb5en1
bzr revid: launchpad_translations_on_behalf_of_openerp-20121024045556-v4pmdh85f6qnn1f6
bzr revid: launchpad_translations_on_behalf_of_openerp-20121024052044-ajcrxdgxe6plx868
---
addons/crm_claim/i18n/ru.po | 28 +--
addons/l10n_mx/i18n/es_MX.po | 2 +-
addons/resource/i18n/ru.po | 10 +-
addons/sale/i18n/ru.po | 52 ++---
addons/web/i18n/ru.po | 122 +++++-----
addons/web_calendar/i18n/ru.po | 52 ++---
addons/web_graph/i18n/ru.po | 38 ++--
openerp/addons/base/i18n/ru.po | 394 +++++++++++++++++----------------
8 files changed, 351 insertions(+), 347 deletions(-)
diff --git a/addons/crm_claim/i18n/ru.po b/addons/crm_claim/i18n/ru.po
index 88435961627..cea6d33e47d 100644
--- a/addons/crm_claim/i18n/ru.po
+++ b/addons/crm_claim/i18n/ru.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
-"PO-Revision-Date: 2011-03-16 00:04+0000\n"
-"Last-Translator: FULL NAME \n"
+"PO-Revision-Date: 2012-10-24 04:51+0000\n"
+"Last-Translator: Chertykov Denis \n"
"Language-Team: Russian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:33+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-24 04:55+0000\n"
+"X-Generator: Launchpad (build 16179)\n"
#. module: crm_claim
#: field:crm.claim.report,nbr:0
@@ -85,12 +85,12 @@ msgstr ""
#: code:addons/crm_claim/crm_claim.py:132
#, python-format
msgid "The claim '%s' has been opened."
-msgstr ""
+msgstr "Претензия '%s' была открыта"
#. module: crm_claim
#: view:crm.claim:0
msgid "Date Closed"
-msgstr ""
+msgstr "Дата закрытия"
#. module: crm_claim
#: view:crm.claim.report:0
@@ -151,12 +151,12 @@ msgstr "Ссылка"
#. module: crm_claim
#: view:crm.claim.report:0
msgid "Date of claim"
-msgstr ""
+msgstr "Дата претензии"
#. module: crm_claim
#: view:crm.claim:0
msgid "All pending Claims"
-msgstr ""
+msgstr "Все ожидающие претензии"
#. module: crm_claim
#: view:crm.claim.report:0
@@ -187,7 +187,7 @@ msgstr "Контрагент"
#. module: crm_claim
#: view:crm.claim.report:0
msgid "Month of claim"
-msgstr ""
+msgstr "Месяц претензии"
#. module: crm_claim
#: selection:crm.claim,type_action:0
@@ -227,7 +227,7 @@ msgstr "Отправить новое эл. письмо"
#: selection:crm.claim,state:0
#: view:crm.claim.report:0
msgid "New"
-msgstr ""
+msgstr "Новый"
#. module: crm_claim
#: view:crm.claim:0
@@ -254,7 +254,7 @@ msgstr "Следующее действие"
#. module: crm_claim
#: view:crm.claim.report:0
msgid "My Sales Team(s)"
-msgstr ""
+msgstr "Мои отделы продаж"
#. module: crm_claim
#: model:crm.case.stage,name:crm_claim.stage_claim3
@@ -321,7 +321,7 @@ msgstr "Контакт"
#. module: crm_claim
#: view:crm.claim.report:0
msgid "Month-1"
-msgstr ""
+msgstr "Месяц-1"
#. module: crm_claim
#: model:ir.actions.act_window,name:crm_claim.action_report_crm_claim
@@ -380,7 +380,7 @@ msgstr "Дата изменения"
#. module: crm_claim
#: view:crm.claim.report:0
msgid "Year of claim"
-msgstr ""
+msgstr "Год претензи"
#. module: crm_claim
#: view:crm.claim.report:0
@@ -402,7 +402,7 @@ msgstr "Значение претензии"
#. module: crm_claim
#: view:crm.claim:0
msgid "Responsible User"
-msgstr ""
+msgstr "Ответственный пользователь"
#. module: crm_claim
#: help:crm.claim,email_cc:0
diff --git a/addons/l10n_mx/i18n/es_MX.po b/addons/l10n_mx/i18n/es_MX.po
index eec525b5f53..305ec408af2 100644
--- a/addons/l10n_mx/i18n/es_MX.po
+++ b/addons/l10n_mx/i18n/es_MX.po
@@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-23 04:48+0000\n"
+"X-Launchpad-Export-Date: 2012-10-24 04:55+0000\n"
"X-Generator: Launchpad (build 16179)\n"
#. module: l10n_mx
diff --git a/addons/resource/i18n/ru.po b/addons/resource/i18n/ru.po
index 7a7f5e82dbd..a5192a83647 100644
--- a/addons/resource/i18n/ru.po
+++ b/addons/resource/i18n/ru.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2012-02-08 00:37+0000\n"
-"PO-Revision-Date: 2012-05-10 18:26+0000\n"
+"PO-Revision-Date: 2012-10-23 18:55+0000\n"
"Last-Translator: Chertykov Denis \n"
"Language-Team: Russian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:30+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-24 04:55+0000\n"
+"X-Generator: Launchpad (build 16179)\n"
#. module: resource
#: help:resource.calendar.leaves,resource_id:0
@@ -107,7 +107,7 @@ msgstr "Рабочее время начнется с"
#. module: resource
#: constraint:resource.calendar.leaves:0
msgid "Error! leave start-date must be lower then leave end-date."
-msgstr ""
+msgstr "Ошибка! Дата начала отгула должна быть раньше даты завершения."
#. module: resource
#: model:ir.model,name:resource.model_resource_calendar
@@ -324,7 +324,7 @@ msgstr "(отпуск)"
#: code:addons/resource/resource.py:392
#, python-format
msgid "Configuration Error!"
-msgstr ""
+msgstr "Ошибка конфигурации!"
#. module: resource
#: selection:resource.resource,resource_type:0
diff --git a/addons/sale/i18n/ru.po b/addons/sale/i18n/ru.po
index b689b1b1946..a67f7c78b4c 100644
--- a/addons/sale/i18n/ru.po
+++ b/addons/sale/i18n/ru.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-09-20 07:29+0000\n"
-"PO-Revision-Date: 2012-09-10 14:56+0000\n"
+"PO-Revision-Date: 2012-10-23 18:53+0000\n"
"Last-Translator: Chertykov Denis \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:12+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-24 04:55+0000\n"
+"X-Generator: Launchpad (build 16179)\n"
#. module: sale
#: code:addons/sale/wizard/sale_make_invoice_advance.py:215
@@ -235,7 +235,7 @@ msgstr "В счет"
#: view:sale.order.line:0
#: field:sale.report,product_uom:0
msgid "Unit of Measure"
-msgstr ""
+msgstr "Единицы измерения"
#. module: sale
#: help:sale.order,date_confirm:0
@@ -264,7 +264,7 @@ msgstr ""
#. module: sale
#: selection:sale.advance.payment.inv,advance_payment_method:0
msgid "Invoice the whole sale order"
-msgstr ""
+msgstr "Выставить счет на весь заказ продажи"
#. module: sale
#: field:sale.order,project_id:0
@@ -304,12 +304,12 @@ msgstr "Исключение счета"
#. module: sale
#: view:account.config.settings:0
msgid "0"
-msgstr ""
+msgstr "0"
#. module: sale
#: selection:sale.order,state:0
msgid "Draft Quotation"
-msgstr ""
+msgstr "Черновик предложения"
#. module: sale
#: code:addons/sale/wizard/sale_make_invoice_advance.py:124
@@ -359,23 +359,23 @@ msgstr "Вес"
#. module: sale
#: view:sale.config.settings:0
msgid "Warehouse Features"
-msgstr ""
+msgstr "Особенности склада"
#. module: sale
#: view:sale.order:0
msgid "Quotation "
-msgstr ""
+msgstr "Предложение "
#. module: sale
#: field:sale.order.line,product_uom:0
msgid "Unit of Measure "
-msgstr ""
+msgstr "Единица измерения "
#. module: sale
#: code:addons/sale/wizard/sale_make_invoice_advance.py:148
#, python-format
msgid "Incorrect Data"
-msgstr ""
+msgstr "Неверные данные"
#. module: sale
#: code:addons/sale/wizard/sale_make_invoice_advance.py:149
@@ -401,7 +401,7 @@ msgstr "Заказ"
#. module: sale
#: field:sale.order,message_ids:0
msgid "Messages"
-msgstr ""
+msgstr "Сообщения"
#. module: sale
#: selection:sale.report,month:0
@@ -422,7 +422,7 @@ msgstr "Сумма до налогов"
#. module: sale
#: field:sale.config.settings,module_project:0
msgid "Project"
-msgstr ""
+msgstr "Проект"
#. module: sale
#: code:addons/sale/sale.py:319
@@ -433,7 +433,7 @@ msgstr ""
#: code:addons/sale/wizard/sale_make_invoice_advance.py:123
#, python-format
msgid "Error!"
-msgstr ""
+msgstr "Ошибка!"
#. module: sale
#: report:sale.order:0
@@ -467,7 +467,7 @@ msgstr "Позиции заказа продаж относящиеся к мо
#. module: sale
#: selection:sale.order,state:0
msgid "Quotation Sent"
-msgstr ""
+msgstr "Предложение отправлено"
#. module: sale
#: help:sale.order,message_unread:0
@@ -528,12 +528,12 @@ msgstr "Налог"
#: code:addons/sale/sale.py:986
#, python-format
msgid "Invalid Action!"
-msgstr ""
+msgstr "Неверное действие!"
#. module: sale
#: view:sale.report:0
msgid "Reference Unit of Measure"
-msgstr ""
+msgstr "Базовая единица измерения"
#. module: sale
#: field:sale.report,date_confirm:0
@@ -572,7 +572,7 @@ msgstr "Факс :"
#. module: sale
#: view:sale.order:0
msgid "(update)"
-msgstr ""
+msgstr "(обновление)"
#. module: sale
#: help:sale.config.settings,group_discount_per_so_line:0
@@ -635,7 +635,7 @@ msgstr "Подтвердить"
#. module: sale
#: view:sale.order:0
msgid "Unread messages"
-msgstr ""
+msgstr "Непрочитанные сообщения"
#. module: sale
#: field:sale.order,partner_shipping_id:0
@@ -673,12 +673,12 @@ msgstr "Заказы продаж, которые еще не были подт
#. module: sale
#: field:sale.order,message_unread:0
msgid "Unread Messages"
-msgstr ""
+msgstr "Непрочитанные сообщения"
#. module: sale
#: view:sale.order:0
msgid "Print"
-msgstr ""
+msgstr "Печать"
#. module: sale
#: report:sale.order:0
@@ -793,12 +793,12 @@ msgstr "Год заказа в заказе продаж"
#. module: sale
#: field:sale.config.settings,module_sale_stock:0
msgid "Sale and Warehouse Management"
-msgstr ""
+msgstr "Управление продажами и складом"
#. module: sale
#: model:ir.model,name:sale.model_sale_config_settings
msgid "sale.config.settings"
-msgstr ""
+msgstr "sale.config.settings"
#. module: sale
#: field:sale.advance.payment.inv,qtty:0
@@ -842,7 +842,7 @@ msgstr ""
#. module: sale
#: view:sale.config.settings:0
msgid "Default Options"
-msgstr ""
+msgstr "Параметры по умолчанию"
#. module: sale
#: code:addons/sale/sale.py:963
@@ -850,12 +850,12 @@ msgstr ""
#: code:addons/sale/wizard/sale_make_invoice_advance.py:142
#, python-format
msgid "Configuration Error!"
-msgstr ""
+msgstr "Ошибка конфигурации!"
#. module: sale
#: field:account.config.settings,group_analytic_account_for_sales:0
msgid "Analytic accounting for sales"
-msgstr ""
+msgstr "Аналитический учет для продаж"
#. module: sale
#: view:sale.order:0
diff --git a/addons/web/i18n/ru.po b/addons/web/i18n/ru.po
index d310793240d..fa80053a306 100644
--- a/addons/web/i18n/ru.po
+++ b/addons/web/i18n/ru.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2012-07-02 09:06+0200\n"
-"PO-Revision-Date: 2012-02-20 07:27+0000\n"
-"Last-Translator: Aleksei Motsik \n"
+"PO-Revision-Date: 2012-10-23 14:30+0000\n"
+"Last-Translator: Chertykov Denis \n"
"Language-Team: Russian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-21 05:02+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-24 05:20+0000\n"
+"X-Generator: Launchpad (build 16179)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:176
@@ -129,62 +129,62 @@ msgstr "OpenERP - Не поддерживаемая/Community Версия"
#. openerp-web
#: addons/web/static/src/js/coresetup.js:619
msgid "less than a minute ago"
-msgstr ""
+msgstr "меньше минуты назад"
#. openerp-web
#: addons/web/static/src/js/coresetup.js:620
msgid "about a minute ago"
-msgstr ""
+msgstr "примерно минуту назад"
#. openerp-web
#: addons/web/static/src/js/coresetup.js:621
#, python-format
msgid "%d minutes ago"
-msgstr ""
+msgstr "%d минут назад"
#. openerp-web
#: addons/web/static/src/js/coresetup.js:622
msgid "about an hour ago"
-msgstr ""
+msgstr "примерно час назад"
#. openerp-web
#: addons/web/static/src/js/coresetup.js:623
#, python-format
msgid "%d hours ago"
-msgstr ""
+msgstr "%d часов назад"
#. openerp-web
#: addons/web/static/src/js/coresetup.js:624
msgid "a day ago"
-msgstr ""
+msgstr "день назад"
#. openerp-web
#: addons/web/static/src/js/coresetup.js:625
#, python-format
msgid "%d days ago"
-msgstr ""
+msgstr "%d дней назад"
#. openerp-web
#: addons/web/static/src/js/coresetup.js:626
msgid "about a month ago"
-msgstr ""
+msgstr "примерно месяц назад"
#. openerp-web
#: addons/web/static/src/js/coresetup.js:627
#, python-format
msgid "%d months ago"
-msgstr ""
+msgstr "%d месяцев/месяца назад"
#. openerp-web
#: addons/web/static/src/js/coresetup.js:628
msgid "about a year ago"
-msgstr ""
+msgstr "примерно год назад"
#. openerp-web
#: addons/web/static/src/js/coresetup.js:629
#, python-format
msgid "%d years ago"
-msgstr ""
+msgstr "%d лет назад"
#. openerp-web
#: addons/web/static/src/js/data_export.js:6
@@ -290,18 +290,18 @@ msgstr ""
#: addons/web/static/src/js/search.js:948
#, python-format
msgid "Filter on: %s"
-msgstr ""
+msgstr "Фильтр по: %s"
#. openerp-web
#: addons/web/static/src/js/search.js:999
msgid "Filter"
-msgstr ""
+msgstr "Фильтр"
#. openerp-web
#: addons/web/static/src/js/search.js:1108
#, python-format
msgid "Group by: %s"
-msgstr ""
+msgstr "Группировать по: %s"
#. openerp-web
#: addons/web/static/src/js/search.js:1132
@@ -312,7 +312,7 @@ msgstr ""
#: addons/web/static/src/js/search.js:1267
#, python-format
msgid "Search %(field)s for: %(value)s"
-msgstr ""
+msgstr "Искать %(field)s для: %(value)s"
#. openerp-web
#: addons/web/static/src/js/search.js:869
@@ -339,7 +339,7 @@ msgstr "Нет"
#: addons/web/static/src/js/search.js:1416
#, python-format
msgid "Search %(field)s at: %(value)s"
-msgstr ""
+msgstr "Искать %(field)s в: %(value)s"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1286
@@ -349,13 +349,13 @@ msgstr "Фильтры"
#. openerp-web
#: addons/web/static/src/js/search.js:1762
msgid "Advanced"
-msgstr ""
+msgstr "Расширенный"
#. openerp-web
#: addons/web/static/src/js/search.js:1853
#, python-format
msgid "%(field)s %(operator)s \"%(value)s\""
-msgstr ""
+msgstr "%(field)s %(operator)s \"%(value)s\""
#. openerp-web
#: addons/web/static/src/js/search.js:1341
@@ -633,12 +633,12 @@ msgstr "Добавить: "
#. openerp-web
#: addons/web/static/src/js/view_form.js:4230
msgid "Save As..."
-msgstr ""
+msgstr "Сохранить как..."
#. openerp-web
#: addons/web/static/src/js/view_form.js:4230
msgid "The field is empty, there's nothing to save !"
-msgstr ""
+msgstr "Поле пусто, нечего сохранять !"
#. openerp-web
#: addons/web/static/src/js/view_list.js:8
@@ -680,7 +680,7 @@ msgstr "Внимание"
#. openerp-web
#: addons/web/static/src/js/view_list.js:716
msgid "You must select at least one record."
-msgstr ""
+msgstr "Вы должны выбрать хотя бы одну запись ."
#. openerp-web
#: addons/web/static/src/js/view_list.js:1243
@@ -728,17 +728,17 @@ msgstr "Не удалось найти определение текущего
#. openerp-web
#: addons/web/static/src/js/views.js:716
msgid "Print"
-msgstr ""
+msgstr "Печать"
#. openerp-web
#: addons/web/static/src/js/views.js:717
msgid "Attachment"
-msgstr ""
+msgstr "Вложение"
#. openerp-web
#: addons/web/static/src/js/views.js:718 addons/web/static/src/xml/base.xml:276
msgid "More"
-msgstr ""
+msgstr "Еще"
#. openerp-web
#: addons/web/static/src/js/views.js:810
@@ -758,12 +758,12 @@ msgstr "Вы должны выбрать хотя бы одну запись."
#. openerp-web
#: addons/web/static/src/js/views.js:875
msgid "Uploading..."
-msgstr ""
+msgstr "Загрузка..."
#. openerp-web
#: addons/web/static/src/js/views.js:885
msgid "Do you really want to delete this attachment ?"
-msgstr ""
+msgstr "Вы действительно хотите удалить это вложение?"
#. openerp-web
#: addons/web/static/src/js/views.js:962
@@ -913,7 +913,7 @@ msgstr "Пароль Администратора:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:95
msgid "Confirm password:"
-msgstr "Подтверждение пароля:"
+msgstr "Подтвердите пароль:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:109
@@ -960,17 +960,17 @@ msgstr "Подтвердить мастер-пароль:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:325
msgid "About OpenERP"
-msgstr ""
+msgstr "Об OpenERP"
#. openerp-web
#: addons/web/static/src/xml/base.xml:327
msgid "Log out"
-msgstr ""
+msgstr "Выход"
#. openerp-web
#: addons/web/static/src/xml/base.xml:333
msgid "Activate the developer mode"
-msgstr ""
+msgstr "Включить режим разработчика"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1820
@@ -1030,12 +1030,12 @@ msgstr "Пароль ещё раз:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:390
msgid "Open"
-msgstr ""
+msgstr "Открыть"
#. openerp-web
#: addons/web/static/src/xml/base.xml:390
msgid "ERP"
-msgstr ""
+msgstr "ERP"
#. openerp-web
#: addons/web/static/src/xml/base.xml:477
@@ -1050,7 +1050,7 @@ msgstr "Просмотр Лога (доступ на чтение)"
#. openerp-web
#: addons/web/static/src/xml/base.xml:450
msgid "Toggle Form Layout Outline"
-msgstr ""
+msgstr "Переключить структуры макета формы"
#. openerp-web
#: addons/web/static/src/xml/base.xml:479
@@ -1115,28 +1115,28 @@ msgstr "Дата изменения:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:518
msgid "Delete this attachment"
-msgstr ""
+msgstr "Удалить вложение"
#. openerp-web
#: addons/web/static/src/xml/base.xml:523
msgid "/web/binary/upload_attachment"
-msgstr ""
+msgstr "/web/binary/upload_attachment"
#. openerp-web
#: addons/web/static/src/xml/base.xml:527
msgid "Add..."
-msgstr ""
+msgstr "Добавить..."
#. openerp-web
#: addons/web/static/src/xml/base.xml:622
#: addons/web/static/src/xml/base.xml:687
msgid "or"
-msgstr ""
+msgstr "или"
#. openerp-web
#: addons/web/static/src/xml/base.xml:687
msgid "Discard"
-msgstr ""
+msgstr "Отменить"
#. openerp-web
#: addons/web/static/src/xml/base.xml:806
@@ -1242,13 +1242,13 @@ msgstr "Выбрать дату"
#. openerp-web
#: addons/web/static/src/xml/base.xml:948
msgid "Open Resource"
-msgstr ""
+msgstr "Открыть ресурс"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1162
#: addons/web/static/src/xml/base.xml:1205
msgid "Set Image"
-msgstr "Назначить изображение"
+msgstr "Установить изображение"
#. openerp-web
#: addons/web/static/src/js/view_form.js:1623
@@ -1263,12 +1263,12 @@ msgstr "Очистить"
#: addons/web/static/src/xml/base.xml:1179
#: addons/web/static/src/xml/base.xml:1230
msgid "Uploading ..."
-msgstr "Загружаю ..."
+msgstr "Загружается ..."
#. openerp-web
#: addons/web/static/src/xml/base.xml:1066
msgid "width: 83px;"
-msgstr ""
+msgstr "ширина: 83px ;"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1207
@@ -1320,7 +1320,7 @@ msgstr "Поле"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1205
msgid "Advanced Search..."
-msgstr ""
+msgstr "Расширенный поиск..."
#. openerp-web
#: addons/web/static/src/xml/base.xml:1287
@@ -1355,22 +1355,22 @@ msgstr "(Имеющийся фильтр с таким же имененем б
#. openerp-web
#: addons/web/static/src/xml/base.xml:1376
msgid "Custom Filters"
-msgstr ""
+msgstr "Настраиваемые фильтры"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1379
msgid "Save current filter"
-msgstr ""
+msgstr "Сохранить текущий фильтр"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1381
msgid "Filter name"
-msgstr ""
+msgstr "Название фильтра"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1383
msgid "Share with all users"
-msgstr ""
+msgstr "Совместно со всеми пользователями"
#. openerp-web
#: addons/web/static/src/js/search.js:298
@@ -1381,32 +1381,32 @@ msgstr "Добавить на Панель"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1394
msgid "Title of new Dashboard item"
-msgstr ""
+msgstr "Название нового элемента панели"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1395
msgid "save"
-msgstr ""
+msgstr "сохранить"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1399
msgid "Select Dashboard to add this filter to"
-msgstr ""
+msgstr "Выберите панель, чтобы добавить этот фильтр"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1406
msgid "Advanced Search"
-msgstr ""
+msgstr "Расширенный поиск"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1411
msgid "Add a condition"
-msgstr ""
+msgstr "Добавить условие"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1412
msgid "Apply"
-msgstr ""
+msgstr "Применить"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1509
@@ -1426,9 +1426,9 @@ msgid ""
" You can export all data or only the fields that can be "
"reimported after modification."
msgstr ""
-"Этот мастер экспортирует все найденные данные в CSV файл.\n"
-" Вы можете экспортровать все данные либо только те поля которые "
-"могут быть в последствии импортированны."
+"Этот мастер экспортирует все найденные данные в CSV-файл.\n"
+" Вы можете экспортировать все данные, либо только те поля которые "
+"должны быть в последствии импортированы после изменений."
#. openerp-web
#: addons/web/static/src/xml/base.xml:1624
@@ -1562,7 +1562,7 @@ msgstr ""
#. openerp-web
#: addons/web/static/src/xml/base.xml:1713
msgid "--- Don't Import ---"
-msgstr ""
+msgstr "--- Не импортировать ---"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1809
diff --git a/addons/web_calendar/i18n/ru.po b/addons/web_calendar/i18n/ru.po
index aee0856a51d..c286c58bf1a 100644
--- a/addons/web_calendar/i18n/ru.po
+++ b/addons/web_calendar/i18n/ru.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2012-07-02 09:06+0200\n"
-"PO-Revision-Date: 2012-01-13 11:40+0000\n"
-"Last-Translator: Aleksei Motsik \n"
+"PO-Revision-Date: 2012-10-23 14:08+0000\n"
+"Last-Translator: Chertykov Denis \n"
"Language-Team: Russian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-21 05:03+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-24 05:20+0000\n"
+"X-Generator: Launchpad (build 16179)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11
@@ -25,114 +25,114 @@ msgstr "Календарь"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:70
msgid "Filter"
-msgstr ""
+msgstr "Фильтр"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:144
msgid "Today"
-msgstr ""
+msgstr "Сегодня"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:145
msgid "Day"
-msgstr ""
+msgstr "День"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:146
msgid "Week"
-msgstr ""
+msgstr "Неделя"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:147
msgid "Month"
-msgstr ""
+msgstr "Месяц"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:148
msgid "New event"
-msgstr ""
+msgstr "Новое событие"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:149
msgid "Save"
-msgstr ""
+msgstr "Сохранить"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:150
msgid "Cancel"
-msgstr ""
+msgstr "Отмена"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:151
msgid "Details"
-msgstr ""
+msgstr "Подробности"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:152
msgid "Edit"
-msgstr ""
+msgstr "Изменить"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:153
msgid "Delete"
-msgstr ""
+msgstr "Удалить"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:155
msgid "Event will be deleted permanently, are you sure?"
-msgstr ""
+msgstr "Событие будет удалено навсегда, вы уверены?"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:156
#: addons/web_calendar/static/src/js/calendar.js:169
msgid "Description"
-msgstr ""
+msgstr "Описание"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:157
msgid "Time period"
-msgstr ""
+msgstr "Промежуток времени"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:158
msgid "Full day"
-msgstr ""
+msgstr "Полный день"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:161
msgid "Do you want to edit the whole set of repeated events?"
-msgstr ""
+msgstr "Вы хотите, изменить все повторяющиеся события?"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:162
msgid "Repeat event"
-msgstr ""
+msgstr "Повтор события"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:163
msgid "Disabled"
-msgstr ""
+msgstr "Отключено"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:164
msgid "Enabled"
-msgstr ""
+msgstr "Включено"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:167
#: addons/web_calendar/static/src/js/calendar.js:175
msgid "Agenda"
-msgstr ""
+msgstr "Повестка дня"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:168
msgid "Date"
-msgstr ""
+msgstr "Дата"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:172
msgid "Year"
-msgstr ""
+msgstr "Год"
#. openerp-web
#: addons/web_calendar/static/src/xml/web_calendar.xml:5
diff --git a/addons/web_graph/i18n/ru.po b/addons/web_graph/i18n/ru.po
index 7e3316451b2..fcb97444257 100644
--- a/addons/web_graph/i18n/ru.po
+++ b/addons/web_graph/i18n/ru.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2012-07-02 09:06+0200\n"
-"PO-Revision-Date: 2012-01-13 11:41+0000\n"
-"Last-Translator: Aleksei Motsik \n"
+"PO-Revision-Date: 2012-10-23 14:06+0000\n"
+"Last-Translator: Chertykov Denis \n"
"Language-Team: Russian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-21 05:03+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-24 05:20+0000\n"
+"X-Generator: Launchpad (build 16179)\n"
#. openerp-web
#: addons/web_graph/static/src/js/graph.js:19
@@ -25,74 +25,74 @@ msgstr "График"
#. openerp-web
#: addons/web_graph/static/src/xml/web_graph.xml:5
msgid "Graph Options"
-msgstr ""
+msgstr "Параметры графика"
#. openerp-web
#: addons/web_graph/static/src/xml/web_graph.xml:7
msgid "Graph Mode"
-msgstr ""
+msgstr "Графический вид"
#. openerp-web
#: addons/web_graph/static/src/xml/web_graph.xml:11
msgid "Pie"
-msgstr ""
+msgstr "Круговая диаграмма"
#. openerp-web
#: addons/web_graph/static/src/xml/web_graph.xml:12
msgid "Bars"
-msgstr ""
+msgstr "Линейчатая"
#. openerp-web
#: addons/web_graph/static/src/xml/web_graph.xml:14
msgid "Lines"
-msgstr ""
+msgstr "Строчная"
#. openerp-web
#: addons/web_graph/static/src/xml/web_graph.xml:15
msgid "Areas"
-msgstr ""
+msgstr "Области"
#. openerp-web
#: addons/web_graph/static/src/xml/web_graph.xml:18
msgid "Radar"
-msgstr ""
+msgstr "Радар"
#. openerp-web
#: addons/web_graph/static/src/xml/web_graph.xml:20
msgid "Legend"
-msgstr ""
+msgstr "Обозначения"
#. openerp-web
#: addons/web_graph/static/src/xml/web_graph.xml:24
msgid "Hidden"
-msgstr ""
+msgstr "Скрытый"
#. openerp-web
#: addons/web_graph/static/src/xml/web_graph.xml:25
msgid "Inside"
-msgstr ""
+msgstr "Внутри"
#. openerp-web
#: addons/web_graph/static/src/xml/web_graph.xml:26
msgid "Top"
-msgstr ""
+msgstr "Сверху"
#. openerp-web
#: addons/web_graph/static/src/xml/web_graph.xml:28
msgid "Actions"
-msgstr ""
+msgstr "Действия"
#. openerp-web
#: addons/web_graph/static/src/xml/web_graph.xml:32
msgid "Switch Axis"
-msgstr ""
+msgstr "Переключение осей"
#. openerp-web
#: addons/web_graph/static/src/xml/web_graph.xml:33
msgid "Show Data"
-msgstr ""
+msgstr "Показать данные"
#. openerp-web
#: addons/web_graph/static/src/xml/web_graph.xml:34
msgid "Download as PNG"
-msgstr ""
+msgstr "Скачать как PNG"
diff --git a/openerp/addons/base/i18n/ru.po b/openerp/addons/base/i18n/ru.po
index 3f1dbfa9389..0e97644b80e 100644
--- a/openerp/addons/base/i18n/ru.po
+++ b/openerp/addons/base/i18n/ru.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:44+0000\n"
-"PO-Revision-Date: 2012-09-24 14:20+0000\n"
+"PO-Revision-Date: 2012-10-23 18:39+0000\n"
"Last-Translator: Chertykov Denis \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-20 05:03+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-24 04:55+0000\n"
+"X-Generator: Launchpad (build 16179)\n"
#. module: base
#: model:res.country,name:base.sh
@@ -76,7 +76,7 @@ msgstr ""
"Модуль ведения проектов отслеживает многоуровневые проекты, задачи, "
"проделанную работу над задачами, и т. д. \n"
"============================================================================="
-"=========\n"
+"===============================\n"
"\n"
"Позволяет выполнять планирование, определять порядок задач и т. д.\n"
"\n"
@@ -163,7 +163,7 @@ msgid ""
msgstr ""
"\n"
"Организация и управление мероприятиями.\n"
-"======================================\n"
+"=======================================\n"
"\n"
"Этот модуль позволяет вам создавать ретро планирование для управления вашими "
"мероприятиями.\n"
@@ -660,7 +660,8 @@ msgstr ""
"\n"
"Модуль для автоматизации отсылки писем по неоплаченным счетам, с "
"многоуровневыми напоминаниями.\n"
-"==========================================================================\n"
+"============================================================================="
+"==================\n"
"\n"
"Вы можете определить ваши многоуровневые напоминания через меню:\n"
" Бухгалтерия/Настройка/Разное/Напоминания\n"
@@ -978,7 +979,7 @@ msgstr ""
"Этот модуль дает администратору возможность отслеживать каждое действие "
"пользователя над всеми объектами системы.\n"
"============================================================================="
-"=================\n"
+"====================================\n"
"\n"
"Администратор может подписаться на правила чтения, записи и\n"
"удаления над объектами и проверять журнал.\n"
@@ -1249,7 +1250,7 @@ msgid ""
msgstr ""
"Отслеживание вашего планирования\n"
"Этот модуль помогает вам управлять вашим планированием.\n"
-"===============================================\n"
+"=======================================================\n"
"\n"
"Этот модуль основан на аналитическом учёте и тотально интегрирован с\n"
"* вводом данных табелей\n"
@@ -1484,7 +1485,7 @@ msgid ""
msgstr ""
"\n"
"Добавляет дополнительные даты к заказам.\n"
-"====================================================\n"
+"========================================\n"
"\n"
"Вы можете добавить следующие дополнительные даты:\n"
" * Дата запроса\n"
@@ -1533,7 +1534,7 @@ msgid ""
msgstr ""
"\n"
"Это полная система управления документами.\n"
-"==============================================\n"
+"==========================================\n"
"\n"
" * Авторизация пользователя\n"
" * Индексация документа: - файлы .pptx и .docx не поддержаны в платформе "
@@ -1623,7 +1624,7 @@ msgstr ""
"Это тестовый модуль, который показывает поддержку HTML тегов в обычном виде "
"XML формы.\n"
"============================================================================="
-"\n"
+"=========\n"
"\n"
"Создаёт пример вида формы используя HTML теги. Это видно только в OpenERP "
"веб.\n"
@@ -1724,7 +1725,7 @@ msgid ""
msgstr ""
"\n"
"Организация и управление мероприятиями.\n"
-"======================================\n"
+"=======================================\n"
"\n"
"Этот модуль позволяет вам\n"
" * управлять вашими мероприятиями и их регистрацией\n"
@@ -1841,7 +1842,8 @@ msgstr ""
"\n"
"Этот модуль добавляет общий инструмент совместного доступа для текущей базы "
"данных OpenERP.\n"
-"========================================================================\n"
+"============================================================================="
+"==============\n"
"\n"
"Он добавляет кнопку 'Совместный доступ', которая доступна в веб-клиенте для\n"
"совместного использования данных OpenERP любого сорта с сотрудниками, "
@@ -1954,7 +1956,7 @@ msgstr ""
" всегда доступна,но допускает номера, которые представлены возможно не "
"верно,\n"
" или более того не допустимы.\n"
-" * Когда параметр \\\"Проверка НДС VIES\\\" разрешён (в настройке "
+" * Когда параметр \"Проверка НДС VIES\" разрешён (в настройке "
"пользовательской\n"
" компании), номера НДС будут отправлены на онлайновую VIES\n"
" базу данных ЕС, которая тщательно проверит, что номер допустим и\n"
@@ -2013,7 +2015,7 @@ msgstr ""
"Этот модуль позволяет вашему пользователю легко и эффективно участвовать в "
"инновациях на предприятии.\n"
"============================================================================="
-"===============\n"
+"========================\n"
"\n"
"Он позволяет каждому выразить идеи относительно различных предметов.\n"
"Далее, другие пользователи могут комментировать эти идеи и голосовать за "
@@ -2378,7 +2380,7 @@ msgstr ""
"Модули журнала продаж позволяют вам распределять ваши продажи и поставки "
"(комплектовочные списки) между различными журналами.\n"
"============================================================================="
-"===========================================\n"
+"================================================\n"
"\n"
"Этот модуль весьма полезен для больших компаний, которые\n"
"работают через подразделения.\n"
@@ -2438,7 +2440,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль нацелен на управление расходами сотрудника.\n"
-"===============================================\n"
+"=======================================================\n"
"\n"
"Реализован весь рабочий процесс:\n"
" * черновой расход\n"
@@ -2578,12 +2580,12 @@ msgid ""
msgstr ""
"\n"
"Управляет рабочими местами и процессом найма.\n"
-"==================================================\n"
+"=============================================\n"
"\n"
"Он интегрирован с модулем опроса для позволения вам определить интервью для "
"различных работ.\n"
"\n"
-"Этот модуль интегрирован с почтовым шлюзом для автоматического отслуживания "
+"Этот модуль интегрирован с почтовым шлюзом для автоматического обслуживания "
"e-mail\n"
"отправленных на jobs@YOURCOMPANY.com. Он также интегрирован с системой "
"управления\n"
@@ -2667,9 +2669,8 @@ msgid ""
" "
msgstr ""
"\n"
-"\\n\n"
-"Управление помощью.\\n\n"
-"====================\\n\n"
+"Управление помощью.\n"
+"===================\n"
"\n"
"Подобно записи и обработке претензий, помощь и поддержка являются хорошими "
"инструментами\n"
@@ -2701,7 +2702,7 @@ msgid ""
msgstr ""
"\n"
"Модуль для управления ресурсами.\n"
-"===============================\n"
+"================================\n"
"\n"
"Ресурс представляет что-то, что может быть запланировано\n"
"(разработчик по задаче или рабочий центр по производственным заказам).\n"
@@ -2809,7 +2810,7 @@ msgid ""
msgstr ""
"\n"
"Основной модуль для управления разнесением аналитики и заказами продаж.\n"
-"=================================================================\n"
+"=======================================================================\n"
"\n"
"Использование этого модуля позволит вам связать аналитические счета с "
"заказами продаж.\n"
@@ -2933,8 +2934,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль реализует все концепции методологии дела-в-порядке\n"
-"============================================================================="
-"======\n"
+"==============================================================\n"
"\n"
"Этот модуль реализует простой персональный список дел основанный на задачах. "
"Он добавляет в\n"
@@ -3127,7 +3127,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль добавляет планшет во все канбан виды проекта\n"
-"==================================================\n"
+"========================================================\n"
" "
#. module: base
@@ -3208,7 +3208,7 @@ msgstr ""
"Настройте нужную вам точность цены для различных видов использования: "
"бухгалтерия, продажи, закупки, и т.д.\n"
"============================================================================="
-"=========================\n"
+"==============================\n"
"\n"
"Десятичная точность настроена по компании.\n"
@@ -3230,8 +3230,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль обслуживает в OpenERP план счетов и налогов для Польши.\n"
-"============================================================================="
-"=====\n"
+"===================================================================\n"
"\n"
"To jest moduł do tworzenia wzorcowego planu kont i podstawowych ustawień do "
"podatków\n"
@@ -3276,7 +3275,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль позволяет пользователям выполнять сегментацию партнёров.\n"
-"=================================================================\n"
+"====================================================================\n"
"\n"
"Он использует критерии профилей из прежнего модуля сегментации и улучшает "
"их. Благодаря новой концепции опросника. Теперь вы можете перегруппировывать "
@@ -3545,7 +3544,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль предусматривает шаблон Wiki ЧаВо.\n"
-"=========================================\n"
+"=============================================\n"
"\n"
"Он предусматривает демо данные, для создания Wiki группы и Wiki страниц\n"
"для Wiki ЧаВо.\n"
@@ -3725,27 +3724,27 @@ msgid ""
msgstr ""
"\n"
"Основной модуль для управления предложениями цен и заказами на продажу.\n"
-"======================================================\n"
+"=======================================================================\n"
"\n"
"Рабочий процесс с шагами подтверждения:\n"
-"-------------------------------\n"
+"---------------------------------------\n"
" * предложение цен -> заказ продаж -> выставление счёта\n"
"\n"
"Способы выставления счёта:\n"
-"------------------\n"
+"--------------------------\n"
" * счёт по заказу (до или после перевозки)\n"
" * счёт по доставке\n"
" * счёт по табелям\n"
" * авансовый счёт\n"
"\n"
"Предпочтения партнёров:\n"
-"---------------------\n"
+"-----------------------\n"
" * перевозка\n"
" * выставление счёта\n"
" * инкотерм\n"
"\n"
"Остатки ТМЦ и цены\n"
-"--------------------------\n"
+"------------------\n"
"\n"
"Способы доставки:\n"
"-----------------\n"
@@ -3754,7 +3753,7 @@ msgstr ""
" * стоимость доставки\n"
"\n"
"Панель руководителя продаж, которая включает:\n"
-"------------------------------------------\n"
+"---------------------------------------------\n"
" * заявки\n"
" * продажи по месяцу\n"
" * график продаж по продавцу за последние 90 дней\n"
@@ -3966,10 +3965,10 @@ msgid ""
msgstr ""
"\n"
"Модуль управления оплатой по счётам.\n"
-"=================================\n"
+"====================================\n"
"\n"
"Этот модуль предоставляет:\n"
-"----------------------\n"
+"--------------------------\n"
"* более эффективный путь для управления оплатой счёта.\n"
"* основной механизм для легкого подключения различных автоматизированных "
"платежей.\n"
@@ -4003,10 +4002,11 @@ msgstr ""
"\n"
"Этот модуль предоставляет некоторые возможности для улучшения макета "
"счетов.\n"
-"=========================================================================\n"
+"============================================================================="
+"\n"
"\n"
"Он даёт вам возможность:\n"
-"--------------------------------\n"
+"------------------------\n"
" * упорядочения всех позиций счёта\n"
" * добавки заголовков, строк комментариев, строк подитога\n"
" * черчения горизонтальных линий и помещения разрывов страниц\n"
@@ -4429,11 +4429,11 @@ msgid ""
msgstr ""
"\n"
"Права бухгалтерского доступа.\n"
-"=========================\n"
+"=============================\n"
"\n"
"Этот модуль даёт пользователю администратору доступ ко всем бухгалтерским "
"возможностям\n"
-"типа записей журналов и планов счетов.\\n\n"
+"типа записей журналов и планов счетов.\n"
"\n"
"Он назначает права доступа руководителя и пользователя администратору, и "
"только\n"
@@ -4494,7 +4494,7 @@ msgstr ""
"Модуль счёта ваучера включает все основные требования записей ваучера для "
"банка, наличных, продаж, закупки, расхода, контра и т.п.\n"
"============================================================================="
-"=======================================================\n"
+"=====================================================\n"
"\n"
" * Запись ваучера\n"
" * Расписка ваучера\n"
@@ -4578,11 +4578,11 @@ msgstr ""
"Что здесь было сделано:\n"
"\n"
" * приспособлен владелец позиции аналитики (= для компании, которая владеет "
-"общим учётом связанным с позицией аналитики)\\n\n"
+"общим учётом связанным с позицией аналитики)\n"
" * добавлена мульти-валютность по позициям аналитики (подобно финансовому "
"учёту)\n"
-" * коррекция всех индикаторов \\\"затраты\\\" в счёт аналитики для их "
-"основы на подходящей валюте (компании владельца)\n"
+" * коррекция всех индикаторов \"затраты\" в счёт аналитики для их основы на "
+"подходящей валюте (компании владельца)\n"
" * по умолчанию, ничего не меняется для представления одиночной компании.\n"
"\n"
"В результате, теперь мы можем реально разделять один и тот же счёт аналитики "
@@ -4649,7 +4649,7 @@ msgstr ""
"Эти модули позволяют вам отследить претензии и жалобы ваших "
"покупателей/поставщиков.\n"
"============================================================================="
-"===\n"
+"=======\n"
"\n"
"Они полностью интегрированы со шлюзом e-mail, так что вы можете создать\n"
"автоматически новые претензии основанные на приходящих e-mail.\n"
@@ -4738,7 +4738,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль позволяет вам анонимизировать базу данных.\n"
-"===============================================\n"
+"======================================================\n"
"\n"
"Этот модуль позволяет вам для данной базы данных секретно хранить ваши "
"данные.\n"
@@ -4780,8 +4780,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль помогает настроить систему при установке новой базы данных.\n"
-"============================================================================="
-"===\n"
+"=======================================================================\n"
"\n"
"Показывает вам список приложений для установки.\n"
"\n"
@@ -4830,7 +4829,7 @@ msgstr ""
"Модуль закупки для создания заказа закупки для приобретения товаров у "
"поставщика.\n"
"============================================================================="
-"============\n"
+"====\n"
"\n"
"Создаётся счёт поставщика для отдельного заказа закупки.\n"
"\n"
@@ -4909,7 +4908,7 @@ msgstr ""
"Этот модуль используемый OpenERP SA для перенаправления покупателей к своим "
"партнёрам, основан на гео-позиционировании.\n"
"============================================================================="
-"=========================\\n\n"
+"==========================================\n"
"\n"
"Вы можете гео-позиционировать ваши предложения используя этот модуль.\n"
"\n"
@@ -5074,7 +5073,7 @@ msgid ""
msgstr ""
"\n"
"Создание повторяющихся документов.\n"
-"===========================\n"
+"==================================\n"
"\n"
"Этот модуль позволяет создавать новые документы и добавлять подписки на эти "
"документы.\n"
@@ -5278,7 +5277,8 @@ msgstr ""
"\n"
"Установщик скрытых дополнений типа 2-го завтрака, опроса, идеи, совместного "
"использования и т.п.\n"
-"===============================================================\n"
+"============================================================================="
+"===================\n"
"\n"
"Делает настройку скрытых дополнений доступной, из которой вы можете "
"установить\n"
@@ -5393,7 +5393,7 @@ msgid ""
msgstr ""
"\n"
"С этим модулем активируется WebDAV сервер для документов.\n"
-"===============================================================\n"
+"=========================================================\n"
"\n"
"Вы можете использовать любой совместимый браузер для удалённого просмотра "
"вложений OpenObject.\n"
@@ -5406,12 +5406,11 @@ msgstr ""
" ; enable = True ; обслуживать webdav через http(s) серверы\n"
" ; vdir = webdav ; каталог, который будет обслуживаться webdav, по\n"
" ; умолчанию это значение означает, что этот webdav будет\n"
-" ; на \\\"http://localhost:8069/webdav/\n"
+" ; на \"http://localhost:8069/webdav/\n"
" ; verbose = True ; включает подробные сообщения webdav\n"
" ; debug = True ; включает отладочные сообщения webdav\n"
" ; Поскольку сообщения маршрутизируются в журналирование python-а с\n"
-" ; уровнями \\\"debug\\\" и \\\"debug_rpc\\\" соответственно, вы можете "
-"оставить\n"
+" ; уровнями \"debug\" и \"debug_rpc\" соответственно, вы можете оставить\n"
" ; эти параметры включёнными\n"
"\n"
"Также реализован IETF RFC 5785 для открытия сервисов на сервере http,\n"
@@ -5440,7 +5439,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль используется для опроса.\n"
-"==================================\n"
+"====================================\n"
"\n"
"Он зависит от ответов или обзоров некоторых вопросов различных "
"пользователей.\n"
@@ -5622,7 +5621,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль позволяет вам управлять вашими требованиями закупки.\n"
-"===========================================================\n"
+"================================================================\n"
"\n"
"Когда создан заказ закупки, вы получаете предложение для сохранения "
"связанного требования.\n"
@@ -5723,7 +5722,7 @@ msgstr ""
"Этот модуль предусматривает возможность одновременной установки "
"пользователем модулей производства и продаж.\n"
"============================================================================="
-"=======\n"
+"===============================\n"
"\n"
"Он обычно используется когда вы хотите отслеживать заказы\n"
"производства созданные из заказа продаж.\n"
@@ -5771,8 +5770,8 @@ msgstr ""
"Создавайте ваши счета из затрат, записей табеля...\n"
"Модуль для создания счетов основанных на затратах (трудовые ресурсы, "
"расходы...).\n"
-"============================================================================"
-"\n"
+"============================================================================="
+"====\n"
"\n"
"Вы можете определить прайс-листы в счёте аналитики, сделав некоторые "
"теоретические отчёты о\n"
@@ -6113,7 +6112,7 @@ msgstr ""
"Модуль управления инвентаризацией OpenERP может обслуживать несколько "
"складов, множественные и структурированные расположения запасов.\n"
"============================================================================="
-"=========================\n"
+"=========================================================\n"
"\n"
"Благодаря управлению двойной записью, управление инвентаризацией мощное и "
"гибкое:\n"
@@ -6210,7 +6209,8 @@ msgstr ""
"\n"
"Этот модуль позволяет бухгалтерам управлять аналитическими и перекрёстными "
"бюджетами.\n"
-"==========================================================================\n"
+"============================================================================="
+"========\n"
"\n"
"Как только главные бюджеты и бюджеты определены (в Бухгалтерия/Бюджеты/),\n"
"руководители проекта могут установить плановую сумму по каждому счёту "
@@ -6468,7 +6468,7 @@ msgstr ""
"Этот модуль позволяет использовать несколько аналитических планов согласно "
"общему журналу.\n"
"============================================================================="
-"======\n"
+"=============\n"
"\n"
"Здесь создаются несколько позиций аналитики, когда счёт или проводки\n"
"подтверждены.\n"
@@ -6560,7 +6560,7 @@ msgstr ""
"Это модуль для изменения вида счёта аналитики для показа важных данных "
"руководителю проекта сервисных компаний.\n"
"============================================================================="
-"======================================\n"
+"==================================\n"
"\n"
"Добавляет меню для показа относящейся к каждому руководителю информации.\n"
"Вы также можете видеть суммарный отчёт по счёту аналитики\n"
@@ -6784,7 +6784,7 @@ msgid ""
msgstr ""
"\n"
"Общая система выплат.\n"
-"=======================\n"
+"=====================\n"
"\n"
" * Подробности о сотруднике\n"
" * Договора сотрудника\n"
@@ -6869,7 +6869,7 @@ msgid ""
msgstr ""
"\n"
"Позволяет пользователю создать свой вариант панели.\n"
-"========================================\n"
+"===================================================\n"
"\n"
"Этот модуль также создаёт административную панель.\n"
"\n"
@@ -6966,7 +6966,7 @@ msgid ""
msgstr ""
"\n"
"Общая подсистема электронной почты с хранением сообщений и очередей.\n"
-"==========================================================\n"
+"====================================================================\n"
"\n"
"Эта подсистема e-mail не предназначена для использования как автономное\n"
"приложение, но предусматривает унифицированное представление e-mail, "
@@ -7032,7 +7032,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль позволяет вам управлять вашими контактами\n"
-"==============================================\n"
+"=====================================================\n"
"\n"
"Он позволяет вам определить:\n"
" * контакты не связанные с партнёром,\n"
@@ -7214,7 +7214,7 @@ msgid ""
msgstr ""
"\n"
"Это поддержка интерфейса FTP к системе управления документами.\n"
-"================================================================\n"
+"==============================================================\n"
"\n"
"С этим модулем у вас будет возможность доступа к документам не только через "
"OpenERP,\n"
@@ -7249,7 +7249,7 @@ msgstr ""
"Этот модуль позволяет вам определить какова функция по умолчанию "
"определённого пользователя на данной учётной записи.\n"
"============================================================================="
-"=======================\n"
+"========================================\n"
"\n"
"Это очень полезно, когда пользователь вводит данные своего табеля: значения "
"извлечены и поля авто-заполнены. Но возможность смены этих значений остаётся "
@@ -7788,7 +7788,7 @@ msgid ""
msgstr ""
"\n"
"Модуль для определения объекта аналитического учёта.\n"
-"===============================================\n"
+"====================================================\n"
"\n"
"В OpenERP счета аналитики связаны с общим учётом, но трактуются\n"
"полностью независимо. Так вы можете ввести различные аналитические "
@@ -7994,9 +7994,8 @@ msgid ""
" "
msgstr ""
"\n"
-"\\n\n"
"Модуль для управления трудовыми ресурсами.\n"
-"=====================================\n"
+"==========================================\n"
"\n"
"Вы можете управлять:\n"
" * Сотрудниками и иерархией: вы можете определить вашего сотрудника как "
@@ -8113,7 +8112,7 @@ msgid ""
msgstr ""
"\n"
"Добавляет всю информацию в форму сотрудника для управления договорами.\n"
-"=============================================================\n"
+"======================================================================\n"
"\n"
" * Семейное положение,\n"
" * Номер соцзащиты,\n"
@@ -8148,7 +8147,8 @@ msgstr ""
"\n"
"Этот модуль добавляет сокращение по одному или нескольким предложениям в "
"CRM.\n"
-"===========================================================================\n"
+"============================================================================="
+"=\n"
"\n"
"Это сокращение позволяет вам создать заказ продаж основанный на выбранном "
"вопросе.\n"
@@ -8279,7 +8279,7 @@ msgid ""
msgstr ""
"\n"
"Позволяет вам добавить способы доставки в заказы продаж и комплектование.\n"
-"==============================================================\n"
+"=========================================================================\n"
"\n"
"Вы можете определить для цен вашу собственную перевозку и сетки доставки.\n"
"При создании счетов из комплектования, OpenERP способен добавить и "
@@ -8330,7 +8330,7 @@ msgstr ""
"Этот модуль поддерживает англо-саксонскую бухгалтерскую методологию путём "
"смены бухгалтерской логики складских операций.\n"
"============================================================================="
-"========================================\n"
+"===========================================\n"
"\n"
"Различие бухгалтерий между англо-саксонскими странами\n"
"и рейнскими, или также называемыми континентальными странами, заключается в "
@@ -8391,7 +8391,7 @@ msgid ""
msgstr ""
"\n"
"Добавляет кнопку \"Отзыв\" в заголовок.\n"
-"==============================\n"
+"=====================================\n"
"\n"
"Предлагает отзыв пользователя OpenERP, через uservoice.\n"
" "
@@ -8464,7 +8464,7 @@ msgid ""
msgstr ""
"\n"
"Двойное подтверждение для закупок превысивших минимум суммы.\n"
-"=========================================================\n"
+"============================================================\n"
"\n"
"Этот модуль изменяет процесс закупки в порядке подтверждения закупок,\n"
"которые превышают минимум суммы заданный мастером настройки.\n"
@@ -8558,7 +8558,7 @@ msgid ""
msgstr ""
"\n"
"Изменяет даты соответственно смене конечной даты в проекте.\n"
-"======================================================\n"
+"===========================================================\n"
"\n"
"Если конечная дата проекта изменена, то дата конечного срока и дата начала "
"будут соответственно изменены для всех задач.\n"
@@ -8703,7 +8703,7 @@ msgstr ""
"Этот модуль дополняет приложение склада эффективной реализацией нисходящих и "
"восходящих потоков инвентаризации.\n"
"============================================================================="
-"===============================\n"
+"==================================\n"
"\n"
"Обычно он используется для:\n"
" * Управления цепочками изготовления товаров\n"
@@ -8723,7 +8723,7 @@ msgstr ""
"Демонстрационные данные товара ЦП1:\n"
"\n"
"Нисходящие потоки\n"
-"----------\n"
+"-----------------\n"
"Нисходящие потоки применимы, когда прибытие определённых товаров в данное "
"место хранения должно всегда\n"
"сопровождаться соответствующим перемещением в другое место хранения, не "
@@ -8744,7 +8744,7 @@ msgstr ""
"параметров.\n"
"\n"
"Восходящие потоки\n"
-"----------\n"
+"-----------------\n"
"Восходящие потоки несколько отличны от нисходящих потоков, в том, что они "
"относятся не к\n"
"обработке перемещений товара, а скорее к обработке заказов снабжения.\n"
@@ -8775,7 +8775,7 @@ msgstr ""
"товаре (т.е. конечное место хранения этого заказа снабжения).\n"
"\n"
"Пример использования\n"
-"--------\n"
+"--------------------\n"
"\n"
"Вы можете использовать следующие демонстрационные данные:\n"
" ЦП1: продажа ЦП1 из магазина 1 и запуск планировщика\n"
@@ -8799,7 +8799,7 @@ msgid ""
msgstr ""
"\n"
"Меню для маркетинга.\n"
-"===================\n"
+"====================\n"
"\n"
"Содержит установщик для модулей относящихся к маркетингу.\n"
" "
@@ -8852,7 +8852,7 @@ msgid ""
msgstr ""
"\n"
"Автоматически создаёт задачи проекта из позиций снабжения\n"
-"==========================================================\n"
+"=========================================================\n"
"\n"
"Этот модуль автоматически создаст новую задачу для каждой позиции заказа\n"
"снабжения (например, для позиций заказа продажи), если соответствующий "
@@ -8934,7 +8934,8 @@ msgstr ""
"\n"
"Этот модуль может автоматически создать задачи проекта основанные на "
"входящих письмах\n"
-"===========================================================================\n"
+"============================================================================="
+"========\n"
"\n"
"Позволяет создавать задачи основанные на новых письмах приходящих на данный "
"почтовый ящик,\n"
@@ -8973,7 +8974,8 @@ msgstr ""
"\n"
"Этот модуль позволяет вам управлять всеми операциями для управления "
"участием.\n"
-"=========================================================================\n"
+"============================================================================="
+"\n"
"\n"
"Он поддерживает различные виды участников:\n"
"* Свободный участник\n"
@@ -8999,7 +9001,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль предназначен для управления посещаемости работников.\n"
-"==================================================\n"
+"================================================================\n"
"\n"
"Поддерживает учёт посещаемости работников на основе\n"
"действий (приход/уход) выполненных ими.\n"
@@ -9074,10 +9076,10 @@ msgid ""
" "
msgstr ""
"\n"
-"Этот модуль поддерживает внутреннюю нумерацию бухгалтерских записей.\n"
-"======================================================================\n"
+"Этот модуль поддерживает внутреннюю нумерацию бухгалтерских проводок.\n"
+"====================================================================\n"
"\n"
-"Позволяет вам настроить нумерацию бухгалтерских записей.\n"
+"Позволяет вам настроить нумерацию бухгалтерских проводок.\n"
"\n"
"Вы можете подстроить следующие атрибуты нумерации:\n"
" * Префикс\n"
@@ -9295,7 +9297,7 @@ msgid ""
msgstr ""
"\n"
"Возможности Caldav во встрече.\n"
-"===========================\n"
+"==============================\n"
"\n"
" * Совместное использование встречи с другими клиентами календаря типа "
"Sunbird\n"
@@ -9483,7 +9485,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль позволяет вам управлять отпусками и запросами отпусков.\n"
-"=============================================================\n"
+"===================================================================\n"
"\n"
"Реализует панель для управления трудовыми ресурсами, которая включает:\n"
" * Отпуска\n"
@@ -9586,7 +9588,7 @@ msgid ""
msgstr ""
"\n"
"Шаблон руководства по качеству.\n"
-"========================\n"
+"===============================\n"
"\n"
"Он предусматривает демо-данные, включая Wiki группу и Wiki страницу\n"
"для Wiki руководства по качеству.\n"
@@ -9636,7 +9638,7 @@ msgid ""
msgstr ""
"\n"
"Это модуль для настройки модулей относящихся к объединению.\n"
-"==============================================================\n"
+"===========================================================\n"
"\n"
"Он устанавливает профиль для объединений для обслуживания событий, "
"регистраций, членства, продуктов членства (проекты) и т.п.\n"
@@ -9724,7 +9726,7 @@ msgid ""
msgstr ""
"\n"
"Это модуль для вычисления снабжения.\n"
-"==============================================\n"
+"====================================\n"
"\n"
"В процессе MRP, заказы снабжения создаются для вызова заказов\n"
"производства, заказов закупки, распределений запаса и т.д. Заказы снабжения\n"
@@ -9843,7 +9845,7 @@ msgstr ""
"Этот модуль добавляет новый движок отчёта основанный на библиотеке WebKit "
"(wkhtmltopdf) для поддержки очётов разработанных в HTML + CSS.\n"
"============================================================================="
-"========================================\n"
+"===========================================================\n"
"\n"
"Структура модуля и некоторый код заимствованы из модуля отчёта OpenOffice.\n"
"\n"
@@ -9869,7 +9871,7 @@ msgstr ""
" http://files.me.com/nbessi/06n92k.mov\n"
"\n"
"Требования и установка\n"
-"-----------------------------\n"
+"----------------------\n"
"Этот модуль требует библиотеку ``wkthtmltopdf`` для перевода документов HTML "
"в\n"
"PDF. Необходима версия 0.9.9 или новее, и может быть найдена на "
@@ -9886,7 +9888,7 @@ msgstr ""
"\n"
"\n"
"СДЕЛАТЬ\n"
-"----\n"
+"-------\n"
"\n"
" * Поддержку активации деактивации JavaScript\n"
" * Поддержку разобранного по листам и книжного формата\n"
@@ -9990,7 +9992,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль содержит основную функциональность для системы Caldav.\n"
-"===========================================================\n"
+"==================================================================\n"
"\n"
" - Webdav сервер, который предусматривает удалённый доступ к календарю\n"
" - Синхронизация календаря используя WebDAV\n"
@@ -10132,7 +10134,7 @@ msgid ""
msgstr ""
"Устанавливает значения по умолчанию для ваших аналитических счетов\n"
"Позволяет автоматический выбор аналитических счетов на основе критериев:\n"
-"=====================================================================\n"
+"========================================================================\n"
"\n"
"* Товар\n"
"* Партнёр\n"
@@ -10202,7 +10204,7 @@ msgid ""
msgstr ""
"\n"
"Основной модуль для управления документами (Wiki).\n"
-"==========================================\n"
+"==================================================\n"
"\n"
"Отслеживает группы, страницы и историю Wiki.\n"
" "
@@ -10484,7 +10486,7 @@ msgstr ""
"============================================================\n"
"\n"
"Краткий словарь\n"
-"--------------\n"
+"---------------\n"
"- Период запаса - границы времени (между датой начала и конечной датой) для "
"планирования ваших продаж и прогнозов запаса\n"
"- Прогноз продаж - количество товаров, которое вы планируете продать в "
@@ -10498,7 +10500,7 @@ msgstr ""
"подчёркивания, что мы используем количественные значения.\n"
"\n"
"Для начала\n"
-"--------------\n"
+"----------\n"
"Использование этого модуля производится в три шага:\n"
"\n"
" * Создание периодов запаса через меню Склад>Настройки>Периоды запаса "
@@ -10511,7 +10513,7 @@ msgstr ""
"запаса.\n"
"\n"
"Настройки периода запаса\n"
-"--------------------------\n"
+"------------------------\n"
"У вас есть два пункта меню для периодов в \"Склад > Настройки > Периоды "
"запаса\". Это:\n"
"\n"
@@ -10546,7 +10548,7 @@ msgstr ""
"промежутки между периодами, результаты могут быть не предсказуемыми.\n"
"\n"
"Настройки прогнозов продаж\n"
-"-----------------------------\n"
+"--------------------------\n"
"У вас есть несколько меню для прогноза продаж в \"Продажи > Прогнозы "
"продаж\":\n"
"\n"
@@ -10597,7 +10599,7 @@ msgstr ""
"\n"
"\n"
"МПС или планирование снабжения\n"
-"---------------------------\n"
+"------------------------------\n"
"Планирование МПС заключающееся в строках планирования запаса, используется "
"для анализа и возможности ведения снабжения\n"
"товарами для каждого относящегося периода запаса и склада.\n"
@@ -10672,7 +10674,7 @@ msgstr ""
"планирование\".\n"
"\n"
"Подсчёт количеств моделирования запаса\n"
-"------------------------------------------\n"
+"--------------------------------------\n"
"Значение моделирования запаса - ожидаемое количество запаса в конце "
"периода.\n"
"Подсчёт всегда начинается с реального имеющегося запаса на начало текущего "
@@ -10800,7 +10802,7 @@ msgstr ""
"Этот модуль создаёт техническое описание выбранных модулей в "
"реструктурированном текстовом формате (RST).\n"
"============================================================================="
-"====================\n"
+"============================\n"
"\n"
" * Он использует Sphinx (http://sphinx.pocoo.org) представление RST\n"
" * Он создаёт архив (суффикс файла .tgz) содержащий индекс файла и один "
@@ -10944,7 +10946,7 @@ msgstr ""
"Этот модуль помогает вам легко ввести данные и подтвердить табель и "
"посещаемость в одном и том же виде.\n"
"============================================================================="
-"======================\n"
+"==========================\n"
"\n"
"Верхняя часть вида - для посещаемости и отслеживает события (приход/уход).\n"
"Нижняя часть - для табеля.\n"
@@ -10960,7 +10962,7 @@ msgstr ""
"* Подтверждение руководителем проекта\n"
"\n"
"Подтверждение в компании может быть настроено по:\n"
-"* Размеру периода (день, неделя, месяц, год)\\n\n"
+"* Размеру периода (день, неделя, месяц, год)\n"
"* Максимальной разнице между табелем и посещаемостью\n"
" "
@@ -11056,10 +11058,10 @@ msgid ""
msgstr ""
"\n"
"Это основной модуль для управления процессом производства в OpenERP.\n"
-"=======================================================================\n"
+"====================================================================\n"
"\n"
"Возможности:\n"
-"---------\n"
+"------------\n"
" * Сделать в запас/сделать на заказ (по строке)\n"
" * Многоуровневые ВМ, нет ограничения\n"
" * Многоуровневая маршрутизация, нет ограничения\n"
@@ -11080,14 +11082,14 @@ msgstr ""
"в ВМ для автоматической закупки по заказу сборки вашего производства.\n"
"\n"
"Отчёты предусмотренные этим модулем:\n"
-"--------------------------------\n"
+"------------------------------------\n"
" * Структура и компоненты ведомости материалов\n"
" * Прогноз загрузки по рабочим центрам\n"
" * Печать производственного заказа\n"
" * Прогнозы запаса\n"
"\n"
"Панель предусмотренная этим модулем:\n"
-"----------------------------------\n"
+"------------------------------------\n"
" * Список следующих производственных заказов\n"
" * Список проблем снабжений\n"
" * График загрузки рабочего центра\n"
@@ -11235,7 +11237,7 @@ msgid ""
msgstr ""
"\n"
"Общий интерфейс для плагина.\n"
-"=====================================================\n"
+"============================\n"
"\n"
#. module: base
@@ -11411,7 +11413,7 @@ msgid ""
msgstr ""
"\n"
"Это модуль для управления окружением мульти-компаний.\n"
-"=======================================================\n"
+"=====================================================\n"
"\n"
"Это основной модуль для других модулей мульти-компаний.\n"
" "
@@ -11464,7 +11466,7 @@ msgid ""
msgstr ""
"\n"
"Берет входящую эл.почту с серверов POP / IMAP\n"
-"=============================================\n"
+"==============================================\n"
"\n"
"Введите параметры ваших учётных записей POP/IMAP, и любые входящие\n"
"e-mail-ы на этих адресах будут автоматически загружены в вашу систему\n"
@@ -11565,10 +11567,10 @@ msgid ""
msgstr ""
"\n"
"Бухгалтерия и управление финансами.\n"
-"====================================\n"
+"===================================\n"
"\n"
"Финансовый и бухгалтерский модуль, который покрывает:\n"
-"--------------------------------------------\n"
+"-----------------------------------------------------\n"
"Общий учет\n"
"Стоимостной/аналитический учёт\n"
"Бухгалтерия третьей стороны\n"
@@ -11579,7 +11581,7 @@ msgstr ""
"Обработка сверки по партнёрам\n"
"\n"
"Создаёт панель для бухгалтеров, которая включает:\n"
-"--------------------------------------------------\n"
+"-------------------------------------------------\n"
"* Список счетов заказчикам для одобрения\n"
"* Анализ компании\n"
"* График задолженностей\n"
@@ -11689,7 +11691,7 @@ msgid ""
msgstr ""
"\n"
"Установщик для скрытой отчётности.\n"
-"==============================\n"
+"==================================\n"
"\n"
"Делает доступной настройку скрытой отчётности из которой вы можете "
"установить\n"
@@ -11741,7 +11743,7 @@ msgid ""
" "
msgstr ""
"\n"
-"Список дел для кандидатов и предложений в CRM.\\n\n"
+"Список дел для кандидатов и предложений в CRM.\n"
" "
#. module: base
@@ -11803,7 +11805,7 @@ msgid ""
msgstr ""
"\n"
"Позволяет синхронизировать календари с другими приложениями.\n"
-"=========================================================\n"
+"============================================================\n"
"\n"
"Позволит синхронизировать ваши календари OpenERP с вашим телефоном, Outlook, "
"Sunbird, Ical, ...\n"
@@ -12287,7 +12289,7 @@ msgid ""
msgstr ""
"\n"
"Позволяет отмену бухгалтерских проводок.\n"
-"=====================================\n"
+"========================================\n"
"\n"
"Этот модуль добавляет поле 'Разрешить отмену проводок' в вид формы журнала "
"учета. Если оно помечено, то это позволяет пользователю отменить проводки и "
@@ -12327,7 +12329,7 @@ msgid ""
msgstr ""
"\n"
"Создание претензии из заказа доставки.\n"
-"=====================================\n"
+"======================================\n"
"\n"
"Добавляет ссылку претензии к заказу доставки.\n"
@@ -12409,7 +12411,7 @@ msgid ""
msgstr ""
"\n"
"Общий план счетов\n"
-"=========================\n"
+"=================\n"
"\n"
"Предоставляется шаблон плана счетов, налогов для Уругвая\n"
"\n"
@@ -12512,7 +12514,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль добавляет поле карты Google в адрес партнёра.\n"
-"====================================================\n"
+"=========================================================\n"
"\n"
"Используя это вы можете непосредственно открывать карту Google Map из поля "
"URL."
@@ -12547,7 +12549,7 @@ msgstr ""
"\n"
"Вы можете создать кнопки печати вызвав мастер. Для дополнительных "
"подробностей смотрите:\n"
-" http://files.me.com/nbessi/06n92k.mov\\n\n"
+" http://files.me.com/nbessi/06n92k.mov\n"
" "
#. module: base
@@ -12631,7 +12633,7 @@ msgid ""
msgstr ""
"\n"
"Модуль добавляющий изготовителей и свойства в форму ввода товара.\n"
-"====================================================================\n"
+"=================================================================\n"
"\n"
"Теперь вы можете определить следующее для товара:\n"
" * Изготовитель\n"
@@ -12684,7 +12686,7 @@ msgstr ""
"Этот модуль устанавливает основу для банковских счетов IBAN (международных "
"номеров банковских счетов) и проверяет их правильность.\n"
"============================================================================="
-"========================================\n"
+"=====================================================\n"
"\n"
"Возможность извлечь правильно представленные локальные счета из счетов IBAN "
"одним действием.\n"
@@ -12780,7 +12782,7 @@ msgid ""
msgstr ""
"\n"
"Общая система выплат интегрированная с бухгалтерией.\n"
-"===================================================\n"
+"====================================================\n"
"\n"
" * Запись данных зарплаты\n"
" * Запись данных выплаты\n"
@@ -12819,10 +12821,10 @@ msgid ""
msgstr ""
"\n"
"Этот модуль предусматривает быструю и лёгкую обработку продаж.\n"
-"===================================================\n"
+"==============================================================\n"
"\n"
"Основные возможности :\n"
-"---------------\n"
+"----------------------\n"
" * Быстрый ввод данных продаж.\n"
" * Возможность выбора одного способа оплаты (быстрый путь) или разбиение "
"платежа между несколькими способами оплаты.\n"
@@ -12915,7 +12917,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль предусматривает шаблон Wiki ЧаВо продаж.\n"
-"===============================================\n"
+"====================================================\n"
"\n"
"Он предусматривает демо данные, включая создание Wiki группы и Wiki "
"страницы\n"
@@ -12945,7 +12947,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль позволяет реализовать правила действия для любого объекта.\n"
-"============================================================\n"
+"======================================================================\n"
"\n"
"Использование автоматизированных действий для запуска действий для различных "
"экранов.\n"
@@ -13001,7 +13003,7 @@ msgstr ""
"Добавляет меню отчётности в товары, которое подсчитывает продажи, закупки, "
"маржи и другие интересные показатели основанные на счетах.\n"
"============================================================================="
-"================================================\n"
+"========================================================\n"
"\n"
"Мастер для запуска отчёта имеет различные параметры, чтобы помочь вам "
"получить нужные вам данные.\n"
@@ -13372,7 +13374,7 @@ msgstr ""
"Этот модуль добавляет поддержку табеля для управления проблемами/ошибками в "
"проекте.\n"
"============================================================================="
-"====\n"
+"=======\n"
"\n"
"Могут быть поддержаны рабочие журналы для выражения числа часов затраченных "
"пользователями на решение проблемы.\n"
@@ -13561,7 +13563,7 @@ msgid ""
msgstr ""
"\n"
"Модуль для запуска предупреждений в объектах OpenERP.\n"
-"==============================================\n"
+"=====================================================\n"
"\n"
"Предупреждающие сообщения могут быть показаны для объектов типа заказа "
"продаж, заказа снабжения,\n"
@@ -13630,7 +13632,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль предоставляет функцию посылки сообщений в рамках проекта.\n"
-"=========================================================================\n"
+"=====================================================================\n"
"\n"
"Пользователь может посылать индивидуальные сообщения другому пользователю. "
"Он может даже посылать\n"
@@ -13676,7 +13678,7 @@ msgid ""
msgstr ""
"\n"
"Модуль, который добавляет отчёты intrastat.\n"
-"=====================================\n"
+"===========================================\n"
"\n"
"Этот модуль даёт подробности торговли товарами между странами Европейского "
"союза "
@@ -13694,7 +13696,7 @@ msgid ""
msgstr ""
"\n"
"Мастер выставления счёта на доставку.\n"
-"============================\n"
+"=====================================\n"
"\n"
"Когда вы отправляете или получаете товары, этот модуль автоматически "
"вызывает\n"
@@ -13766,7 +13768,7 @@ msgstr ""
"Этот модуль позволяет вам подсчитать скидки по позициям заказа продажи и "
"позициям счёта по прайс-листу партнёра.\n"
"============================================================================="
-"==================================\n"
+"===================================\n"
"\n"
"В конце в форму прайс-листа добавлен новый флажок названный \"Видимая "
"скидка\".\n"
@@ -13909,9 +13911,9 @@ msgid ""
msgstr ""
"\n"
"Этот модуль требуется для правильной работы плагина Thuderbird.\n"
-"====================================================================\n"
+"===============================================================\n"
"\n"
-"Плагин позволяет вам архивировать e-mail и её вложения в выбранные\n"
+"Плагин позволяет вам архивировать e-mail c вложениями в выбранные\n"
"объекты OpenERP. Вы можете выбрать партнёра, задачу, проект, счёт\n"
"аналитики или иной объект и прикрепить выбранное письмо как .eml файл во\n"
"вложение выбранной записи. Вы можете создать документы для кандидатов CRM,\n"
@@ -13967,7 +13969,7 @@ msgstr ""
"Цель в наличии завершённого модуля для управления всеми ремонтами товаров. "
"Этим модулем покрыты следующие темы:\n"
"============================================================================="
-"==============================================\n"
+"==================================\n"
"\n"
" * Добавление/удаление товаров в ремонт\n"
" * Влияние на запасы\n"
@@ -14002,7 +14004,7 @@ msgid ""
msgstr ""
"\n"
"Установщик для основанного на знаниях скрытия.\n"
-"====================================\n"
+"==============================================\n"
"\n"
"Делает доступной настройки приложения знаний, откуда вы можете установить\n"
"документ и основанное на Wiki скрытие.\n"
@@ -14080,7 +14082,7 @@ msgid ""
msgstr ""
"\n"
"Синхронизация записей работ по проекту и записей табеля.\n"
-"====================================================================\n"
+"========================================================\n"
"\n"
"Этот модуль позволяет вам перенос записей по задачам определённым для "
"управления проектом в\n"
@@ -14194,7 +14196,7 @@ msgstr ""
"Этот модуль реализует все концепции определённые методологией управления "
"проектом Scrum для ИТ компаний.\n"
"============================================================================="
-"============================\n"
+"===========================\n"
"\n"
" * Проект со спринтами, владелец продукта, мастер Scrum\n"
" * Спринты с обзорами, дневные встречи, обратные связи\n"
@@ -14498,7 +14500,7 @@ msgstr ""
"Этот модуль добавляет в строки операций заказа производства состояние, дату "
"начала, дату завершения (во вкладке \"Рабочие центры\").\n"
"============================================================================="
-"================================\\n\n"
+"=====================================================\n"
"\n"
"Состояния: черновик, подтвердить, сделан, отмена\n"
"При завершении/подтверждении, отмене производственных заказов устанавливает "
@@ -14554,7 +14556,7 @@ msgstr ""
"Этот модуль управляет записями артистов, предметами аукциона, покупателями и "
"продавцами.\n"
"============================================================================="
-"====\n"
+"===========\n"
"\n"
"Он полностью управляет аукционом так, как обслуживает ставки,\n"
"отслеживает проданные предметы вместе с оплаченными\n"
@@ -14564,7 +14566,7 @@ msgstr ""
" * последние объекты (список)\n"
" * последние депозиты (список)\n"
" * статистики объектов (список)\n"
-" * итоговые результаты (график)\\n\n"
+" * итоговые результаты (график)\n"
" * мин./рез./макс. (график)\n"
" * объекты по дню (график)\n"
" "
@@ -14606,7 +14608,7 @@ msgid ""
msgstr ""
"\n"
"Заменяет простые текстовые пароли в базе данных на защищённые хэши\n"
-"===============================================================\n"
+"==================================================================\n"
"Для существующей базы пользователей, удаление простых текстовых\n"
"паролей осуществляется немедленно, когда вы устанавите base_crypt.\n"
"\n"
@@ -14619,7 +14621,7 @@ msgstr ""
"администратор может задать новый пароль.\n"
"\n"
"Предупреждение защиты\n"
-"++++++++++++++++\n"
+"+++++++++++++++++++++\n"
"Установка этого модуля не означает, что вы можете игнорировать другие "
"настройки защиты,\n"
"поскольку пароль остаётся не зашифрованным при передаче по сети, если вы\n"
@@ -14633,7 +14635,7 @@ msgstr ""
"к серверу, и т.д.\n"
"\n"
"Взаимодействие с аутентификацией LDAP\n"
-"+++++++++++++++++++++++++++++++++++\n"
+"+++++++++++++++++++++++++++++++++++++\n"
"Этот модуль сейчас не совместим с модулем ``user_ldap`` и\n"
"будет полностью лишать возможности LDAP аутентификации, если установлен "
"одновременно.\n"
@@ -14818,7 +14820,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль используется совместно с OpenERP плагином OpenOffice.\n"
-"=========================================================\n"
+"=================================================================\n"
"\n"
"Этот модуль добавляет мастер для импорта/экспорта .sxw отчёта, который\n"
"вы можете изменить в OpenOffice. После того как вы измените его, вы можете\n"
@@ -14862,11 +14864,11 @@ msgid ""
msgstr ""
"\n"
"Это полнофункциональная календарная система.\n"
-"========================================\n"
+"============================================\n"
"\n"
"Она поддерживает:\n"
" - Календарь событий\n"
-" - Тревоги (создание запросов)\n"
+" - Оповещения (создание запросов)\n"
" - Повторные события\n"
" - Приглашения людям\n"
"\n"
@@ -14967,9 +14969,10 @@ msgid ""
" "
msgstr ""
"\n"
-"Предоставляет общую платформу , которую могут использовать другие "
+"Предоставляет общую платформу ОЭД(EDI), которую могут использовать другие "
"приложения\n"
-"==============================================================\n"
+"============================================================================="
+"=======\n"
"\n"
"ОЭД(EDI) - обмен электронными документами\n"
"OpenERP определяет общий формат ОЭД для обмена деловыми\n"
@@ -15271,7 +15274,7 @@ msgid ""
msgstr ""
"\n"
"Добавляет поддержку авторизации через LDAP сервер.\n"
-"===============================================\n"
+"==================================================\n"
"Этот модуль позволяет пользователям входить с их именем пользователя и "
"паролём LDAP,\n"
"и автоматически создаст на лету пользователей для OpenERP.\n"
@@ -15281,7 +15284,7 @@ msgstr ""
"``ldap`` Python-а.\n"
"\n"
"Настройка\n"
-"+++++++++++++\n"
+"+++++++++\n"
"После установки этого модуля, вам нужно настроить параметры\n"
"LDAP во вкладке настройки подробностей компании.\n"
"Различные компании могут иметь отличающиеся серверы LDAP, поскольку\n"
@@ -15305,7 +15308,7 @@ msgstr ""
"руководства ldap.conf: manpage:`ldap.conf(5)`.\n"
"\n"
"Соображения защиты\n"
-"+++++++++++++++++++++++\n"
+"++++++++++++++++++\n"
"Пароли пользователей LDAP никогда не сохраняются в базе данных OpenERP,\n"
"LDAP сервер запрашивается всякий раз, когда пользователю нужно быть\n"
"авторизованным. Не происходит дублирования паролей, и\n"
@@ -15336,7 +15339,7 @@ msgstr ""
"серверу LDAP зашифрован.\n"
"\n"
"Шаблон пользователя\n"
-"+++++++++++++\n"
+"+++++++++++++++++++\n"
"В настройках LDAP в форме компании, возможно\n"
"выбрать *Шаблон пользователя*. Если задан, этот пользователь будет "
"использован как\n"
@@ -15359,7 +15362,7 @@ msgstr ""
"группы по вашему желанию.\n"
"\n"
"Взаимодействие с шифрацией базы\n"
-"+++++++++++++++++++++++++++\n"
+"+++++++++++++++++++++++++++++++\n"
"Модуль base_crypt не совместим с этим модулем, и\n"
"отключит аутентификацию LDAP, если установлен одновременно.\n"
"\n"
@@ -15538,7 +15541,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль позволяет вовремя вычислять заказы снабжения.\n"
-"==================================================================\n"
+"=========================================================\n"
"\n"
"Если вы установили этот модуль, вам больше не понадобится регулярное "
"выполнение\n"
@@ -15624,7 +15627,7 @@ msgid ""
msgstr ""
"\n"
"Демо данные для модуля marketing_campaign.\n"
-"============================================\n"
+"==========================================\n"
"\n"
"Создаёт демо данные типа возможностей, кампаний и сегментов для модуля "
"marketing_campaign.\n"
@@ -15904,7 +15907,7 @@ msgid ""
msgstr ""
"\n"
"Назначение этого модуля - проверка качества других модулей.\n"
-"================================================================\n"
+"===========================================================\n"
"\n"
"Он определяет мастер по списку модулей в OpenERP, который позволяет вам\n"
"оценить их по различным критериям, таким как: соответствие стандартам\n"
@@ -15960,7 +15963,7 @@ msgstr ""
"Этот модуль промежуточного процесса комплектования для обеспечения сырьем "
"производственных заказов.\n"
"============================================================================="
-"====================\n"
+"======================\n"
"\n"
"Один пример использования этого модуля - управление производством сделанным "
"вашими\n"
@@ -16056,7 +16059,7 @@ msgid ""
msgstr ""
"\n"
"Основной модуль для управления разнесением аналитики и заказами закупки.\n"
-"====================================================================\n"
+"========================================================================\n"
"\n"
"Позволяет пользователю поддерживать различные аналитические планы. Позволяет "
"вам разбить\n"
@@ -16182,10 +16185,10 @@ msgstr ""
"Модуль управления долгосрочным проектом, который отслеживает планирование, "
"планировщики, назначение ресурсов.\n"
"============================================================================="
-"==============\n"
+"================================\n"
"\n"
"Возможности\n"
-"--------\n"
+"-----------\n"
" * Управление большим проектом.\n"
" * Определение различных этапов проекта.\n"
" * Подсчёт планирования этапа: подсчёт даты начала и конечной даты этапов "
@@ -16321,7 +16324,7 @@ msgid ""
msgstr ""
"\n"
"Отслеживает различные даты по товарам и партиям производства.\n"
-"======================================================\n"
+"=============================================================\n"
"\n"
"Могут быть отслежены следующие даты:\n"
" - конец жизни\n"
@@ -16374,7 +16377,7 @@ msgid ""
msgstr ""
"\n"
"Удаление минимального плана счетов.\n"
-"=============================\n"
+"===================================\n"
"\n"
"Деактивирует минимальный план счетов.\n"
@@ -16442,7 +16445,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль предоставляет возможности улучшения макета заказа продаж.\n"
-"=======================================================================\n"
+"=====================================================================\n"
"\n"
"Он даёт вам возможность\n"
" * упорядочить все позиции заказа продаж\n"
@@ -16596,7 +16599,7 @@ msgstr ""
"Этот модуль показывает основные процессы существующие в выбранных модулях и "
"их последовательность.\n"
"============================================================================="
-"=========================\n"
+"=====================\n"
"\n"
"Примечание: это применимо к модулям содержащим modulename_process_xml\n"
"например: product/process/product_process_xml\n"
@@ -16874,7 +16877,8 @@ msgstr ""
"\n"
"Этот модуль позволяет вам создать любой статистический отчёт по различным "
"объектам.\n"
-"=========================================================================\n"
+"============================================================================="
+"======\n"
"\n"
"Это конструктор SQL запроса и просмотрщик\n"
"для конечных пользователей.\n"
@@ -17092,7 +17096,7 @@ msgid ""
msgstr ""
"\n"
"Это основной модуль для управления товарами и прайс-листами в OpenERP.\n"
-"========================================================================\n"
+"======================================================================\n"
"\n"
"Товары поддерживают варианты, различные методы ценообразования, информацию\n"
"поставщиков, изготовление в запас/по заказу, различные единицы измерения,\n"
@@ -17205,7 +17209,7 @@ msgid ""
msgstr ""
"\n"
"Обеспечивает поддержку живого чата для тех, укого есть договор поддержки.\n"
-"===================================================================\n"
+"=========================================================================\n"
"\n"
"Добавляет кнопку \"Поддержка\" button в заголовке формы доступа к поддержке "
"OpenERP.\n"
@@ -17287,7 +17291,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль предоставляет управление проблемами/ошибками в проекте.\n"
-"=======================================================\n"
+"===================================================================\n"
"\n"
"OpenERP позволяет вам управлять проблемами, которые вы можете встретить в "
"проекте\n"
@@ -17555,8 +17559,7 @@ msgid ""
msgstr ""
"\n"
"Шаблоны e-mail (упрощённая версия оригинальной Power Email от Openlabs)\n"
-"============================================================================="
-"\n"
+"=======================================================================\n"
"\n"
"Позволяет вам разработать полные шаблоны e-mail связанные с любым документом "
"OpenERP (заказами\n"
@@ -17645,7 +17648,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль реализует табельную систему.\n"
-"==========================================\n"
+"========================================\n"
"\n"
"Каждый работник может ввести и отследить время затраченное на различные "
"проекты.\n"
@@ -17731,7 +17734,7 @@ msgid ""
msgstr ""
"\n"
"Это общее управление взаимоотношениями с покупателями (CRM) в OpenERP.\n"
-"=====================================================\\n\n"
+"======================================================================\n"
"\n"
"Эта система позволяет группировать людей для разумного и эффективного "
"управления\n"
@@ -17753,7 +17756,7 @@ msgstr ""
"поблагодарит\n"
"их за сообщение, автоматически направив его соответствующему начальнику, и "
"убедится в том,\n"
-" что вся будущая переписка отправится в правильное место.\n"
+"что вся будущая переписка отправится в правильное место.\n"
"\n"
"Модуль CRM имеет почтовый шлюз для синхронизации интерфейса\n"
"сообщений и OpenERP.\n"
@@ -17924,7 +17927,8 @@ msgstr ""
"(кампании фактически могут быть определены по любому ресурсу, не только по "
"кандидатам CRM).\n"
"============================================================================="
-"============================================================\n"
+"============================================================================="
+"==============\n"
"\n"
"Кампании являются динамическими и много-канальными. Процесс следующий:\n"
" * Разработка маркетинговых кампаний типа рабочих процессов, включая "
@@ -18283,7 +18287,7 @@ msgid ""
msgstr ""
"\n"
"Общая основа для модулей инструментов.\n"
-"==============================\n"
+"======================================\n"
"\n"
"Создаёт пункт меню для инструментов откуда доступны инструменты типа опрос, "
"2-й завтрак, идея, и т.п., если установлены.\n"
@@ -18340,7 +18344,7 @@ msgstr ""
"Этот модуль позволяет вам производить несколько продуктов по одному заказу "
"производства.\n"
"============================================================================="
-"\n"
+"===========\n"
"\n"
"Вы можете настроить суб-продукты в спецификации материала.\n"
"\n"
@@ -18384,7 +18388,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль позволяет вам создавать новые модули без разработки.\n"
-"======================================================================\n"
+"================================================================\n"
"\n"
"Он записывает все операции над объектами в течении сессии записи и\n"
"производит .ZIP модуль. Итак вы можете создать свой собственный модуль прямо "
From e80f34e9cd571d36322ca9b815f0689cb7fbfe87 Mon Sep 17 00:00:00 2001
From: Fabien Pinckaers
Date: Wed, 24 Oct 2012 09:47:01 +0200
Subject: [PATCH 75/82] [IMP] config wizards at install, l10n_*
bzr revid: fp@tinyerp.com-20121024074701-nxwormzwyhduls21
---
addons/l10n_ar/l10n_ar_wizard.xml | 10 ++----
addons/l10n_at/l10n_chart_at_wizard.xml | 8 ++---
addons/l10n_ca/l10n_ca_wizard.xml | 10 ++----
addons/l10n_ch/wizard.xml | 10 ++----
addons/l10n_cl/l10n_cl_wizard.xml | 11 ++----
addons/l10n_cn/l10n_chart_cn_wizard.xml | 9 ++---
addons/l10n_cr/l10n_wizard.xml | 8 ++---
addons/l10n_de/l10n_de_wizard.xml | 9 ++---
addons/l10n_ec/l10n_chart_ec_wizard.xml | 11 ++----
addons/l10n_es/l10n_es_wizard.xml | 6 ++--
addons/l10n_fr/l10n_fr_wizard.xml | 9 ++---
addons/l10n_gr/l10n_gr_wizard.xml | 9 ++---
addons/l10n_gt/l10n_gt_base.xml | 10 ++----
addons/l10n_hn/l10n_hn_base.xml | 8 +----
addons/l10n_in/l10n_in_wizard.xml | 9 ++---
addons/l10n_it/l10n_chart_it_generic.xml | 9 ++---
addons/l10n_lu/l10n_lu_wizard.xml | 8 ++---
addons/l10n_ma/l10n_ma_wizard.xml | 8 ++---
addons/l10n_mx/l10n_chart_mx_wizard.xml | 9 ++---
addons/l10n_nl/l10n_nl_wizard.xml | 17 ++-------
addons/l10n_pe/l10n_pe_wizard.xml | 8 ++---
addons/l10n_pl/l10n_chart_pl_wizard.xml | 9 ++---
addons/l10n_ro/l10n_chart_ro_wizard.xml | 9 ++---
.../l10n_syscohada/l10n_syscohada_wizard.xml | 10 ++----
addons/l10n_th/account_data.xml | 11 ++----
addons/l10n_tr/l10n_tr_wizard.xml | 12 ++-----
addons/l10n_uk/l10n_uk_wizard.xml | 36 +------------------
addons/l10n_us/l10n_us_wizard.xml | 9 ++---
addons/l10n_uy/l10n_uy_wizard.xml | 5 ++-
addons/l10n_ve/l10n_chart_ve_wizard.xml | 12 ++-----
30 files changed, 70 insertions(+), 239 deletions(-)
diff --git a/addons/l10n_ar/l10n_ar_wizard.xml b/addons/l10n_ar/l10n_ar_wizard.xml
index 9a2fa377155..3c94d3db7a8 100644
--- a/addons/l10n_ar/l10n_ar_wizard.xml
+++ b/addons/l10n_ar/l10n_ar_wizard.xml
@@ -2,13 +2,9 @@
-
- Generate Chart of Accounts from a Chart Template
- Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
-
- automatic
-
+
+ open
+
diff --git a/addons/l10n_at/l10n_chart_at_wizard.xml b/addons/l10n_at/l10n_chart_at_wizard.xml
index b23d9be6cb5..efc68ce13e9 100644
--- a/addons/l10n_at/l10n_chart_at_wizard.xml
+++ b/addons/l10n_at/l10n_chart_at_wizard.xml
@@ -1,12 +1,8 @@
-
- Generate Chart of Accounts from a Chart Template
- Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
-
- automatic
+
+ open
diff --git a/addons/l10n_ca/l10n_ca_wizard.xml b/addons/l10n_ca/l10n_ca_wizard.xml
index 3bdc380325d..efc68ce13e9 100644
--- a/addons/l10n_ca/l10n_ca_wizard.xml
+++ b/addons/l10n_ca/l10n_ca_wizard.xml
@@ -1,13 +1,9 @@
-
- Generate Chart of Accounts from a Chart Template
- Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
-
- automatic
-
+
+ open
+
diff --git a/addons/l10n_ch/wizard.xml b/addons/l10n_ch/wizard.xml
index 084159aa36d..792bd21a2fc 100644
--- a/addons/l10n_ch/wizard.xml
+++ b/addons/l10n_ch/wizard.xml
@@ -1,13 +1,7 @@
-
- Generate Chart of Accounts for l10n_ch
- Generate Chart of Accounts from a Chart Template. Please let the nuber to 0 for Swiss charts.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial
- Accounts/Generate Chart of Accounts from a Chart Template.
-
- 4
- automatic
+
+ open
diff --git a/addons/l10n_cl/l10n_cl_wizard.xml b/addons/l10n_cl/l10n_cl_wizard.xml
index fd0d29f1edb..bcbd9a43f27 100644
--- a/addons/l10n_cl/l10n_cl_wizard.xml
+++ b/addons/l10n_cl/l10n_cl_wizard.xml
@@ -1,14 +1,9 @@
-
-
- Generate Chart of Accounts from a Chart Template
- Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
-
- automatic
-
+
+ open
+
diff --git a/addons/l10n_cn/l10n_chart_cn_wizard.xml b/addons/l10n_cn/l10n_chart_cn_wizard.xml
index 0a098120682..6919eb199b6 100644
--- a/addons/l10n_cn/l10n_chart_cn_wizard.xml
+++ b/addons/l10n_cn/l10n_chart_cn_wizard.xml
@@ -1,12 +1,7 @@
-
-
- Generate Chart of Accounts from a Chart Template
- Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
-
- automatic
+
+ open
diff --git a/addons/l10n_cr/l10n_wizard.xml b/addons/l10n_cr/l10n_wizard.xml
index ef37667b318..6919eb199b6 100644
--- a/addons/l10n_cr/l10n_wizard.xml
+++ b/addons/l10n_cr/l10n_wizard.xml
@@ -1,10 +1,8 @@
-
-
-
- automatic
-
+
+ open
+
diff --git a/addons/l10n_de/l10n_de_wizard.xml b/addons/l10n_de/l10n_de_wizard.xml
index 3a0dcd34bd3..efc68ce13e9 100644
--- a/addons/l10n_de/l10n_de_wizard.xml
+++ b/addons/l10n_de/l10n_de_wizard.xml
@@ -1,12 +1,9 @@
-
- Generiert Kontenplan aus Vorlage
- Der Assistent generiert einen Kontenplan auf Basis eines Templates (Vorlage). Sie werden aufgefordert den Namen der Firma einzugeben, sowie die entsprechende Kontenvorlage zu wählen. Ausserdem können Sie für die Initialisierung der Journale die gewünschte Stellenanzahl der Konten, sowie die Hauptwährung Ihres Betriebes auswählen. Dieser Assistent ist identisch mit dem Open ERP Menü Finanzen/Konfiguration/Finanzkonten/Erzeuge Konten aus Vorlage.
-
- automatic
-
+
+ open
+
diff --git a/addons/l10n_ec/l10n_chart_ec_wizard.xml b/addons/l10n_ec/l10n_chart_ec_wizard.xml
index 9906cf9828c..6919eb199b6 100644
--- a/addons/l10n_ec/l10n_chart_ec_wizard.xml
+++ b/addons/l10n_ec/l10n_chart_ec_wizard.xml
@@ -1,13 +1,8 @@
-
-
- Generate Chart of Accounts from a Chart Template
- Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
-
- automatic
-
+
+ open
+
diff --git a/addons/l10n_es/l10n_es_wizard.xml b/addons/l10n_es/l10n_es_wizard.xml
index ec30f9e9e25..52aaa88fdab 100644
--- a/addons/l10n_es/l10n_es_wizard.xml
+++ b/addons/l10n_es/l10n_es_wizard.xml
@@ -1,9 +1,7 @@
-
-
-
- automatic
+
+ open
diff --git a/addons/l10n_fr/l10n_fr_wizard.xml b/addons/l10n_fr/l10n_fr_wizard.xml
index 897da1d5414..bcbd9a43f27 100644
--- a/addons/l10n_fr/l10n_fr_wizard.xml
+++ b/addons/l10n_fr/l10n_fr_wizard.xml
@@ -1,12 +1,9 @@
-
-
-
- automatic
-
+
+ open
+
diff --git a/addons/l10n_gr/l10n_gr_wizard.xml b/addons/l10n_gr/l10n_gr_wizard.xml
index 4fa564e2155..6919eb199b6 100644
--- a/addons/l10n_gr/l10n_gr_wizard.xml
+++ b/addons/l10n_gr/l10n_gr_wizard.xml
@@ -1,12 +1,7 @@
-
-
- Generate Chart of Accounts from a Chart Template
- Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
-
- automatic
+
+ open
diff --git a/addons/l10n_gt/l10n_gt_base.xml b/addons/l10n_gt/l10n_gt_base.xml
index 4ba27d6a5c4..8caf6ebe48c 100644
--- a/addons/l10n_gt/l10n_gt_base.xml
+++ b/addons/l10n_gt/l10n_gt_base.xml
@@ -1,14 +1,8 @@
-
- Generar la nomenclatura contable a partir de un modelo
- Generar la nomenclatura contable a partir de un modelo. Deberá seleccionar una compañía, el modelo a utilizar, el número de digitos a usar en la nomenclatura, la moneda para crear los diarios.
-
-
- automatic
+
+ open
diff --git a/addons/l10n_hn/l10n_hn_base.xml b/addons/l10n_hn/l10n_hn_base.xml
index a12d93db034..b8b85c3f2a7 100644
--- a/addons/l10n_hn/l10n_hn_base.xml
+++ b/addons/l10n_hn/l10n_hn_base.xml
@@ -2,13 +2,7 @@
-
- Generar la nomenclatura contable a partir de un modelo
- Generar la nomenclatura contable a partir de un modelo. Deberá seleccionar una compañía, el modelo a utilizar, el número de digitos a usar en la nomenclatura, la moneda para crear los diarios.
-
-
+
open
diff --git a/addons/l10n_in/l10n_in_wizard.xml b/addons/l10n_in/l10n_in_wizard.xml
index 20d35aa09a2..bcbd9a43f27 100644
--- a/addons/l10n_in/l10n_in_wizard.xml
+++ b/addons/l10n_in/l10n_in_wizard.xml
@@ -1,13 +1,8 @@
-
-
- Generate Chart of Accounts from a Chart Template
- Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
-
- automatic
+
+ open
diff --git a/addons/l10n_it/l10n_chart_it_generic.xml b/addons/l10n_it/l10n_chart_it_generic.xml
index 52269c71962..792bd21a2fc 100644
--- a/addons/l10n_it/l10n_chart_it_generic.xml
+++ b/addons/l10n_it/l10n_chart_it_generic.xml
@@ -1,12 +1,7 @@
-
-
- Generate Chart of Accounts from a Chart Template
- Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
-
- automatic
+
+ open
diff --git a/addons/l10n_lu/l10n_lu_wizard.xml b/addons/l10n_lu/l10n_lu_wizard.xml
index 32351428bb6..6919eb199b6 100644
--- a/addons/l10n_lu/l10n_lu_wizard.xml
+++ b/addons/l10n_lu/l10n_lu_wizard.xml
@@ -1,10 +1,8 @@
-
-
-
- automatic
-
+
+ open
+
diff --git a/addons/l10n_ma/l10n_ma_wizard.xml b/addons/l10n_ma/l10n_ma_wizard.xml
index 428a17e081a..6919eb199b6 100644
--- a/addons/l10n_ma/l10n_ma_wizard.xml
+++ b/addons/l10n_ma/l10n_ma_wizard.xml
@@ -1,10 +1,8 @@
-
-
-
- automatic
-
+
+ open
+
diff --git a/addons/l10n_mx/l10n_chart_mx_wizard.xml b/addons/l10n_mx/l10n_chart_mx_wizard.xml
index aeea1f3cd69..6919eb199b6 100644
--- a/addons/l10n_mx/l10n_chart_mx_wizard.xml
+++ b/addons/l10n_mx/l10n_chart_mx_wizard.xml
@@ -1,12 +1,7 @@
-
-
- Generate Chart of Accounts from a Chart Template
- Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
-
- automatic
+
+ open
diff --git a/addons/l10n_nl/l10n_nl_wizard.xml b/addons/l10n_nl/l10n_nl_wizard.xml
index bcdd183b12c..6919eb199b6 100644
--- a/addons/l10n_nl/l10n_nl_wizard.xml
+++ b/addons/l10n_nl/l10n_nl_wizard.xml
@@ -1,19 +1,8 @@
-
-
- Genereer Grootboekrekingschema vanuit het Nederlandse Grootboek Template
- Na installatie van deze module word de configuratie wizard voor "Accounting" aangeroepen.
-* U krijgt een lijst met grootboektemplates aangeboden waarin zich ook het Nederlandse grootboekschema bevind.
-* Als de configuratie wizard start, wordt u gevraagd om de naam van uw bedrijf in te voeren, welke grootboekschema te installeren, uit hoeveel cijfers een grootboekrekening mag bestaan, het rekeningnummer van uw bank en de currency om Journalen te creeren.
-
-Let op!! -> De template van het Nederlandse rekeningschema is opgebouwd uit 4 cijfers. Dit is het minimale aantal welk u moet invullen, u mag het aantal verhogen. De extra cijfers worden dan achter het rekeningnummer aangevult met "nullen"
-
-* Dit is dezelfe configuratie wizard welke aangeroepen kan worden via Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
-
-
- automatic
-
+
+ open
+
diff --git a/addons/l10n_pe/l10n_pe_wizard.xml b/addons/l10n_pe/l10n_pe_wizard.xml
index e1189fbcc2d..3c94d3db7a8 100644
--- a/addons/l10n_pe/l10n_pe_wizard.xml
+++ b/addons/l10n_pe/l10n_pe_wizard.xml
@@ -2,12 +2,8 @@
-
- Generate Chart of Accounts from a Chart Template
- Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
-
- automatic
+
+ open
diff --git a/addons/l10n_pl/l10n_chart_pl_wizard.xml b/addons/l10n_pl/l10n_chart_pl_wizard.xml
index aded9e3b2a3..6919eb199b6 100644
--- a/addons/l10n_pl/l10n_chart_pl_wizard.xml
+++ b/addons/l10n_pl/l10n_chart_pl_wizard.xml
@@ -1,12 +1,7 @@
-
-
- Generate Chart of Accounts from a Chart Template
- Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
-
- automatic
+
+ open
diff --git a/addons/l10n_ro/l10n_chart_ro_wizard.xml b/addons/l10n_ro/l10n_chart_ro_wizard.xml
index bafb7b26f82..6919eb199b6 100644
--- a/addons/l10n_ro/l10n_chart_ro_wizard.xml
+++ b/addons/l10n_ro/l10n_chart_ro_wizard.xml
@@ -1,12 +1,7 @@
-
-
- Generate Chart of Accounts from a Chart Template
- Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
-
- automatic
+
+ open
diff --git a/addons/l10n_syscohada/l10n_syscohada_wizard.xml b/addons/l10n_syscohada/l10n_syscohada_wizard.xml
index 7174ef438b7..792bd21a2fc 100644
--- a/addons/l10n_syscohada/l10n_syscohada_wizard.xml
+++ b/addons/l10n_syscohada/l10n_syscohada_wizard.xml
@@ -1,11 +1,7 @@
-
- Generate Chart of Accounts from a Chart Template
- Generate Chart of Accounts from a SYSCOHADA Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
-
- automatic
-
+
+ open
+
diff --git a/addons/l10n_th/account_data.xml b/addons/l10n_th/account_data.xml
index d5885d4b92b..d730caa8404 100644
--- a/addons/l10n_th/account_data.xml
+++ b/addons/l10n_th/account_data.xml
@@ -643,14 +643,9 @@
-
-
- Generate Chart of Accounts from a Chart Template
- Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
-This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
-
- automatic
-
+
+ open
+
diff --git a/addons/l10n_tr/l10n_tr_wizard.xml b/addons/l10n_tr/l10n_tr_wizard.xml
index e7ae8dc2d82..59668347bed 100644
--- a/addons/l10n_tr/l10n_tr_wizard.xml
+++ b/addons/l10n_tr/l10n_tr_wizard.xml
@@ -1,16 +1,8 @@
-
- Generate Chart of Accounts from a Chart Template
- Generate Chart of Accounts from a Chart Template. You will be
-asked to pass the name of the company, the chart template to follow, the no. of digits to generate
-the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of
-chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial
-Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
-
- automatic
+
+ open
diff --git a/addons/l10n_uk/l10n_uk_wizard.xml b/addons/l10n_uk/l10n_uk_wizard.xml
index cb947163ab3..1b8d528c0e8 100644
--- a/addons/l10n_uk/l10n_uk_wizard.xml
+++ b/addons/l10n_uk/l10n_uk_wizard.xml
@@ -1,41 +1,7 @@
-
-
- Generate Chart of Accounts from a Chart Template
- wizard.multi.charts.accounts
-
-
-
-
-
-
-
-
-
- Generate UK Chart of Accounts from a Chart Template
- ir.actions.act_window
- wizard.multi.charts.accounts
-
- form
- form
- new
-
-
-
-
- 10
- once
+
open
diff --git a/addons/l10n_us/l10n_us_wizard.xml b/addons/l10n_us/l10n_us_wizard.xml
index 8c306f155fe..6919eb199b6 100644
--- a/addons/l10n_us/l10n_us_wizard.xml
+++ b/addons/l10n_us/l10n_us_wizard.xml
@@ -1,12 +1,7 @@
-
-
- Generate Chart of Accounts from a Chart Template
- Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
-
- automatic
+
+ open
diff --git a/addons/l10n_uy/l10n_uy_wizard.xml b/addons/l10n_uy/l10n_uy_wizard.xml
index 6543664b2b6..49cbeca89f9 100644
--- a/addons/l10n_uy/l10n_uy_wizard.xml
+++ b/addons/l10n_uy/l10n_uy_wizard.xml
@@ -1,9 +1,8 @@
-
-
- automatic
+
+ open
diff --git a/addons/l10n_ve/l10n_chart_ve_wizard.xml b/addons/l10n_ve/l10n_chart_ve_wizard.xml
index 823fa833313..6919eb199b6 100644
--- a/addons/l10n_ve/l10n_chart_ve_wizard.xml
+++ b/addons/l10n_ve/l10n_chart_ve_wizard.xml
@@ -1,15 +1,7 @@
-
-
- Generate Chart of Accounts from a Chart Template
- Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
-This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
-Genere el Plan de cuentas de una Plantilla de Carta. Le pedirán pasar el nombre de la compania, la plantilla de carta para seguir, el no. de digitos para generar el codigo para sus cuentas y cuenta Bancaria, dinero para crear Diarios. Asi, la copia pura de la carta la Plantilla es generada.
-Esto es el mismo wizard que corre de la Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
-
-
- automatic
+
+ open
From 2067192d37bf2c0aed78cc9576a2961e964b2139 Mon Sep 17 00:00:00 2001
From: Fabien Pinckaers
Date: Wed, 24 Oct 2012 10:44:09 +0200
Subject: [PATCH 76/82] [IMP] rename columns for importation
bzr revid: fp@tinyerp.com-20121024084409-ad4kuccw6bki3zdg
---
openerp/addons/base/module/module.py | 3 +--
openerp/addons/base/res/res_partner.py | 4 ++--
2 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/openerp/addons/base/module/module.py b/openerp/addons/base/module/module.py
index 5fbb28d36db..3484b40cee9 100644
--- a/openerp/addons/base/module/module.py
+++ b/openerp/addons/base/module/module.py
@@ -418,13 +418,12 @@ class module(osv.osv):
_, pool = pooler.restart_pool(cr.dbname, update_module=True)
config = pool.get('res.config').next(cr, uid, [], context=context) or {}
- if config.get('type') not in ('ir.actions.reload', 'ir.actions.act_window_close'):
+ if config.get('type') not in ('ir.actions.act_window_close',):
return config
# reload the client; open the first available root menu
menu_obj = self.pool.get('ir.ui.menu')
menu_ids = menu_obj.search(cr, uid, [('parent_id', '=', False)], context=context)
-
return {
'type' : 'ir.actions.client',
'tag' : 'reload',
diff --git a/openerp/addons/base/res/res_partner.py b/openerp/addons/base/res/res_partner.py
index 0c0e3398f88..9ed2333a23b 100644
--- a/openerp/addons/base/res/res_partner.py
+++ b/openerp/addons/base/res/res_partner.py
@@ -186,7 +186,7 @@ class res_partner(osv.osv, format_address):
'name': fields.char('Name', size=128, required=True, select=True),
'date': fields.date('Date', select=1),
'title': fields.many2one('res.partner.title', 'Title'),
- 'parent_id': fields.many2one('res.partner', 'Company'),
+ 'parent_id': fields.many2one('res.partner', 'Related Company'),
'child_ids': fields.one2many('res.partner', 'parent_id', 'Contacts'),
'ref': fields.char('Reference', size=64, select=1),
'lang': fields.selection(_lang_get, 'Language',
@@ -229,7 +229,7 @@ class res_partner(osv.osv, format_address):
'fax': fields.char('Fax', size=64),
'mobile': fields.char('Mobile', size=64),
'birthdate': fields.char('Birthdate', size=64),
- 'is_company': fields.boolean('Company', help="Check if the contact is a company, otherwise it is a person"),
+ 'is_company': fields.boolean('Is a Company', help="Check if the contact is a company, otherwise it is a person"),
'use_parent_address': fields.boolean('Use Company Address', help="Select this if you want to set company's address information for this contact"),
# image: all image fields are base64 encoded and PIL-supported
'image': fields.binary("Image",
From 0445d740a7495afc594cf952822a88df06db84a8 Mon Sep 17 00:00:00 2001
From: Fabien Pinckaers
Date: Wed, 24 Oct 2012 12:29:15 +0200
Subject: [PATCH 77/82] [IMP] CSS import wizard
bzr revid: fp@tinyerp.com-20121024102915-dtfy3dc4ll0ewf90
---
addons/base_import/static/src/css/import.css | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/addons/base_import/static/src/css/import.css b/addons/base_import/static/src/css/import.css
index 07b193c3dc4..47b5506a10f 100644
--- a/addons/base_import/static/src/css/import.css
+++ b/addons/base_import/static/src/css/import.css
@@ -156,5 +156,11 @@
border-right: 1px solid #D0D0D0;
}
+.oe_import .oe_import_error_report > p {
+ background: #efc9cb;
+}
+.oe_import .select2-results {
+ font-size: 12px;
+}
From aebe743964575c9d9a90b8e6dbcd2d7efd4b4db8 Mon Sep 17 00:00:00 2001
From: Antony Lesuisse
Date: Wed, 24 Oct 2012 13:17:46 +0200
Subject: [PATCH 78/82] [FIX] revert remove password fp merge Overriding the
reset password meachnism should be done in auth signup/reset password addons.
bzr revid: al@openerp.com-20121024111746-r94n1uqyb01a4x0m
---
openerp/addons/base/res/res_users.py | 7 +++++++
openerp/addons/base/res/res_users_view.xml | 3 ++-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/openerp/addons/base/res/res_users.py b/openerp/addons/base/res/res_users.py
index 6b93a6e1e42..27fb7603c7e 100644
--- a/openerp/addons/base/res/res_users.py
+++ b/openerp/addons/base/res/res_users.py
@@ -486,6 +486,13 @@ class res_users(osv.osv):
'tag': 'reload',
}
+ def preference_change_password(self, cr, uid, ids, context=None):
+ return {
+ 'type': 'ir.actions.client',
+ 'tag': 'change_password',
+ 'target': 'new',
+ }
+
def has_group(self, cr, uid, group_ext_id):
"""Checks whether user belongs to given group.
diff --git a/openerp/addons/base/res/res_users_view.xml b/openerp/addons/base/res/res_users_view.xml
index 7c4988bd1f0..78579fc66df 100644
--- a/openerp/addons/base/res/res_users_view.xml
+++ b/openerp/addons/base/res/res_users_view.xml
@@ -213,7 +213,8 @@
From 11c0784d710502447fd86c9aed227c93402d2196 Mon Sep 17 00:00:00 2001
From: Fabien Pinckaers
Date: Wed, 24 Oct 2012 13:37:28 +0200
Subject: [PATCH 79/82] [IMP] hr_timesheet_sheet form view
bzr revid: fp@tinyerp.com-20121024113728-r3nx6p8c8q0mh64q
---
.../hr_timesheet_sheet_view.xml | 34 +++++++++----------
.../static/src/xml/timesheet.xml | 8 ++---
2 files changed, 20 insertions(+), 22 deletions(-)
diff --git a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
index fc35a17377f..f5438432927 100644
--- a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
+++ b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
@@ -54,18 +54,18 @@
-
+
- to
+ to
-
+
-
+
@@ -76,8 +76,8 @@
-
-
+
+
@@ -85,21 +85,19 @@
-
-
-
+
+
+
+
-
-
-
-
+
-
+
@@ -123,13 +121,13 @@
-
-
+
+
-
+
-
+
diff --git a/addons/hr_timesheet_sheet/static/src/xml/timesheet.xml b/addons/hr_timesheet_sheet/static/src/xml/timesheet.xml
index 0c4ad857d3b..a5b2f779bd0 100644
--- a/addons/hr_timesheet_sheet/static/src/xml/timesheet.xml
+++ b/addons/hr_timesheet_sheet/static/src/xml/timesheet.xml
@@ -12,7 +12,7 @@
- TOTAL
+ Total
@@ -36,8 +36,8 @@
-
Add Row
-
TOTAL
+
Add a Project
+
Total
@@ -53,4 +53,4 @@
-
\ No newline at end of file
+
From 4c591fa6062cf28d9593e009d5a9ff0c53ab3411 Mon Sep 17 00:00:00 2001
From: Olivier Dony
Date: Wed, 24 Oct 2012 14:47:09 +0200
Subject: [PATCH 80/82] [FIX] ir_attachment: fix regression when counting
attachments (OPW 576295)
Cherry-pick forward-port of rev-id odo@openerp.com-20120816154020-5s6wbwfb5l2xsnyv
from 6.1. Fixes regression introduced by r.4069.
bzr revid: odo@openerp.com-20121024124709-28w8rh8xnelvuhwg
---
openerp/addons/base/ir/ir_attachment.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/openerp/addons/base/ir/ir_attachment.py b/openerp/addons/base/ir/ir_attachment.py
index 4978378f22a..730df212b4c 100644
--- a/openerp/addons/base/ir/ir_attachment.py
+++ b/openerp/addons/base/ir/ir_attachment.py
@@ -57,7 +57,7 @@ class ir_attachment(osv.osv):
def _search(self, cr, uid, args, offset=0, limit=None, order=None, context=None, count=False, access_rights_uid=None):
ids = super(ir_attachment, self)._search(cr, uid, args, offset=offset,
limit=limit, order=order,
- context=context, count=count,
+ context=context, count=False,
access_rights_uid=access_rights_uid)
if not ids:
if count:
From 9582a8bc825891ff65eb387aa96a2b61201c69ab Mon Sep 17 00:00:00 2001
From: Olivier Dony
Date: Wed, 24 Oct 2012 18:15:27 +0200
Subject: [PATCH 81/82] [FIX] res.lang: ar_AR does not exist (Arabic in
Argentina?!) -> replaced with ar_SY
ar_SY is the default locale alias for the `ar`
code in babel, so we can use that until a
translation team asks for a regional
variation of Arabic.
This should also fix an issue in the web
client, where ar_AR was not working, because
silently replaced with ar_SY.
This will only work for new databases,
old ones should be manually fixed.
bzr revid: odo@openerp.com-20121024161527-vec2r46a4o5lk47x
---
openerp/tools/misc.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/openerp/tools/misc.py b/openerp/tools/misc.py
index ba6ea1137d1..caf28e54481 100644
--- a/openerp/tools/misc.py
+++ b/openerp/tools/misc.py
@@ -597,7 +597,7 @@ def get_iso_codes(lang):
ALL_LANGUAGES = {
'ab_RU': u'Abkhazian / аҧсуа',
- 'ar_AR': u'Arabic / الْعَرَبيّة',
+ 'ar_SY': u'Arabic / الْعَرَبيّة',
'bg_BG': u'Bulgarian / български език',
'bs_BS': u'Bosnian / bosanski jezik',
'ca_ES': u'Catalan / Català',
From 013f14931bdc13c63fa6e169cf7fff364d5dda5a Mon Sep 17 00:00:00 2001
From: Launchpad Translations on behalf of openerp <>
Date: Thu, 25 Oct 2012 05:35:47 +0000
Subject: [PATCH 82/82] Launchpad automatic translations update.
bzr revid: launchpad_translations_on_behalf_of_openerp-20121025053547-u65gilonqbpjbgzy
---
addons/crm_claim/i18n/ru.po | 26 +++++++++---------
addons/crm_helpdesk/i18n/ru.po | 46 ++++++++++++++++----------------
addons/document_page/i18n/ru.po | 14 +++++-----
addons/procurement/i18n/ru.po | 11 ++++----
addons/product_expiry/i18n/ru.po | 8 +++---
5 files changed, 52 insertions(+), 53 deletions(-)
diff --git a/addons/crm_claim/i18n/ru.po b/addons/crm_claim/i18n/ru.po
index cea6d33e47d..d92bca12fa9 100644
--- a/addons/crm_claim/i18n/ru.po
+++ b/addons/crm_claim/i18n/ru.po
@@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
-"PO-Revision-Date: 2012-10-24 04:51+0000\n"
+"PO-Revision-Date: 2012-10-24 05:01+0000\n"
"Last-Translator: Chertykov Denis \n"
"Language-Team: Russian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-24 04:55+0000\n"
+"X-Launchpad-Export-Date: 2012-10-25 05:35+0000\n"
"X-Generator: Launchpad (build 16179)\n"
#. module: crm_claim
@@ -474,7 +474,7 @@ msgstr "Июнь"
#. module: crm_claim
#: view:res.partner:0
msgid "Partners Claim"
-msgstr ""
+msgstr "Претензии партнера"
#. module: crm_claim
#: field:crm.claim,partner_phone:0
@@ -489,7 +489,7 @@ msgstr "Пользователь"
#. module: crm_claim
#: field:crm.claim,active:0
msgid "Active"
-msgstr ""
+msgstr "Активен"
#. module: crm_claim
#: selection:crm.claim.report,month:0
@@ -621,13 +621,13 @@ msgstr "Открыть"
#. module: crm_claim
#: view:crm.claim:0
msgid "New Claims"
-msgstr ""
+msgstr "Новые претензии"
#. module: crm_claim
#: view:crm.claim:0
#: selection:crm.claim,state:0
msgid "In Progress"
-msgstr "Выполняется"
+msgstr "В работе"
#. module: crm_claim
#: view:crm.claim:0
@@ -638,17 +638,17 @@ msgstr "Ответственный"
#. module: crm_claim
#: view:crm.claim.report:0
msgid "Claims created in current year"
-msgstr ""
+msgstr "Претензии созданные в текущем году"
#. module: crm_claim
#: view:crm.claim:0
msgid "Unassigned Claims"
-msgstr ""
+msgstr "Не назначенные претензии"
#. module: crm_claim
#: view:crm.claim.report:0
msgid "Claims created in current month"
-msgstr ""
+msgstr "Претензии созданные в текущем месяце"
#. module: crm_claim
#: field:crm.claim.report,delay_expected:0
@@ -718,7 +718,7 @@ msgstr "Выполненные действия"
#. module: crm_claim
#: view:crm.claim.report:0
msgid "Claims created in last month"
-msgstr ""
+msgstr "Претензии созданные в прошлом месяце"
#. module: crm_claim
#: model:crm.case.stage,name:crm_claim.stage_claim5
@@ -760,7 +760,7 @@ msgstr "Год"
#. module: crm_claim
#: view:crm.claim.report:0
msgid "My company"
-msgstr ""
+msgstr "Моя компания"
#. module: crm_claim
#: selection:crm.claim.report,month:0
@@ -780,7 +780,7 @@ msgstr "Идентификатор"
#. module: crm_claim
#: constraint:res.partner:0
msgid "Error ! You cannot create recursive associated members."
-msgstr ""
+msgstr "Ошибка! Вы не можете создавать рекурсивные ссылки на участников."
#. module: crm_claim
#: view:crm.claim:0
@@ -810,7 +810,7 @@ msgstr "Дата создания"
#. module: crm_claim
#: view:crm.claim:0
msgid "In Progress Claims"
-msgstr ""
+msgstr "Претензии \"В работе\""
#~ msgid "Probability"
#~ msgstr "Вероятность"
diff --git a/addons/crm_helpdesk/i18n/ru.po b/addons/crm_helpdesk/i18n/ru.po
index c0338447d34..452bdda501b 100644
--- a/addons/crm_helpdesk/i18n/ru.po
+++ b/addons/crm_helpdesk/i18n/ru.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
-"PO-Revision-Date: 2010-12-20 08:54+0000\n"
+"PO-Revision-Date: 2012-10-24 05:08+0000\n"
"Last-Translator: Chertykov Denis \n"
"Language-Team: Russian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:34+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-25 05:35+0000\n"
+"X-Generator: Launchpad (build 16179)\n"
#. module: crm_helpdesk
#: field:crm.helpdesk.report,delay_close:0
@@ -46,7 +46,7 @@ msgstr "Март"
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
msgid "Helpdesk requests occurred in current year"
-msgstr ""
+msgstr "Запросы на техподдержку в текущем году"
#. module: crm_helpdesk
#: field:crm.helpdesk,company_id:0
@@ -80,7 +80,7 @@ msgstr "Добавить внутреннею заметку"
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
msgid "Date of helpdesk requests"
-msgstr ""
+msgstr "Дата запросов техподдержки"
#. module: crm_helpdesk
#: view:crm.helpdesk:0
@@ -95,7 +95,7 @@ msgstr "Сообщения"
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
msgid "My company"
-msgstr ""
+msgstr "Моя компания"
#. module: crm_helpdesk
#: selection:crm.helpdesk,state:0
@@ -156,7 +156,7 @@ msgstr "Раздел"
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
msgid "Helpdesk requests occurred in last month"
-msgstr ""
+msgstr "последний месяц"
#. module: crm_helpdesk
#: view:crm.helpdesk:0
@@ -166,14 +166,14 @@ msgstr "Отправить новое эл. письмо"
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "Helpdesk requests during last 7 days"
-msgstr ""
+msgstr "Запросы на техподдержку за последние 7 дней"
#. module: crm_helpdesk
#: view:crm.helpdesk:0
#: selection:crm.helpdesk,state:0
#: view:crm.helpdesk.report:0
msgid "New"
-msgstr ""
+msgstr "Новый"
#. module: crm_helpdesk
#: model:ir.model,name:crm_helpdesk.model_crm_helpdesk_report
@@ -207,7 +207,7 @@ msgstr "# Писем"
#: view:crm.helpdesk:0
#: view:crm.helpdesk.report:0
msgid "My Sales Team(s)"
-msgstr ""
+msgstr "Мои отделы продаж"
#. module: crm_helpdesk
#: field:crm.helpdesk,create_date:0
@@ -252,7 +252,7 @@ msgstr "Категории"
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "New Helpdesk Request"
-msgstr ""
+msgstr "Новый запрос техподдержки"
#. module: crm_helpdesk
#: view:crm.helpdesk:0
@@ -267,13 +267,13 @@ msgstr "Даты"
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
msgid "Month of helpdesk requests"
-msgstr ""
+msgstr "Месяц запросов техподдержки"
#. module: crm_helpdesk
#: code:addons/crm_helpdesk/crm_helpdesk.py:101
#, python-format
msgid "No Subject"
-msgstr ""
+msgstr "Без темы"
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
@@ -283,12 +283,12 @@ msgstr "№ техподдержки"
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "All pending Helpdesk Request"
-msgstr ""
+msgstr "Все ожидающие запросы техподдержки"
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
msgid "Year of helpdesk requests"
-msgstr ""
+msgstr "Год запросов техподдержки"
#. module: crm_helpdesk
#: view:crm.helpdesk:0
@@ -324,7 +324,7 @@ msgstr "Дата изменения"
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
msgid "Helpdesk requests occurred in current month"
-msgstr ""
+msgstr "Запросы техподдержки в текущем месяце"
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
@@ -345,7 +345,7 @@ msgstr "Категория"
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "Responsible User"
-msgstr ""
+msgstr "Ответственный пользователь"
#. module: crm_helpdesk
#: view:crm.helpdesk:0
@@ -361,7 +361,7 @@ msgstr "Планируемые затраты"
#. module: crm_helpdesk
#: help:crm.helpdesk,channel_id:0
msgid "Communication channel."
-msgstr ""
+msgstr "Канал общения"
#. module: crm_helpdesk
#: help:crm.helpdesk,email_cc:0
@@ -575,7 +575,7 @@ msgstr "Дерево поддержи"
#. module: crm_helpdesk
#: selection:crm.helpdesk,state:0
msgid "In Progress"
-msgstr ""
+msgstr "В работе"
#. module: crm_helpdesk
#: view:crm.helpdesk:0
@@ -660,7 +660,7 @@ msgstr "Название"
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
msgid "Month-1"
-msgstr ""
+msgstr "Месяц-1"
#. module: crm_helpdesk
#: model:ir.ui.menu,name:crm_helpdesk.menu_help_support_main
@@ -699,17 +699,17 @@ msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "Todays's Helpdesk Requests"
-msgstr ""
+msgstr "Запросы техподдержки за сегодня"
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "Request Date"
-msgstr ""
+msgstr "Дата запроса"
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "Open Helpdesk Request"
-msgstr ""
+msgstr "Открыть запрос техподдержки"
#. module: crm_helpdesk
#: selection:crm.helpdesk,priority:0
diff --git a/addons/document_page/i18n/ru.po b/addons/document_page/i18n/ru.po
index 52b81a58fc2..6b0f0f158fb 100644
--- a/addons/document_page/i18n/ru.po
+++ b/addons/document_page/i18n/ru.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 01:37+0100\n"
-"PO-Revision-Date: 2012-08-13 12:11+0000\n"
+"PO-Revision-Date: 2012-10-24 05:09+0000\n"
"Last-Translator: Chertykov Denis \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:39+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-25 05:35+0000\n"
+"X-Generator: Launchpad (build 16179)\n"
#. module: document_page
#: field:document.page.type,template:0
@@ -270,7 +270,7 @@ msgstr "История всех страниц"
#. module: document_page
#: model:ir.model,name:document_page.model_wiki_wiki
msgid "document.page"
-msgstr ""
+msgstr "document.page"
#. module: document_page
#: help:document.page.type,method:0
@@ -285,7 +285,7 @@ msgstr "Закрыть"
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_wiki_history_show_diff
msgid "wizard.document.page.history.show_diff"
-msgstr ""
+msgstr "wizard.document.page.history.show_diff"
#. module: document_page
#: field:document.page.history,wiki_id:0
@@ -357,7 +357,7 @@ msgstr "Это существенные изменения ?"
#: model:ir.model,name:document_page.model_wiki_groups
#: model:ir.ui.menu,name:document_page.menu_action_wiki_groups view:document.page.type:0
msgid "Document Types"
-msgstr ""
+msgstr "Типы документов"
#. module: document_page
#: view:document.page:0
@@ -374,7 +374,7 @@ msgstr "Изменено"
#: field:document.page,type:0
#, python-format
msgid "Type"
-msgstr ""
+msgstr "Тип"
#. module: document_page
#: view:document.page.type:0 view:document.page.page.open:0
diff --git a/addons/procurement/i18n/ru.po b/addons/procurement/i18n/ru.po
index b4541872669..be374ec29cd 100644
--- a/addons/procurement/i18n/ru.po
+++ b/addons/procurement/i18n/ru.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2012-02-08 00:37+0000\n"
-"PO-Revision-Date: 2012-08-30 18:15+0000\n"
+"PO-Revision-Date: 2012-10-24 16:47+0000\n"
"Last-Translator: Chertykov Denis \n"
"Language-Team: Russian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:32+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-25 05:35+0000\n"
+"X-Generator: Launchpad (build 16179)\n"
#. module: procurement
#: view:make.procurement:0
@@ -51,7 +51,7 @@ msgstr "Группировать по ..."
#. module: procurement
#: help:stock.warehouse.orderpoint,procurement_draft_ids:0
msgid "Draft procurement of the product and location of that orderpoint"
-msgstr "Черновик закупки ТМЦ и положение точки заказа"
+msgstr "Черновик снабжения ТМЦ и положение точки заказа"
#. module: procurement
#: code:addons/procurement/procurement.py:291
@@ -380,8 +380,7 @@ msgstr "Количество"
#: code:addons/procurement/procurement.py:379
#, python-format
msgid "Not enough stock and no minimum orderpoint rule defined."
-msgstr ""
-"Не достаточный запас и не определено правило минимальной точки заказа."
+msgstr "Не достаточен запас и нет правила минимума точки заказа."
#. module: procurement
#: code:addons/procurement/procurement.py:137
diff --git a/addons/product_expiry/i18n/ru.po b/addons/product_expiry/i18n/ru.po
index 86ccf672713..186124080e5 100644
--- a/addons/product_expiry/i18n/ru.po
+++ b/addons/product_expiry/i18n/ru.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2012-02-08 00:37+0000\n"
-"PO-Revision-Date: 2010-11-22 07:21+0000\n"
+"PO-Revision-Date: 2012-10-24 05:12+0000\n"
"Last-Translator: Chertykov Denis \n"
"Language-Team: Russian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:28+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-25 05:35+0000\n"
+"X-Generator: Launchpad (build 16179)\n"
#. module: product_expiry
#: model:ir.model,name:product_expiry.model_stock_production_lot
@@ -162,7 +162,7 @@ msgstr ""
#. module: product_expiry
#: field:product.product,alert_time:0
msgid "Product Alert Time"
-msgstr ""
+msgstr "Время оповещения товара"
#~ msgid ""
#~ "Error: The default UOM and the purchase UOM must be in the same category."