deisy 6 سال پیش
کامیت
86e5fc5ec2

+ 3 - 0
__init__.py

@@ -0,0 +1,3 @@
+# -*- coding:utf-8 -*-
+
+import models

BIN
__init__.pyc


+ 22 - 0
__openerp__.py

@@ -0,0 +1,22 @@
+# -*- coding:utf-8 -*-
+
+{
+'name':'Eiru CRM',
+'author':'Deisy',
+'data':[
+    'views/crm_task_view.xml',
+    'views/eiru_crm_view.xml',
+    'views/crm_stage_view.xml',
+    'views/partner_view.xml',
+    'views/menus_view.xml',
+    'views/task_type_view.xml',
+    'views/assets_view.xml'],
+'depends':[
+    'crm',
+    'base',
+    'web_widget_color'],
+'application':True,
+"images": [
+		"static/description/icon.png",
+	],
+}

+ 6 - 0
models/__init__.py

@@ -0,0 +1,6 @@
+# -*- coding: utf-8 -*-
+
+import eiru_crm
+import crm_task
+import res_partner
+import task_type

BIN
models/__init__.pyc


+ 89 - 0
models/crm_task.py

@@ -0,0 +1,89 @@
+# -*- coding:utf-8 -*-
+
+from openerp import fields, models, api
+from datetime import datetime
+
+
+class CrmTask(models.Model):
+    _name="crm.task"
+
+    name = fields.Char(string="Actividad")
+    date_action_next = fields.Datetime('Fecha Prox. Accion')
+    user_id = fields.Many2one('res.users', 'Responsable')
+    partner_id = fields.Many2one('res.partner', 'Cliente')
+    company_id = fields.Many2one('res.company', 'Compañia')
+    description = fields.Text('Descripción')
+    state = fields.Selection([
+        ('pending', 'Pendiente'),
+        ('done', 'Realizado'),
+        ('cancel','Cancelado')],
+        string='Estado', track_visibility='onchange', default='pending')
+    priority = fields.Selection([('0','P'), ('1','Poco'),('2','Normal'), ('3','Alto')], 'Prioridad')
+    date_closed = fields.Datetime('Cerrado', readonly=True)
+    opportunity_id = fields.Many2one ('crm.lead', 'Oportunidad')
+    create_date = fields.Datetime('Fecha de creación')
+    task_type_id = fields.Many2one('crm.task.type',
+        string="Tipo de Tarea", track_visibility='onchange')
+    hex_value = fields.Char(
+        string="Hex Value",
+        related="task_type_id.color",
+        store=False,
+        size=7)
+
+
+    def onchange_stage_id(self, cr, uid, ids, stage_id, context=None):
+        return {'state': stage_id}
+
+    def onchange_task_type(self, cr, uid, ids, task_type_id, context=None):
+        return {'task_type_id': task_type_id}
+
+    @api.one
+    def action_done(self):
+        if self.state == 'pending':
+            self.state = 'done'
+            # self.hex_value='#58ACFA'
+        else:
+            self.state = 'pending'
+            # self.hex_value='#FA5858'
+
+    @api.one
+    def action_cancel(self):
+        self.state = 'cancel'
+        # self.hex_value='#A4A4A4'
+
+    @api.multi
+    def unlink(self):
+        for all_id in self:
+            res= self.env.cr.execute("DELETE FROM crm_task WHERE id= %s" % (all_id.id))
+            return res
+
+    # @api.multi
+    # def write(self, vals):
+    #     vals = {
+    #         'name': self.name,
+    #         'date_action_next':self.date_action_next,
+    #         'user_id': self.user_id.id,
+    #         'partner_id': self.partner_id.id,
+    #         'company_id': self.company_id.id,
+    #         'description': self.description,
+    #         'state': self.state,
+    #         'priority': self.priority,
+    #         'date_closed':self.date_closed,
+    #         'opportunity_id':self.opportunity_id.id,
+    #         'task_type_id': self.task_type_id.id,
+    #         'hex_value': self.hex_value
+    #         }
+    #     res = super(CrmTask, self).create(vals)
+    #     return res
+
+    @api.one
+    def _current_datetime(self):
+        now = datetime.now()
+        if self.date_action_next < now.strftime("%Y-%m-%d %H:%M:00"):
+            self.expired_date = True
+
+    expired_date = fields.Boolean(string="Fecha Vencida", compute="_current_datetime", store=False)
+
+    # @api.model
+    # def create(self, vals):
+    #     return super(CrmTask, self).create(vals)

