summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRucha (Open ERP) <rpa@tinyerp.com>2012-08-17 10:36:50 +0530
committerRucha (Open ERP) <rpa@tinyerp.com>2012-08-17 10:36:50 +0530
commitb392bc8e46e4e335c7e870fb949949f83ddd5b2b (patch)
tree7548e08579bbecf31a9c15304d360965c361a022
parent7a24bdb1f7b408bda4cb3674691e5dd53a5e8766 (diff)
parent9b7e11cb047a889fdd56a5575a05b3f74d7f2730 (diff)
[MERGE]: Merge with latest trunk-addons
bzr revid: rpa@tinyerp.com-20120817050650-o9bv5oav40s7s6ql
-rw-r--r--addons/account_analytic_analysis/i18n/it.po71
-rw-r--r--addons/crm/crm_lead_view.xml1
-rw-r--r--addons/document/report/document_report.py6
-rw-r--r--addons/hr_recruitment/__openerp__.py20
-rw-r--r--addons/hr_recruitment/hr_recruitment.py23
-rw-r--r--addons/hr_recruitment/hr_recruitment_view.xml12
-rw-r--r--addons/hr_recruitment/security/ir.model.access.csv2
-rw-r--r--addons/hr_recruitment/static/src/js/hr_recruitment.js35
-rw-r--r--addons/portal/__openerp__.py12
-rwxr-xr-x[-rw-r--r--]addons/portal_event/portal_event_view.xml16
-rw-r--r--addons/portal_sale/portal_sale_view.xml56
-rw-r--r--addons/project/__openerp__.py62
-rw-r--r--addons/project/project_view.xml2
-rw-r--r--addons/project/security/ir.model.access.csv2
-rw-r--r--addons/project_issue/project_issue_view.xml1
15 files changed, 235 insertions, 86 deletions
diff --git a/addons/account_analytic_analysis/i18n/it.po b/addons/account_analytic_analysis/i18n/it.po
index 8ccf91b1fd3..c71ad83d9c7 100644
--- a/addons/account_analytic_analysis/i18n/it.po
+++ b/addons/account_analytic_analysis/i18n/it.po
@@ -7,19 +7,19 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev_rc3\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2011-01-13 18:03+0000\n"
-"Last-Translator: Nicola Riolini - Micronaet <Unknown>\n"
+"PO-Revision-Date: 2012-08-16 09:05+0000\n"
+"Last-Translator: gagarin <Unknown>\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-08-07 05:14+0000\n"
-"X-Generator: Launchpad (build 15745)\n"
+"X-Launchpad-Export-Date: 2012-08-17 04:38+0000\n"
+"X-Generator: Launchpad (build 15810)\n"
#. module: account_analytic_analysis
#: field:account.analytic.account,revenue_per_hour:0
msgid "Revenue per Time (real)"
-msgstr ""
+msgstr "Ricavo orario (reale)"
#. module: account_analytic_analysis
#: help:account.analytic.account,remaining_ca:0
@@ -38,11 +38,13 @@ msgid ""
"The contracts to be renewed because the deadline is passed or the working "
"hours are higher than the allocated hours"
msgstr ""
+"I contratti da rinnovare perchè la scadenza è passata o le ore lavorate sono "
+"maggiori delle ore allocate"
#. module: account_analytic_analysis
#: view:account.analytic.account:0
msgid "Pending contracts to renew with your customer"
-msgstr ""
+msgstr "Contratti in sospeso da rinnovare con il cliente"
#. module: account_analytic_analysis
#: help:account.analytic.account,hours_qtt_non_invoiced:0
@@ -50,6 +52,8 @@ msgid ""
"Number of time (hours/days) (from journal of type 'general') that can be "
"invoiced if you invoice based on analytic account."
msgstr ""
+"Tempo fatturabile (in ore/giorni, dal giornale di tipo 'generale') se si "
+"fattura tramite conto analitico"
#. module: account_analytic_analysis
#: view:account.analytic.account:0
@@ -59,17 +63,17 @@ msgstr ""
#. module: account_analytic_analysis
#: view:account.analytic.account:0
msgid "Group By..."
-msgstr ""
+msgstr "Raggruppa per..."
#. module: account_analytic_analysis
#: view:account.analytic.account:0
msgid "End Date"
-msgstr ""
+msgstr "Data fine"
#. module: account_analytic_analysis
#: view:account.analytic.account:0
msgid "Create Invoice"
-msgstr ""
+msgstr "Crea Fattura"
#. module: account_analytic_analysis
#: field:account.analytic.account,last_invoice_date:0
@@ -87,16 +91,18 @@ msgid ""
"Number of time you spent on the analytic account (from timesheet). It "
"computes quantities on all journal of type 'general'."
msgstr ""
+"Costi orari da attribuire al conto analitico (da timesheet). Calcola "
+"quantità su tutti i sezionali di tipo 'generale'."
#. module: account_analytic_analysis
#: view:account.analytic.account:0
msgid "Contracts in progress"
-msgstr ""
+msgstr "Contratti attivi"
#. module: account_analytic_analysis
#: field:account.analytic.account,is_overdue_quantity:0
msgid "Overdue Quantity"
-msgstr ""
+msgstr "Quantità Scadute"
#. module: account_analytic_analysis
#: model:ir.actions.act_window,help:account_analytic_analysis.action_account_analytic_overdue
@@ -108,16 +114,22 @@ msgid ""
"pending accounts and reopen or close the according to the negotiation with "
"the customer."
msgstr ""
+"Qui troverai i contratti da rinnovare in quanto scaduti o le ore lavorate "
+"sono maggiori di quelle allocate. OpenERP imposta automaticamente questi "
+"conti analitici in stato sospeso, in modo da notificare un avviso durante la "
+"fase di inserimento dei timesheet. I commerciali dovrebbero ricontrollare "
+"tutti i contratti sospesi e riaprirli/chiuderli coerentemente con quanto il "
+"cliente vuole rinegoziare."
#. module: account_analytic_analysis
#: field:account.analytic.account,ca_theorical:0
msgid "Theoretical Revenue"
-msgstr "Ricavo teorico"
+msgstr "Ricavo Teorico"
#. module: account_analytic_analysis
#: field:account.analytic.account,hours_qtt_non_invoiced:0
msgid "Uninvoiced Time"
-msgstr ""
+msgstr "Tempo non fatturato"
#. module: account_analytic_analysis
#: help:account.analytic.account,last_worked_invoiced_date:0
@@ -131,7 +143,7 @@ msgstr ""
#. module: account_analytic_analysis
#: view:account.analytic.account:0
msgid "To Renew"
-msgstr ""
+msgstr "Da Rinnovare"
#. module: account_analytic_analysis
#: field:account.analytic.account,last_worked_date:0
@@ -141,24 +153,25 @@ msgstr "Data dell'ultimo costo/lavoro"
#. module: account_analytic_analysis
#: field:account.analytic.account,hours_qtt_invoiced:0
msgid "Invoiced Time"
-msgstr ""
+msgstr "Tempo Fatturato"
#. module: account_analytic_analysis
#: view:account.analytic.account:0
msgid ""
"A contract in OpenERP is an analytic account having a partner set on it."
msgstr ""
+"Un contratto in OpenERP è un conto analitico associato ad un partner."
#. module: account_analytic_analysis
#: field:account.analytic.account,remaining_hours:0
msgid "Remaining Time"
-msgstr ""
+msgstr "Tempo rimanente"
#. module: account_analytic_analysis
#: model:ir.actions.act_window,name:account_analytic_analysis.action_account_analytic_overdue
#: model:ir.ui.menu,name:account_analytic_analysis.menu_action_account_analytic_overdue
msgid "Contracts to Renew"
-msgstr ""
+msgstr "Contratti da Rinnovare"
#. module: account_analytic_analysis
#: field:account.analytic.account,theorical_margin:0
@@ -168,7 +181,7 @@ msgstr "Margine teorico"
#. module: account_analytic_analysis
#: view:account.analytic.account:0
msgid " +1 Month"
-msgstr ""
+msgstr " +1 Mese"
#. module: account_analytic_analysis
#: help:account.analytic.account,ca_theorical:0
@@ -184,7 +197,7 @@ msgstr ""
#. module: account_analytic_analysis
#: view:account.analytic.account:0
msgid "Pending"
-msgstr ""
+msgstr "In sospeso"
#. module: account_analytic_analysis
#: field:account.analytic.account,ca_to_invoice:0
@@ -199,7 +212,7 @@ msgstr "Calcolato utilizzando la formula: importo fatturato - totale costi"
#. module: account_analytic_analysis
#: view:account.analytic.account:0
msgid "Parent"
-msgstr ""
+msgstr "Mastro"
#. module: account_analytic_analysis
#: field:account.analytic.account,user_ids:0
@@ -231,7 +244,7 @@ msgstr "Data dell'ultimo costo fatturato"
#. module: account_analytic_analysis
#: view:account.analytic.account:0
msgid "Contract"
-msgstr ""
+msgstr "Contratto"
#. module: account_analytic_analysis
#: field:account.analytic.account,real_margin_rate:0
@@ -266,14 +279,14 @@ msgstr "Reddito rimanente"
#. module: account_analytic_analysis
#: help:account.analytic.account,remaining_hours:0
msgid "Computed using the formula: Maximum Time - Total Time"
-msgstr ""
+msgstr "Calcolato usando la formula: Tempo Massimo - Tempo Totale"
#. module: account_analytic_analysis
#: help:account.analytic.account,hours_qtt_invoiced:0
msgid ""
"Number of time (hours/days) that can be invoiced plus those that already "
"have been invoiced."
-msgstr ""
+msgstr "Tempo (ore/giorni) fatturabile più tempo già fatturato."
#. module: account_analytic_analysis
#: help:account.analytic.account,ca_to_invoice:0
@@ -287,7 +300,7 @@ msgstr ""
#. module: account_analytic_analysis
#: help:account.analytic.account,revenue_per_hour:0
msgid "Computed using the formula: Invoiced Amount / Total Time"
-msgstr ""
+msgstr "Calcolato usando la formula: Fatturato / Tempo Totale"
#. module: account_analytic_analysis
#: field:account.analytic.account,total_cost:0
@@ -312,12 +325,12 @@ msgstr "Contabilità Analitica"
#: model:ir.actions.act_window,name:account_analytic_analysis.action_account_analytic_overdue_all
#: model:ir.ui.menu,name:account_analytic_analysis.menu_action_account_analytic_overdue_all
msgid "Contracts"
-msgstr ""
+msgstr "Contratti"
#. module: account_analytic_analysis
#: view:account.analytic.account:0
msgid "Manager"
-msgstr ""
+msgstr "Manager"
#. module: account_analytic_analysis
#: model:ir.actions.act_window,name:account_analytic_analysis.action_hr_tree_invoiced_all
@@ -328,12 +341,12 @@ msgstr "Voci da Fatturare"
#. module: account_analytic_analysis
#: help:account.analytic.account,last_invoice_date:0
msgid "If invoice from the costs, this is the date of the latest invoiced."
-msgstr ""
+msgstr "Se si fattura dai costi, questa è la data dell'ultima fattura."
#. module: account_analytic_analysis
#: view:account.analytic.account:0
msgid "Associated Partner"
-msgstr ""
+msgstr "Partner Associato"
#. module: account_analytic_analysis
#: view:account.analytic.account:0
@@ -343,7 +356,7 @@ msgstr ""
#. module: account_analytic_analysis
#: view:account.analytic.account:0
msgid "Contracts that are not assigned to an account manager."
-msgstr ""
+msgstr "Contratti non assegnati ad un responsabile del cliente"
#. module: account_analytic_analysis
#: field:account.analytic.account,hours_quantity:0
diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml
index e56215f3332..f2c923844ec 100644
--- a/addons/crm/crm_lead_view.xml
+++ b/addons/crm/crm_lead_view.xml
@@ -288,6 +288,7 @@
<field name="arch" type="xml">
<kanban default_group_by="stage_id">
<field name="state" groups="base.group_no_one"/>
+ <field name="stage_id"/>
<field name="color"/>
<field name="priority"/>
<field name="planned_revenue" sum="Expected Revenues"/>
diff --git a/addons/document/report/document_report.py b/addons/document/report/document_report.py
index 7b09f131178..92e33c13746 100644
--- a/addons/document/report/document_report.py
+++ b/addons/document/report/document_report.py
@@ -32,7 +32,7 @@ class report_document_user(osv.osv):
'month':fields.selection([('01','January'), ('02','February'), ('03','March'), ('04','April'), ('05','May'), ('06','June'),
('07','July'), ('08','August'), ('09','September'), ('10','October'), ('11','November'), ('12','December')],'Month',readonly=True),
'user_id':fields.integer('Owner', readonly=True),
- 'user':fields.char('User',size=64,readonly=True),
+ 'user': fields.related('user_id', 'name', type='char', size=64, readonly=True),
'directory': fields.char('Directory',size=64,readonly=True),
'datas_fname': fields.char('File Name',size=64,readonly=True),
'create_date': fields.datetime('Date Created', readonly=True),
@@ -50,7 +50,6 @@ class report_document_user(osv.osv):
to_char(f.create_date, 'YYYY') as name,
to_char(f.create_date, 'MM') as month,
f.user_id as user_id,
- u.name as user,
count(*) as nbr,
d.name as directory,
f.datas_fname as datas_fname,
@@ -60,8 +59,7 @@ class report_document_user(osv.osv):
f.write_date as change_date
FROM ir_attachment f
left join document_directory d on (f.parent_id=d.id and d.name<>'')
- inner join res_users u on (f.user_id=u.id)
- group by to_char(f.create_date, 'YYYY'), to_char(f.create_date, 'MM'),d.name,f.parent_id,d.type,f.create_date,f.user_id,f.file_size,u.name,d.type,f.write_date,f.datas_fname
+ group by to_char(f.create_date, 'YYYY'), to_char(f.create_date, 'MM'),d.name,f.parent_id,d.type,f.create_date,f.user_id,f.file_size,d.type,f.write_date,f.datas_fname
)
""")
diff --git a/addons/hr_recruitment/__openerp__.py b/addons/hr_recruitment/__openerp__.py
index 0de2eb5c94e..1a6abbef976 100644
--- a/addons/hr_recruitment/__openerp__.py
+++ b/addons/hr_recruitment/__openerp__.py
@@ -19,12 +19,13 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
+
{
'name': 'Recruitment Process',
'version': '1.0',
'category': 'Human Resources',
- "sequence": 24,
- "summary": "Recruitment Process, Job Descriptions",
+ 'sequence': 24,
+ 'summary': 'Recruitment Process, Job Descriptions',
'description': """
Manages job positions and the recruitment process.
==================================================
@@ -46,7 +47,7 @@ system to store and search in your CV base.
'base_calendar',
'fetchmail',
],
- 'update_xml': [
+ 'data': [
'wizard/hr_recruitment_employee_hired.xml',
'wizard/hr_recruitment_create_partner_job_view.xml',
'hr_recruitment_view.xml',
@@ -57,19 +58,18 @@ system to store and search in your CV base.
'board_hr_recruitment_statistical_view.xml',
'hr_recruitment_installer_view.xml',
'res_config_view.xml',
- ],
- 'init_xml': [
'hr_recruitment_data.xml'
],
- 'demo_xml': [
+ 'demo': [
'hr_recruitment_demo.yml',
],
- 'test':[
- 'test/recruitment_process.yml',
- ],
+ 'js': ['static/src/js/hr_recruitment.js'],
+ 'test': [
+ 'test/recruitment_process.yml',
+ ],
'installable': True,
'auto_install': False,
- 'certificate' : '001073437025460275621',
+ 'certificate': '001073437025460275621',
'application': True,
}
diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py
index 0ace2574d65..81a7ae6129e 100644
--- a/addons/hr_recruitment/hr_recruitment.py
+++ b/addons/hr_recruitment/hr_recruitment.py
@@ -198,6 +198,7 @@ class hr_applicant(base_stage, osv.Model):
When the case is over, the state is set to \'Done\'.\
If the case needs to be reviewed then the state is \
set to \'Pending\'.'),
+ 'categ_ids': fields.many2many('hr.applicant_category', string='Categories'),
'company_id': fields.many2one('res.company', 'Company'),
'user_id': fields.many2one('res.users', 'Responsible'),
# Applicant Columns
@@ -350,7 +351,7 @@ class hr_applicant(base_stage, osv.Model):
if isinstance(ids, (str, int, long)):
ids = [ids]
if update_vals is None: vals = {}
-
+
update_vals.update({
'description': msg.get('body'),
'email_from': msg.get('from'),
@@ -510,7 +511,7 @@ class hr_job(osv.osv):
_inherits = {'mail.alias': 'alias_id'}
_columns = {
'survey_id': fields.many2one('survey', 'Interview Form', help="Choose an interview form for this job position and you will be able to print/answer this interview from all applicants who apply for this job"),
- 'alias_id': fields.many2one('mail.alias', 'Alias', ondelete="cascade", required=True,
+ 'alias_id': fields.many2one('mail.alias', 'Alias', ondelete="cascade", required=True,
help="Email alias for this job position. New emails will automatically "
"create new applicants for this job position."),
}
@@ -521,13 +522,13 @@ class hr_job(osv.osv):
def _auto_init(self, cr, context=None):
"""Installation hook to create aliases for all jobs and avoid constraint errors."""
-
- # disable the unique alias_id not null constraint, to avoid spurious warning during
+
+ # disable the unique alias_id not null constraint, to avoid spurious warning during
# super.auto_init. We'll reinstall it afterwards.
self._columns['alias_id'].required = False
super(hr_job,self)._auto_init(cr, context=context)
-
+
registry = RegistryManager.get(cr.dbname)
mail_alias = registry.get('mail.alias')
hr_jobs = registry.get('hr.job')
@@ -555,7 +556,7 @@ class hr_job(osv.osv):
mail_alias = self.pool.get('mail.alias')
if not vals.get('alias_id'):
vals.pop('alias_name', None) # prevent errors during copy()
- alias_id = mail_alias.create_unique_alias(cr, uid,
+ alias_id = mail_alias.create_unique_alias(cr, uid,
# Using '+' allows using subaddressing for those who don't
# have a catchall domain setup.
{'alias_name': 'jobs+'+vals['name']},
@@ -573,7 +574,7 @@ class hr_job(osv.osv):
res = super(hr_job, self).unlink(cr, uid, ids, context=context)
mail_alias.unlink(cr, uid, alias_ids, context=context)
return res
-
+
def action_print_survey(self, cr, uid, ids, context=None):
if context is None:
context = {}
@@ -591,4 +592,12 @@ class hr_job(osv.osv):
'nodestroy':True,
}
+class applicant_category(osv.osv):
+ """ Category of applicant """
+ _name = "hr.applicant_category"
+ _description = "Category of applicant"
+ _columns = {
+ 'name': fields.char('Name', size=64, required=True, translate=True),
+ }
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_recruitment/hr_recruitment_view.xml b/addons/hr_recruitment/hr_recruitment_view.xml
index 0e74473f853..d1866f124af 100644
--- a/addons/hr_recruitment/hr_recruitment_view.xml
+++ b/addons/hr_recruitment/hr_recruitment_view.xml
@@ -176,6 +176,9 @@
</div>
</group>
</group>
+ <group>
+ <field name="categ_ids" widget="many2many_tags"/>
+ </group>
<separator string="Application Summary"/>
<field name="description" placeholder="Feedback of interviews..."/>
</sheet>
@@ -254,6 +257,7 @@
<field name="model">hr.applicant</field>
<field name="arch" type="xml">
<kanban default_group_by="stage_id">
+ <field name="stage_id"/>
<field name="color"/>
<field name="priority"/>
<field name="survey"/>
@@ -264,6 +268,7 @@
<field name="job_id"/>
<field name="title_action"/>
<field name="department_id"/>
+ <field name="categ_ids"/>
<templates>
<t t-name="kanban-tooltip">
<ul class="oe_kanban_tooltip">
@@ -308,6 +313,13 @@
<img t-att-src="kanban_image('res.users', 'image_small', record.user_id.raw_value)" t-att-title="record.user_id.value" width="24" height="24" class="oe_kanban_avatar"/>
</div>
+ <div class="oe_kanban_footer_left" style="margin-top:5px;">
+ <div class="oe_left oe_tags">
+ <t t-foreach="record.categ_ids.raw_value" t-as="categ_id">
+ <span class="oe_tag" t-att-data-categ_id="categ_id"></span>
+ </t>
+ </div>
+ </div>
</div>
<div class="oe_clear"></div>
</div>
diff --git a/addons/hr_recruitment/security/ir.model.access.csv b/addons/hr_recruitment/security/ir.model.access.csv
index 8b029c9324a..086e63e542b 100644
--- a/addons/hr_recruitment/security/ir.model.access.csv
+++ b/addons/hr_recruitment/security/ir.model.access.csv
@@ -8,3 +8,5 @@ access_survey_hr_user,survey.hr.user,survey.model_survey,base.group_hr_user,1,1,
access_crm_meeting_hruser,crm.meeting.hruser,base_calendar.model_crm_meeting,base.group_hr_user,1,1,1,1
access_hr_recruitment_source_hr_officer,hr.recruitment.source,model_hr_recruitment_source,base.group_hr_user,1,1,1,1
access_hr_recruitment_source_all,hr.recruitment.source,model_hr_recruitment_source,,1,0,0,0
+access_hr_applicant_category,hr.applicant_category,model_hr_applicant_category,,1,0,0,0
+access_hr_applicant_category_manager,hr.applicant_category,model_hr_applicant_category,base.group_hr_manager,1,1,1,1
diff --git a/addons/hr_recruitment/static/src/js/hr_recruitment.js b/addons/hr_recruitment/static/src/js/hr_recruitment.js
new file mode 100644
index 00000000000..5a2d6bd92b4
--- /dev/null
+++ b/addons/hr_recruitment/static/src/js/hr_recruitment.js
@@ -0,0 +1,35 @@
+openerp.hr_recruitment = function(openerp) {
+ openerp.web_kanban.KanbanView.include({
+ applicant_display_categ_names: function() {
+ /*
+ * Set proper names to applicant categories.
+ * In kanban views, many2many fields only return a list of ids.
+ * Therefore, we have to fetch the matching data by ourselves.
+ */
+ var self = this;
+ var categ_ids = [];
+
+ // Collect categories ids
+ self.$element.find('span[data-categ_id]').each(function() {
+ categ_ids.push($(this).data('categ_id'));
+ });
+
+ // Find their matching names
+ var dataset = new openerp.web.DataSetSearch(self, 'hr.applicant_category', self.session.context, [['id', 'in', _.uniq(categ_ids)]]);
+ dataset.read_slice(['id', 'name']).then(function(result) {
+ _.each(result, function(v, k) {
+ // Set the proper value in the DOM and display the element
+ self.$element.find('span[data-categ_id=' + v.id + ']').text(v.name);
+ });
+ });
+ },
+ on_groups_started: function() {
+ var self = this;
+ self._super.apply(self, arguments);
+
+ if (self.dataset.model === 'hr.applicant') {
+ self.applicant_display_categ_names();
+ }
+ }
+ });
+};
diff --git a/addons/portal/__openerp__.py b/addons/portal/__openerp__.py
index 6669efbcf77..283e007a598 100644
--- a/addons/portal/__openerp__.py
+++ b/addons/portal/__openerp__.py
@@ -20,10 +20,14 @@
##############################################################################
{
- 'name' : "Portal",
- 'version' : "1.0",
- 'depends' : ["base", "share", "auth_anonymous"],
- 'author' : "OpenERP SA",
+ 'name' : 'Portal',
+ 'version' : '1.0',
+ 'depends' : [
+ 'base',
+ 'share',
+ 'auth_anonymous'
+ ],
+ 'author' : 'OpenERP SA',
'category': 'Portal',
'description': """
Customize access to your OpenERP database to external users by creating portals.
diff --git a/addons/portal_event/portal_event_view.xml b/addons/portal_event/portal_event_view.xml
index 8b1f21bbef0..1e046bc9e7f 100644..100755
--- a/addons/portal_event/portal_event_view.xml
+++ b/addons/portal_event/portal_event_view.xml
@@ -2,8 +2,22 @@
<openerp>
<data>
+ <!--
+ Override the original action to set another help field and/or
+ another context field, more suited for portal members
+ -->
+ <record model="ir.actions.act_window" id="action_event_view">
+ <field name="name">Events</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">event.event</field>
+ <field name="view_mode">kanban,calendar,tree,form,graph</field>
+ <field name="context">{"search_default_upcoming":1}</field>
+ <field name="search_view_id" ref="event.view_event_search"/>
+ <field name="help">No public events.</field>
+ </record>
+
<menuitem name="Events" id="portal_company_events" parent="portal.portal_company"
- action="event.action_event_view" sequence="40"/>
+ action="action_event_view" sequence="40"/>
</data>
</openerp>
diff --git a/addons/portal_sale/portal_sale_view.xml b/addons/portal_sale/portal_sale_view.xml
index 2db0a7a4d96..5786fbc52ad 100644
--- a/addons/portal_sale/portal_sale_view.xml
+++ b/addons/portal_sale/portal_sale_view.xml
@@ -2,16 +2,39 @@
<openerp>
<data>
+ <!--
+ Override the original action to set another help field and/or
+ another context field, more suited for portal members
+ -->
+ <record id="action_order_tree5" model="ir.actions.act_window">
+ <field name="name">Quotations</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">sale.order</field>
+ <field name="view_mode">tree,form,calendar,graph</field>
+ <field name="context">{"search_default_draft":1}</field>
+ <field name="search_view_id" ref="sale.view_sales_order_filter"/>
+ <field name="help">You dont have any quotation.</field>
+ </record>
+
+ <record id="action_order_form" model="ir.actions.act_window">
+ <field name="name">Sales Orders</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">sale.order</field>
+ <field name="view_mode">tree,form,calendar,graph</field>
+ <field name="search_view_id" ref="sale.view_sales_order_filter"/>
+ <field name="context">{"search_default_sales":1}</field>
+ <field name="help">You dont have any sale order.</field>
+ </record>
+
<record id="action_picking_tree" model="ir.actions.act_window">
<field name="name">Delivery Orders</field>
<field name="res_model">stock.picking.out</field>
<field name="type">ir.actions.act_window</field>
- <field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('type','=','out')]</field>
<field name="context">{'default_type': 'out', 'contact_display': 'partner_address'}</field>
<field name="search_view_id" ref="stock.view_picking_out_search"/>
- <field name="help">This is the list of all delivery orders that have to be prepared, according to your different orders.</field>
+ <field name="help">You dont have any delivery order.</field>
</record>
<record id="product_normal_action" model="ir.actions.act_window">
@@ -22,21 +45,42 @@
<field name="view_mode">kanban,tree,form</field>
<field name="view_id" ref="product.product_kanban_view"/>
<field name="search_view_id" ref="product.product_search_form_view"/>
+ <field name="help">No public products.</field>
+ </record>
+
+ <record id="action_invoice_tree1" model="ir.actions.act_window">
+ <field name="name">Customer Invoices</field>
+ <field name="res_model">account.invoice</field>
+ <field name="view_mode">tree,form,calendar,graph</field>
+ <field name="domain">[('type','=','out_invoice')]</field>
+ <field name="context">{'default_type':'out_invoice', 'type':'out_invoice', 'journal_type': 'sale'}</field>
+ <field name="search_view_id" ref="account.view_account_invoice_filter"/>
+ <field name="help">You dont have any invoice.</field>
+ </record>
+
+ <record id="action_vendor_receipt" model="ir.actions.act_window">
+ <field name="name">Customer Payment</field>
+ <field name="res_model">account.voucher</field>
+ <field name="domain">[('journal_id.type', 'in', ['bank', 'cash']), ('type','=','receipt')]</field>
+ <field name="context">{'type':'receipt'}</field>
+ <field name="search_view_id" ref="account_voucher.view_voucher_filter_customer_pay"/>
+ <field name="target">current</field>
+ <field name="help">You dont have any payment.</field>
</record>
<menuitem name="Quotations" id="portal_quotations" parent="portal.portal_orders"
- action="sale.action_order_tree5" sequence="10"/>
+ action="action_order_tree5" sequence="10"/>
<menuitem name="Sales Orders" id="portal_sales_orders" parent="portal.portal_orders"
- action="sale.action_order_form" sequence="20"/>
+ action="action_order_form" sequence="20"/>
<menuitem name="Delivery Orders" id="portal_delivery" parent="portal.portal_orders"
action="action_picking_tree" sequence="30"/>
<menuitem name="Products" id="portal_products" parent="portal.portal_orders"
action="product_normal_action" sequence="40"/>
<menuitem name="Invoice" id="portal_invoices" parent="portal.portal_invoices_payements"
- action="account.action_invoice_tree1" sequence="10"/>
+ action="action_invoice_tree1" sequence="10"/>
<menuitem name="Refund/Payments" id="portal_payments" parent="portal.portal_invoices_payements"
- action="account_voucher.action_vendor_receipt" sequence="20"/>
+ action="action_vendor_receipt" sequence="20"/>
</data>
</openerp>
diff --git a/addons/project/__openerp__.py b/addons/project/__openerp__.py
index aa523b438c7..a65497c311e 100644
--- a/addons/project/__openerp__.py
+++ b/addons/project/__openerp__.py
@@ -19,18 +19,33 @@
#
##############################################################################
-
{
- "name": "Project Management",
- "version": "1.1",
- "author": "OpenERP SA",
- "website": "http://www.openerp.com",
- "category": "Project Management",
- "sequence": 8,
- "summary": "Projects, Tasks",
- "images": ["images/gantt.png", "images/project_dashboard.jpeg","images/project_task_tree.jpeg","images/project_task.jpeg","images/project.jpeg","images/task_analysis.jpeg"],
- "depends": ["base_setup", "base_status", "product", "analytic", "board", "mail", "resource","web_kanban"],
- "description": """
+ 'name': 'Project Management',
+ 'version': '1.1',
+ 'author': 'OpenERP SA',
+ 'website': 'http://www.openerp.com',
+ 'category': 'Project Management',
+ 'sequence': 8,
+ 'summary': 'Projects, Tasks',
+ 'images': [
+ 'images/gantt.png',
+ 'images/project_dashboard.jpeg',
+ 'images/project_task_tree.jpeg',
+ 'images/project_task.jpeg',
+ 'images/project.jpeg',
+ 'images/task_analysis.jpeg'
+ ],
+ 'depends': [
+ 'base_setup',
+ 'base_status',
+ 'product',
+ 'analytic',
+ 'board',
+ 'mail',
+ 'resource',
+ 'web_kanban'
+ ],
+ 'description': """
Project Management module tracks multi-level projects, tasks, work done on tasks.
=================================================================================
@@ -41,22 +56,21 @@ Dashboard for project management that includes:
* List of My Open Tasks
* Graph of My Remaining Hours by Project
""",
- "init_xml": [],
- "update_xml": [
- "security/project_security.xml",
- "wizard/project_task_delegate_view.xml",
- "wizard/project_task_reevaluate_view.xml",
- "security/ir.model.access.csv",
- "project_data.xml",
- "project_view.xml",
- "process/task_process.xml",
- "res_partner_view.xml",
- "report/project_report_view.xml",
+ 'data': [
+ 'security/project_security.xml',
+ 'wizard/project_task_delegate_view.xml',
+ 'wizard/project_task_reevaluate_view.xml',
+ 'security/ir.model.access.csv',
+ 'project_data.xml',
+ 'project_view.xml',
+ 'process/task_process.xml',
+ 'res_partner_view.xml',
+ 'report/project_report_view.xml',
'report/project_cumulative.xml',
- "board_project_view.xml",
+ 'board_project_view.xml',
'res_config_view.xml',
],
- 'demo_xml': [
+ 'demo': [
'project_demo.xml',
],
'test':[
diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml
index eb17d446816..6dbcaebd045 100644
--- a/addons/project/project_view.xml
+++ b/addons/project/project_view.xml
@@ -229,7 +229,7 @@
<field name="alias_domain"/>
<templates>
<t t-name="kanban-box">
- <div t-attf-class="oe_kanban_color_#{kanban_getcolor(record.color.raw_value)} oe_kanban_card oe_kanban_project oe_kanban_auto_height oe_kanban_global_click">
+ <div t-attf-class="oe_kanban_color_#{kanban_getcolor(record.color.raw_value)} oe_kanban_card oe_kanban_project oe_kanban_global_click">
<div class="oe_dropdown_toggle oe_dropdown_kanban">
<span class="oe_e">í</span>
<ul class="oe_dropdown_menu">
diff --git a/addons/project/security/ir.model.access.csv b/addons/project/security/ir.model.access.csv
index 3f79cfee3de..d9f6cb9d2f6 100644
--- a/addons/project/security/ir.model.access.csv
+++ b/addons/project/security/ir.model.access.csv
@@ -18,3 +18,5 @@ access_account_analytic_line_project,account.analytic.line project,analytic.mode
access_project_task_history,project.task.history project,project.model_project_task_history,project.group_project_user,1,1,1,0
access_project_task_history_cumulative,project.task.history project,project.model_project_task_history_cumulative,project.group_project_manager,1,0,0,0
access_resource_calendar,project.resource_calendar manager,resource.model_resource_calendar,project.group_project_manager,1,0,0,0
+access_project_category,project.project_category,model_project_category,,1,0,0,0
+access_project_category_manager,project.project_category,model_project_category,project.group_project_manager,1,1,1,1
diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml
index bb15f8c2f94..b37cf40014e 100644
--- a/addons/project_issue/project_issue_view.xml
+++ b/addons/project_issue/project_issue_view.xml
@@ -239,6 +239,7 @@
<field name="model">project.issue</field>
<field name="arch" type="xml">
<kanban default_group_by="stage_id">
+ <field name="stage_id"/>
<field name="color"/>
<field name="priority"/>
<field name="user_email"/>