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 \n" +"PO-Revision-Date: 2012-08-16 09:05+0000\n" +"Last-Translator: gagarin \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 @@ + 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 . # ############################################################################## + { '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 @@ + + + @@ -254,6 +257,7 @@ hr.applicant + @@ -264,6 +268,7 @@ +
    @@ -308,6 +313,13 @@ +
    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 old mode 100644 new mode 100755 index 8b1f21bbef0..1e046bc9e7f --- a/addons/portal_event/portal_event_view.xml +++ b/addons/portal_event/portal_event_view.xml @@ -2,8 +2,22 @@ + + + Events + ir.actions.act_window + event.event + kanban,calendar,tree,form,graph + {"search_default_upcoming":1} + + No public events. + + + action="action_event_view" sequence="40"/> 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 @@ + + + Quotations + ir.actions.act_window + sale.order + tree,form,calendar,graph + {"search_default_draft":1} + + You dont have any quotation. + + + + Sales Orders + ir.actions.act_window + sale.order + tree,form,calendar,graph + + {"search_default_sales":1} + You dont have any sale order. + + Delivery Orders stock.picking.out ir.actions.act_window - form tree,form [('type','=','out')] {'default_type': 'out', 'contact_display': 'partner_address'} - This is the list of all delivery orders that have to be prepared, according to your different orders. + You dont have any delivery order. @@ -22,21 +45,42 @@ kanban,tree,form + No public products. + + + + Customer Invoices + account.invoice + tree,form,calendar,graph + [('type','=','out_invoice')] + {'default_type':'out_invoice', 'type':'out_invoice', 'journal_type': 'sale'} + + You dont have any invoice. + + + + Customer Payment + account.voucher + [('journal_id.type', 'in', ['bank', 'cash']), ('type','=','receipt')] + {'type':'receipt'} + + current + You dont have any payment. + action="action_order_tree5" sequence="10"/> + action="action_order_form" sequence="20"/> + action="action_invoice_tree1" sequence="10"/> + action="action_vendor_receipt" sequence="20"/> 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 @@ -
    +
    í
      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 @@ project.issue +