BIN
models/crm_task.pyc


+ 75 - 0
models/eiru_crm.py

@@ -0,0 +1,75 @@
+# -*- coding:utf-8 -*-
+
+from openerp import api, fields, models
+from datetime import datetime
+
+class EiruCrm(models.Model):
+    _inherit="crm.lead"
+
+    task_ids = fields.One2many('crm.task','opportunity_id',"Actividades")
+    facebook = fields.Char('Facebook')
+    instagram = fields.Char('Instagram')
+
+    @api.multi
+    def open_wizard(self):
+        now = datetime.now()
+        return {
+            'name': 'Añadir Actividad',
+            'type': 'ir.actions.act_window',
+            'res_model': 'crm.task',
+            'view_type': 'form',
+            'view_mode': 'form',
+            'target': 'new',
+            'context': {
+                'default_date_action_next': now.strftime("%Y-%m-%d %H:%M:00"),
+                'default_user_id': self.user_id.id,
+                'default_opportunity_id': self.id,
+                'default_partner_id': self.partner_id.id,},
+            'flags': {'form': {'action_buttons': True}}
+        }
+
+    @api.one
+    def _exist_task(self):
+        now = datetime.now()
+        for task in self:
+            count1 = self.env['crm.task'].search_count([('opportunity_id', '=', task.id),('state','=','pending'), ('date_action_next','>=',now.strftime("%Y-%m-%d %H:%M:00"))])
+            count2 = self.env['crm.task'].search_count([('opportunity_id', '=', task.id),('date_action_next','<',now.strftime("%Y-%m-%d %H:%M:00")),('state','=','pending')])
+
+            if count1 > 0:
+                self.exist_task = True
+
+            if count2 > 0:
+                self.expired_date = True
+
+    exist_task = fields.Boolean(string="Tarea Pendiente", compute="_exist_task", store=False)
+    expired_date = fields.Boolean(string="Fecha Vencida", compute="_exist_task", store=False)
+
+    def on_change_partner_id(self, cr, uid, ids, partner_id, context=None):
+        values = {}
+        if partner_id:
+            partner = self.pool.get('res.partner').browse(cr, uid, partner_id, context=context)
+            partner_name = (partner.parent_id and partner.parent_id.name) or (partner.is_company and partner.name) or False
+            values = {
+                'partner_name': partner_name,
+                'contact_name': (not partner.is_company and partner.name) or False,
+                'title': partner.title and partner.title.id or False,
+                'street': partner.street,
+                'street2': partner.street2,
+                'city': partner.city,
+                'state_id': partner.state_id and partner.state_id.id or False,
+                'country_id': partner.country_id and partner.country_id.id or False,
+                'email_from': partner.email,
+                'phone': partner.phone,
+                'mobile': partner.mobile,
+                'fax': partner.fax,
+                'zip': partner.zip,
+                'function': partner.function,
+                'facebook': partner.facebook,
+                'instagram':instagram
+            }
+        return {'value': values}
+
+class CrmStage(models.Model):
+    _inherit="crm.case.stage"
+
+    type = fields.Selection([('opportunity', 'Oportunidad')], string='Tipo', required=True, default='opportunity')

BIN
models/eiru_crm.pyc


+ 15 - 0
models/res_partner.py

@@ -0,0 +1,15 @@
+# -*- coding:utf-8 -*-
+
+from openerp import fields, models, api
+
+
+class ResPartner(models.Model):
+    _inherit="res.partner"
+
+    def _activity_count(self):
+        for partner in self:
+            partner.activity_count = self.env['crm.task'].search_count([('partner_id', '=', partner.id),('state','=','pending')])
+
+    task_ids = fields.One2many('crm.task', 'partner_id','Actividades')
+    activity_count = fields.Integer(compute="_activity_count", string="Actividades", store=False)
+    

BIN
models/res_partner.pyc


+ 13 - 0
models/task_type.py

