diff --git a/locale/ca_ES.po b/locale/ca_ES.po
index 2e356e5..a9bf4c8 100644
--- a/locale/ca_ES.po
+++ b/locale/ca_ES.po
@@ -6,9 +6,13 @@ msgctxt "field:sale.opportunity,campaign:"
msgid "Campaign"
msgstr "Campanya"
+msgctxt "field:sale.opportunity.campaign,childs:"
+msgid "Children"
+msgstr "Fills"
+
msgctxt "field:sale.opportunity.campaign,create_date:"
msgid "Create Date"
-msgstr "Data de creació"
+msgstr "Data creació"
msgctxt "field:sale.opportunity.campaign,create_uid:"
msgid "Create User"
@@ -30,6 +34,10 @@ msgctxt "field:sale.opportunity.campaign,name:"
msgid "Name"
msgstr "Nom"
+msgctxt "field:sale.opportunity.campaign,parent:"
+msgid "Parent"
+msgstr "Pare"
+
msgctxt "field:sale.opportunity.campaign,parties:"
msgid "Parties"
msgstr "Tercers"
@@ -54,17 +62,49 @@ msgctxt "field:sale.opportunity.campaign,write_uid:"
msgid "Write User"
msgstr "Usuari modificació"
+msgctxt "field:sale.opportunity.campaign-party.party,campaing:"
+msgid "Campaign"
+msgstr "Campanya"
+
+msgctxt "field:sale.opportunity.campaign-party.party,create_date:"
+msgid "Create Date"
+msgstr "Data creació"
+
+msgctxt "field:sale.opportunity.campaign-party.party,create_uid:"
+msgid "Create User"
+msgstr "Usuari creació"
+
+msgctxt "field:sale.opportunity.campaign-party.party,id:"
+msgid "ID"
+msgstr "Identificador"
+
+msgctxt "field:sale.opportunity.campaign-party.party,party:"
+msgid "Party"
+msgstr "Tercer"
+
+msgctxt "field:sale.opportunity.campaign-party.party,rec_name:"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "field:sale.opportunity.campaign-party.party,write_date:"
+msgid "Write Date"
+msgstr "Data modificación"
+
+msgctxt "field:sale.opportunity.campaign-party.party,write_uid:"
+msgid "Write User"
+msgstr "Usuari modificació"
+
msgctxt "field:sale.opportunity.campaign-product.product,campaing:"
msgid "Campaign"
msgstr "Campanya"
msgctxt "field:sale.opportunity.campaign-product.product,create_date:"
msgid "Create Date"
-msgstr "Data de creació"
+msgstr "Data creació"
msgctxt "field:sale.opportunity.campaign-product.product,create_uid:"
msgid "Create User"
-msgstr "Usuari de creació"
+msgstr "Usuari creació"
msgctxt "field:sale.opportunity.campaign-product.product,id:"
msgid "ID"
@@ -90,24 +130,43 @@ msgctxt "field:sale.opportunity.create_campaign.start,campaign:"
msgid "Campaign"
msgstr "Campanya"
+msgctxt "field:sale.opportunity.create_campaign.start,create_leads:"
+msgid "Create Leads"
+msgstr "Crear iniciatives"
+
msgctxt "field:sale.opportunity.create_campaign.start,id:"
msgid "ID"
msgstr "Identificador"
-msgctxt "model:ir.action,name:act_leads_form"
-msgid "Leads and Opportunities"
-msgstr "Iniciatives i oportunitats"
+msgctxt "help:sale.opportunity.create_campaign.start,create_leads:"
+msgid ""
+"If marked a lead will be created for each party and related to the party"
+msgstr ""
+"Si es marca es crearà una iniciativa per cada tercer i es relacionarà amb "
+"aquest."
-msgctxt "model:ir.action,name:act_sale_opportunity_campaign"
-msgid "Sale Opportunity Campaign"
+msgctxt "model:ir.action,name:act_opportunities_by_category"
+msgid "Leads and Opportunities by Campaign"
+msgstr "Iniciatives i oportunitats per campanya"
+
+msgctxt "model:ir.action,name:act_opportunity_campaign_list"
+msgid "Campaigns"
+msgstr "Campanyes"
+
+msgctxt "model:ir.action,name:act_opportunity_campaign_tree"
+msgid "Campaigns"
msgstr "Campanyes"
msgctxt "model:ir.action,name:wizard_create_campaign"
msgid "Create Campaign"
msgstr "Crea campanya"
-msgctxt "model:ir.ui.menu,name:menu_sale_opportunity_campaign"
-msgid "Opportunity Campaign"
+msgctxt "model:ir.ui.menu,name:menu_opportunity_campaign_list"
+msgid "Campaigns"
+msgstr "Campanyes"
+
+msgctxt "model:ir.ui.menu,name:menu_opportunity_campaign_tree"
+msgid "Campaigns"
msgstr "Campanyes"
msgctxt "model:sale.opportunity.campaign,name:"
@@ -134,6 +193,10 @@ msgctxt "view:sale.opportunity.campaign:"
msgid "Campaigns"
msgstr "Campanyes"
+msgctxt "view:sale.opportunity.campaign:"
+msgid "Children"
+msgstr "Fills"
+
msgctxt "view:sale.opportunity.campaign:"
msgid "Create Leads"
msgstr "Crear iniciatives"
@@ -142,6 +205,10 @@ msgctxt "view:sale.opportunity.create_campaign.start:"
msgid "Create Campaign"
msgstr "Crea campanya"
+msgctxt "wizard_button:sale.opportunity.create_campaign,start,create_:"
+msgid "Create"
+msgstr "Crea"
+
msgctxt "wizard_button:sale.opportunity.create_campaign,start,end:"
msgid "Cancel"
msgstr "Cancel·lat"
diff --git a/locale/es_ES.po b/locale/es_ES.po
index 0c0117a..e817e69 100644
--- a/locale/es_ES.po
+++ b/locale/es_ES.po
@@ -6,6 +6,10 @@ msgctxt "field:sale.opportunity,campaign:"
msgid "Campaign"
msgstr "Campaña"
+msgctxt "field:sale.opportunity.campaign,childs:"
+msgid "Children"
+msgstr "Hijas"
+
msgctxt "field:sale.opportunity.campaign,create_date:"
msgid "Create Date"
msgstr "Fecha de creación"
@@ -30,6 +34,10 @@ msgctxt "field:sale.opportunity.campaign,name:"
msgid "Name"
msgstr "Nombre"
+msgctxt "field:sale.opportunity.campaign,parent:"
+msgid "Parent"
+msgstr "Padre"
+
msgctxt "field:sale.opportunity.campaign,parties:"
msgid "Parties"
msgstr "Terceros"
@@ -54,6 +62,38 @@ msgctxt "field:sale.opportunity.campaign,write_uid:"
msgid "Write User"
msgstr "Usuario modificación"
+msgctxt "field:sale.opportunity.campaign-party.party,campaing:"
+msgid "Campaign"
+msgstr "Campaña"
+
+msgctxt "field:sale.opportunity.campaign-party.party,create_date:"
+msgid "Create Date"
+msgstr "Fecha creación"
+
+msgctxt "field:sale.opportunity.campaign-party.party,create_uid:"
+msgid "Create User"
+msgstr "Usuario creación"
+
+msgctxt "field:sale.opportunity.campaign-party.party,id:"
+msgid "ID"
+msgstr "Identificador"
+
+msgctxt "field:sale.opportunity.campaign-party.party,party:"
+msgid "Party"
+msgstr "Terceros"
+
+msgctxt "field:sale.opportunity.campaign-party.party,rec_name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:sale.opportunity.campaign-party.party,write_date:"
+msgid "Write Date"
+msgstr "Fecha modificación"
+
+msgctxt "field:sale.opportunity.campaign-party.party,write_uid:"
+msgid "Write User"
+msgstr "Usuario modificación"
+
msgctxt "field:sale.opportunity.campaign-product.product,campaing:"
msgid "Campaign"
msgstr "Campaña"
@@ -90,25 +130,44 @@ msgctxt "field:sale.opportunity.create_campaign.start,campaign:"
msgid "Campaign"
msgstr "Campaña"
+msgctxt "field:sale.opportunity.create_campaign.start,create_leads:"
+msgid "Create Leads"
+msgstr "Crear iniciativas"
+
msgctxt "field:sale.opportunity.create_campaign.start,id:"
msgid "ID"
msgstr "Identificador"
-msgctxt "model:ir.action,name:act_leads_form"
-msgid "Leads and Opportunities"
-msgstr "Iniciativas y oportunidades"
+msgctxt "help:sale.opportunity.create_campaign.start,create_leads:"
+msgid ""
+"If marked a lead will be created for each party and related to the party"
+msgstr ""
+"Si se marca se creará una iniciativa por cada tercero y se relacionará con "
+"éste."
-msgctxt "model:ir.action,name:act_sale_opportunity_campaign"
-msgid "Sale Opportunity Campaign"
-msgstr "Campaña de oportunidades"
+msgctxt "model:ir.action,name:act_opportunities_by_category"
+msgid "Leads and Opportunities by Campaign"
+msgstr "Iniciativas y oportunidades por campaña"
+
+msgctxt "model:ir.action,name:act_opportunity_campaign_list"
+msgid "Campaigns"
+msgstr "Campañas"
+
+msgctxt "model:ir.action,name:act_opportunity_campaign_tree"
+msgid "Campaigns"
+msgstr "Campañas"
msgctxt "model:ir.action,name:wizard_create_campaign"
msgid "Create Campaign"
msgstr "Crear campaña"
-msgctxt "model:ir.ui.menu,name:menu_sale_opportunity_campaign"
-msgid "Opportunity Campaign"
-msgstr "Campaña de oportunidades"
+msgctxt "model:ir.ui.menu,name:menu_opportunity_campaign_list"
+msgid "Campaigns"
+msgstr "Campañas"
+
+msgctxt "model:ir.ui.menu,name:menu_opportunity_campaign_tree"
+msgid "Campaigns"
+msgstr "Campañas"
msgctxt "model:sale.opportunity.campaign,name:"
msgid "Campaign"
@@ -134,6 +193,10 @@ msgctxt "view:sale.opportunity.campaign:"
msgid "Campaigns"
msgstr "Campañas"
+msgctxt "view:sale.opportunity.campaign:"
+msgid "Children"
+msgstr "Hijas"
+
msgctxt "view:sale.opportunity.campaign:"
msgid "Create Leads"
msgstr "Crear iniciativas"
@@ -142,6 +205,10 @@ msgctxt "view:sale.opportunity.create_campaign.start:"
msgid "Create Campaign"
msgstr "Crear campaña"
+msgctxt "wizard_button:sale.opportunity.create_campaign,start,create_:"
+msgid "Create"
+msgstr "Crear"
+
msgctxt "wizard_button:sale.opportunity.create_campaign,start,end:"
msgid "Cancel"
msgstr "Cancel·lar"
diff --git a/opportunity.py b/opportunity.py
index ca6be7d..68b93ae 100644
--- a/opportunity.py
+++ b/opportunity.py
@@ -47,6 +47,10 @@ class Campaign(ModelSQL, ModelView):
'Campaign'
__name__ = 'sale.opportunity.campaign'
name = fields.Char('Name', required=True)
+ parent = fields.Many2One('sale.opportunity.campaign', 'Parent',
+ select=True)
+ childs = fields.One2Many('sale.opportunity.campaign', 'parent',
+ string='Children')
description = fields.Text('Description')
start_date = fields.Date('Start Date')
end_date = fields.Date('End Date')
@@ -65,6 +69,27 @@ class Campaign(ModelSQL, ModelView):
},
})
+ def get_rec_name(self, name):
+ if self.parent:
+ return self.parent.get_rec_name(name) + ' / ' + self.name
+ else:
+ return self.name
+
+ @classmethod
+ def search_rec_name(cls, name, clause):
+ if isinstance(clause[2], basestring):
+ values = clause[2].split('/')
+ values.reverse()
+ domain = []
+ field = 'name'
+ for name in values:
+ domain.append((field, clause[1], name.strip()))
+ field = 'parent.' + field
+ else:
+ domain = [('name',) + tuple(clause[1:])]
+ ids = [w.id for w in cls.search(domain, order=[])]
+ return [('parent', 'child_of', ids)]
+
@classmethod
@ModelView.button
def create_leads(cls, campaigns):
diff --git a/opportunity.xml b/opportunity.xml
index f3a161c..ba2083b 100644
--- a/opportunity.xml
+++ b/opportunity.xml
@@ -4,36 +4,88 @@