@@ -0,0 +1,13 @@
+# -*- coding:utf-8 -*-
+
+from openerp import fields, models
+
+class CrmTaskType(models.Model):
+    _name = "crm.task.type"
+
+    name = fields.Char(string='Tipo de Tarea', required=True, help="Ej: Llamada, Reunión, Envio de mensaje, etc." )
+    color = fields.Char(
+        string="Color",
+        help="Choose your color",
+        size=7
+    )

BIN
models/task_type.pyc


BIN
static/description/icon.png


BIN
static/images/green_button.png


BIN
static/images/red_button.png


+ 28 - 0
static/src/js/web_task_color.js

@@ -0,0 +1,28 @@
+openerp.eiru_crm = function (instance) {
+    instance.web_calendar.CalendarView = instance.web_calendar.CalendarView.extend({
+        event_data_transform: function (event) {
+            var res = this._super.apply(this, arguments);
+	    //This would go off when there is no color set for hex_value. You could control this too.
+            if (res && res.hasOwnProperty('className')) {
+		//If you would uncomment the next line it would use the default colour that is set for the user. (default behaviour from Odoo calendars)
+
+
+		if(res.title.indexOf('false') > -1)
+		{
+		   res.title = res.title.substring(0, res.title.indexOf(',' + '#40FF00'));
+		}
+            }
+            if (event.hex_value && res.title) {
+                res.backgroundColor = event.hex_value;
+                res.title = res.title.substring(0, res.title.indexOf(', ' + event.hex_value));
+                res.color= event.hex_value;
+
+            }
+            return res;
+        }
+
+
+
+
+    });
+};

+ 13 - 0
views/assets_view.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+    <data>
+        <template id="web_task_color_assets_backend"
+                  name="web_task_color_assets_backend"
+                  inherit_id="web.assets_backend">
+            <xpath expr="." position="inside">
+                <script src="/eiru_crm/static/src/js/web_task_color.js"
+                        type="text/javascript"></script>
+            </xpath>
+        </template>
+    </data>
+</openerp>

+ 27 - 0
views/crm_stage_view.xml

@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+  <data>
+    <record model="ir.ui.view" id="crm_case_stage_form2">
+      <field name="name">crm_case_stage_form2</field>
+      <field name="model">crm.case.stage</field>
+      <field name="inherit_id" ref="crm.crm_case_stage_form" />
+      <field name="arch" type="xml">
+        <field name="type" position="replace">
+          <field name="type" widget="selection"/>
+        </field>
+      </field>
+    </record>
+
+    <record model="ir.ui.view" id="crm_case_stage_tree2">
+      <field name="name">crm_case_stage_tree</field>
+      <field name="model">crm.case.stage</field>
+      <field name="inherit_id" ref="crm.crm_case_stage_tree"/>
+      <field name="arch" type="xml">
+        <field name="type" position="replace">
+          <field name="type"/>
+        </field>
+      </field>
+    </record>
+
+  </data>
+</openerp>

+ 135 - 0
views/crm_task_view.xml

@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+  <data>
+    <record model="ir.ui.view" id="crm_task_form">
+      <field name="name">crm_task_form</field>
+      <field name="model">crm.task</field>
+      <field name="type">form</field>
+      <field name="arch" type="xml">
+        <form>
+          <header>
+            <field name="state" clickable="True" widget="statusbar"/>
+          </header>
+          <sheet>
+            <group>
+              <field name="task_type_id" widget="radio" required='True'/>
+            </group>
+            <group>
+              <field name="name"/>
+              <field name="date_action_next"/>
+              <field name="user_id"/>
+              <field name="partner_id"/>
+              <field name="opportunity_id"/>
+              <field name="description"/>
+            </group>
+          </sheet>
+          <!-- <footer>
+
+            <button name="write" string="Crear" type="object" class="oe_highlight"/> or
+              <button type="cancel" string="Cancelar" class="oe_form_button_cancel"/>
+          </footer> -->
+        </form>
+      </field>
+    </record>
+
+    <record id="task_filter" model="ir.ui.view">
+      <field name="name">CRM - Opportunities Search</field>
+      <field name="model">crm.task</field>
+      <field name="arch" type="xml">
+        <search string="Search Opportunities">
+          <field name="partner_id" string="Cliente" filter_domain="[('partner_id','ilike',self)]"/>
+          <field name="opportunity_id" string="Oportunidad"/>
+          <field name="state" string="Estado"/>
+          <field name="user_id" string="Vendedor"/>
+          <field string="Tipo de Tarea" name="task_type_id"/>
+          <filter string="Mis Tareas" name="assigned_to_me"
+                          domain="[('user_id', '=', uid)]"
+                          help="Tasks that are assigned to me"/>
+        </search>
+      </field>
+    </record>
+
+    <record id="crm_task_calendar" model="ir.ui.view">
+      <field name="name">Calendario de Tareas</field>
+      <field name="model">crm.task</field>
+      <field name="type">calendar</field>
+      <field name="arch" type="xml">
+        <calendar color="task_type_id" date_start="date_action_next" date_stop="" string="Tareas" event_open_popup="%(crm_task_form)s" >
+          <field name="name"/>
+          <field name="hex_value"/>
+        </calendar>
+      </field>
+    </record>
+
+    <record model="ir.ui.view" id="crm_task_tree">
+      <field name="name">crm_task_tree</field>
+      <field name="model">crm.task</field>
+      <field name="type">tree</field>
+      <field name="arch" type="xml">
+        <tree string="Oportunidades" colors="red:expired_date == True and state == 'pending';gray:state == 'cancel';green:state == 'pending'">
+          <field name="task_type_id"/>
+          <field name="date_action_next"/>
+          <field name="description"/>
+          <field name="user_id"/>
+          <field name="partner_id" />
+          <field name="state"/>
+          <field name="expired_date" invisible='1'/>
+          <button name="action_done" string="Done" type="object" icon="gtk-apply" help="Done" attrs="{'invisible':[('state','!=','pending'),('state','!=','cancel')]}"/>
+          <button name="action_done" string="Pending" type="object" icon="gtk-undo" help="Pending" attrs="{'invisible':[('state','!=','done')]}"/>
+          <button name="action_cancel" string="Cancel" type="object" icon="gtk-cancel" help="Cancel" attrs="{'invisible':[('state','=','cancel')]}"/>
+
+        </tree>
+      </field>
+    </record>
+
+    <record id="crm_task_from_partner" model="ir.actions.act_window">
+      <field name="name">Tareas</field>
+      <field name="res_model">crm.task</field>
+      <field name="view_type">form</field>
+      <field name="view_mode">calendar,tree,form</field>
+      <field name="context">{"search_default_state":'pending', 'search_default_user_id': uid}</field>
+      <field name="search_view_id" ref="task_filter"/>
+      <field name="help" type="html">
+        <p class="oe_view_nocontent_create">
+          Click to create a new task.
+        </p>
+      </field>
+    </record>
+
+    <record model="ir.actions.act_window.view" id="action_crm_task_calendar">
+      <field name="sequence" eval="1"/>
+      <field name="view_mode">calendar</field>
+      <field name="view_id" ref="crm_task_calendar"/>
+      <field name="act_window_id" ref="crm_task_from_partner"/>
+    </record>
+
+    <record model="ir.actions.act_window.view" id="action_crm_tree_task">
+      <field name="sequence" eval="2"/>
+      <field name="view_mode">tree</field>
+      <field name="view_id" ref="crm_task_tree"/>
+      <field name="act_window_id" ref="crm_task_from_partner"/>
+    </record>
+
+  <!-- Tree Wizard view from kanban -->
+
+  <record id="tree_wizard_filter" model="ir.ui.view">
+    <field name="name">tree_wizard_filter</field>
+    <field name="model">crm.task</field>
+    <field name="arch" type="xml">
+      <search string="Search Task">
+      </search>
+    </field>
+  </record>
+
+  <record id="action_tree_wizard" model="ir.actions.act_window">
+    <field name="name">Tareas2</field>
+    <field name="res_model">crm.task</field>
+    <field name="view_type">form</field>
+    <field name="view_mode">tree</field>
+    <field name="target">new</field>
+    <field name="search_view_id" ref="tree_wizard_filter"/>
+    <field name="domain">[('opportunity_id', '=', active_id),('state','=','pending')]</field>
+  </record>
+
+ </data>
+</openerp>

+ 183 - 0
views/eiru_crm_view.xml

@@ -0,0 +1,183 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+  <data>
+    <record model="ir.ui.view" id="crm_case_form_view_oppor2">
+      <field name="name">crm_case_form_view_oppor2</field>
+      <field name="model">crm.lead</field>
+      <field name="inherit_id" ref="crm.crm_case_form_view_oppor"/>
+      <field name="arch" type="xml">
+        <form string="Opportunities" position="replace">
+          <form string="Opportunities">
+            <header>
+              <button name="case_mark_won" string="Mark Won" type="object" class="oe_highlight"/>
+              <button name="case_mark_lost" string="Mark Lost" type="object" class="oe_highlight"/>
+              <field name="stage_id" widget="statusbar" clickable="True"
+                options="{'fold_field': 'fold'}"
+                domain="['&amp;', ('section_ids', '=', section_id), '|', ('type', '=', type), ('type', '=', 'opportunity')]" />
+            </header>
+            <sheet>
+              <div class="oe_right oe_button_box">
+                <button name="open_wizard" type="object" string="Añadir Actividad"
+                  class="oe_inline oe_stat_button" icon="fa-calendar"/>
+              </div>
+              <div class="oe_title">
+                <label for="name" class="oe_edit_only"/>
+                <h1><field name="name"/></h1>
+                <label for="planned_revenue" class="oe_edit_only"/>
+                <h2>
+                  <field name="company_currency" invisible="1"/>
+                  <field name="planned_revenue" class="oe_inline" widget='monetary' options="{'currency_field': 'company_currency'}"/>
+                  <span class="oe_grey"> at </span>
+                  <field name="probability" class="oe_inline" widget="integer"/>%%
+                </h2>
+              </div>
+              <group>
+                <group>
+                  <field name="partner_id"
+                    on_change="on_change_partner_id(partner_id)"
+                    string="Customer"
+                    context="{'default_name': partner_name,
+                    'default_email': email_from,
+                    'default_phone': phone,
+                    'default_facebook': facebook,
+                    'default_instagram': instagram
+                    }"/>
+                  <field name="contact_name" string="Nombre de Contacto"/>
+                  <field name="partner_name" string="Company Name"/>
+                  <field name="email_from" string="Email" widget="email"/>
+                  <field name="phone"/>
+                  <field name="facebook" widget="url"/>
+                  <field name="instagram" widget="url"/>
+                </group>
+                <group name="new_group">
+                  <field name="date_deadline"/>
+                  <field name="priority" widget="priority"/>
+                </group>
+                <group>
+                  <field name="user_id" string="Vendedor" on_change="on_change_user(user_id, context)" context="{'default_groups_ref': ['base.group_user', 'base.group_partner_manager', 'base.group_sale_salesman_all_leads']}"/>
+                  <label for="section_id" groups="base.group_multi_salesteams"/>
+                  <div groups="base.group_multi_salesteams">
+                    <field name="section_id" widget="selection"/>
+                    <button name="case_escalate" string="Escalate" type="object" class="oe_link"
+                      attrs="{'invisible': ['|', ('section_id','=',False), ('probability', '=', 100)]}"/>
+                  </div>
+                </group>
+                <group>
+                  <field name="categ_ids"
+                    widget="many2many_tags"
+                    context="{'object_name': 'crm.lead'}"
+                    domain="[('object_id.model', '=', 'crm.lead')]"/>
+                  <field name="source_id" options='{"no_open": True,"no_create": 1, "no_create_edit": 1}'/>
+                </group>
+              </group>
+              <notebook colspan="4">
+                <page string="Internal Notes">
+                  <field name="description"/>
+                </page>
+                <page string="Historial de Tareas">
+                  <field name="task_ids" widget="one2many_list">
+                    <tree create="false" colors="red:expired_date == True and state == 'pending';gray:state == 'cancel';green:state == 'pending'">
+                      <field name="task_type_id"/>
+                      <field name="name"/>
+                      <field name="user_id" required="True"/>
+                      <field name="date_action_next"/>
+                      <field name="state"/>
+                      <field name="expired_date" invisible='1'/>
+
+                      <button name="action_done" string="Done" type="object" icon="gtk-apply" help="Done" attrs="{'invisible':[('state','!=','pending'),('state','!=','cancel')]}"/>
+                      <button name="action_done" string="Pending" type="object" icon="gtk-undo" help="Pending" attrs="{'invisible':[('state','!=','done')]}"/>
+                      <button name="action_cancel" string="Cancel" type="object" icon="gtk-cancel" help="Cancel" attrs="{'invisible':[('state','=','cancel')]}"/>
+                      <field name="description"/>
+                    </tree>
+                  </field>
+                </page>
+                <page string="Extra Info">
+                  <group string="Mailings" name="mailings">
+                    <field name="opt_out"/>
+                    <field name="message_bounce"/>
+                  </group>
+                </page>
+              </notebook>
+            </sheet>
+            <div class="oe_chatter">
+              <field name="message_follower_ids" widget="mail_followers"/>
+              <field name="message_ids" widget="mail_thread"/>
+            </div>
+          </form>
+        </form>
+      </field>
+    </record>
+
+    <record id="crm_task_kanban" model="ir.ui.view">
+           <field name="name">crm_task_kanban</field>
+           <field name="model">crm.lead</field>
+           <field name="inherit_id" ref="crm.crm_case_kanban_view_leads"/>
+           <field name="arch" type="xml">
+                  <templates position="replace">
+                    <templates>
+                      <field name="exist_task"/>
+                      <field name="expired_date"/>
+                      <t t-name="kanban-box">
+                          <div t-attf-class="oe_kanban_color_#{kanban_getcolor(record.color.raw_value)} oe_kanban_card oe_kanban_global_click">
+                              <div class="oe_dropdown_toggle oe_dropdown_kanban">
+                                  <span class="oe_e">í</span>
+                                  <ul class="oe_dropdown_menu">
+                                      <t t-if="widget.view.is_action_enabled('edit')"><li><a type="edit">Edit...</a></li></t>
+                                      <t t-if="widget.view.is_action_enabled('delete')"><li><a type="delete">Delete</a></li></t>
+                                      <li><a name="%(mail.action_email_compose_message_wizard)d" type="action">Send Email</a></li>
+                                      <li><a type="object" name="open_wizard">Añadir Tarea</a></li>
+                                      <li><ul class="oe_kanban_colorpicker" data-field="color"/></li>
+                                  </ul>
+                              </div>
+                              <div class="oe_kanban_content">
+                                  <div>
+                                      <b><field name="name"/></b>
+                                      <t t-if="record.planned_revenue.raw_value">
+                                          - <b><t t-esc="record.planned_revenue.value"/>
+                                          <field name="company_currency"/></b>
+                                      </t>
+                                  </div>
+                                  <div>
+                                      <field name="partner_id"/>
+                                  </div>
+
+                                  <div class="oe_kanban_bottom_right">
+                                    <t t-if="record.exist_task.raw_value">
+                                    <a type="action" name="%(eiru_crm.action_tree_wizard)d">
+                                    <img src="/eiru_crm/static/images/green_button.png" style="width:18px; height:18px;"/>
+                                  </a>
+                                </t>
+                              <t t-if="record.expired_date.raw_value">
+                                <a type="action" name="%(eiru_crm.action_tree_wizard)d">
+                                <img src="/eiru_crm/static/images/red_button.png" style="width:18px; height:18px;"/>
+                              </a>
+                            </t>
+                                  </div>
+
+                                  <div class="oe_kanban_bottom_left">
+                                      <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 pull-left"/>
+                                      <div class="pull-left" groups="base.group_user">
+                                          <field name="priority" widget="priority"/>
+                                      </div>
+                                  </div>
+                                  <div class="oe_kanban_footer_left">
+                                      <t t-raw="record.message_summary.raw_value"/>
+                                  </div>
+                              </div>
+                              <div class="oe_clear"></div>
+                          </div>
+                      </t>
+                  </templates>
+            </templates>
+
+               <!-- <xpath expr="//div[@class='pull-left']" position="before">
+                 <button name="_exist_task" type="object" icon="gtk-apply" help="Done" />
+                 <button name="_exist_task" type="object" icon="gtk-undo" help="Pending"/>
+               </xpath> -->
+           </field>
+       </record>
+
+
+
+  </data>
+</openerp>

+ 58 - 0
views/menus_view.xml

@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+  <data>
+    <record id="make_invisible" model="res.groups">
+      <field name="name">Invisible</field>
+    </record>
+
+    <!-- Hide Menus -->
+    <record id="crm.menu_crm_leads" model="ir.ui.menu">
+     <field name="groups_id" eval="[(6,0,[ref('make_invisible')])]"/>
+    </record>
+
+    <record id="crm.menu_crm_case_phone" model="ir.ui.menu">
+     <field name="groups_id" eval="[(6,0,[ref('make_invisible')])]"/>
+    </record>
+
+    <record id="crm.menu_crm_config_phonecall" model="ir.ui.menu">
+      <field name="groups_id" eval="[(6,0,[ref('make_invisible')])]"/>
+    </record>
+
+    <record id="crm.menu_report_crm_leads_tree" model="ir.ui.menu">
+      <field name="groups_id" eval="[(6,0,[ref('make_invisible')])]"/>
+    </record>
+
+    <record id="crm.menu_report_crm_phonecalls_tree" model="ir.ui.menu">
+      <field name="groups_id" eval="[(6,0,[ref('make_invisible')])]"/>
+    </record>
+
+    <record model="ir.actions.act_window" id="crm.crm_case_category_act_oppor11">
+      <field name="view_mode">kanban,tree,form</field>
+    </record>
+
+    <record id="calendar.menu_calendar_configuration" model="ir.ui.menu">
+      <field name="groups_id" eval="[(6,0,[ref('make_invisible')])]"/>
+    </record>
+
+    <record id="calendar.mail_menu_calendar" model="ir.ui.menu">
+      <field name="groups_id" eval="[(6,0,[ref('make_invisible')])]"/>
+    </record>
+
+
+    <!-- Change menu name -->
+    <record model="ir.ui.menu" id="base.menu_crm_config_lead">
+      <field name="name">Oportunidades</field>
+    </record>
+
+
+
+    <!-- Add new menus -->
+    <menuitem name="CRM" id="base.menu_crm" parent="base.menu_base_partner" sequence="1"/>
+
+    <menuitem name="Tareas" id="menu_crm_task" parent="base.menu_crm" sequence="50"
+      action="eiru_crm.crm_task_from_partner" groups="base.group_sale_manager"/>
+
+      <!-- Change menu path -->
+      <menuitem id="crm.menu_crm_opportunities" parent="base.menu_crm"/>
+  </data>
+</openerp>

+ 27 - 0
views/partner_view.xml

@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+  <data>
+    <record id="partner_form_buttons" model="ir.ui.view">
+      <field name="name">partner_form_buttons</field>
+      <field name="model">res.partner</field>
+      <field name="inherit_id" ref="base.view_partner_form"/>
+      <field name="priority" eval="50"/>
+      <field name="arch" type="xml">
+        <xpath expr="//div[@name='buttons']" position="inside">
+          <button class="oe_inline oe_stat_button" type="action" name="%(eiru_crm.crm_task_from_partner)d"
+            icon="fa-calendar"
+            context="{'search_default_partner_id': active_id}">
+            <field name="activity_count" string="Actividad" widget="statinfo"/>
+					</button>
+        </xpath>
+        <xpath expr="//button[@name='schedule_meeting']" position="attributes">
+          <attribute name="invisible">1</attribute>
+        </xpath>
+        <xpath expr="//button[@name='%(crm.crm_case_categ_phone_incoming0)d']" position="attributes">
+          <attribute name="invisible">1</attribute>
+        </xpath>
+
+      </field>
+    </record>
+  </data>
+</openerp>

+ 33 - 0
views/task_type_view.xml

@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+  <data>
+    <record model="ir.ui.view" id="task_type_tree">
+      <field name="name">Tipo de Tarea</field>
+      <field name="model">crm.task.type</field>
+      <field name="type">tree</field>
+      <field name="arch" type="xml">
+        <tree string="Tipo de Tarea" editable="top">
+          <field name="name" string="Tipo de Tarea"/>
+          <!-- <field name="color" string="Color" widget="color"/> -->
+        </tree>
+      </field>
+    </record>
+
+
+    <record id="action_task_type" model="ir.actions.act_window">
+      <field name="name">Tipo de Tarea</field>
+      <field name="res_model">crm.task.type</field>
+      <field name="view_type">form</field>
+      <field name="view_mode">tree</field>
+      <field name="help" type="html">
+        <p class="oe_view_nocontent_create">
+          Click to create a new task.
+        </p>
+      </field>
+    </record>
+
+
+    <menuitem action="action_task_type" id="menu_crm_task_type" name="Tipo de Tarea" sequence="5" parent="base.menu_crm_config_lead" groups="base.group_no_one"/>
+
+  </data>
+</openerp>