First preliminary version of groupeurd_crm addon.
This commit is contained in:
parent
be678d76d8
commit
1671591575
3
groupeurd_crm/__init__.py
Normal file
3
groupeurd_crm/__init__.py
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
import controllers
|
||||||
|
import models
|
45
groupeurd_crm/__openerp__.py
Normal file
45
groupeurd_crm/__openerp__.py
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
{
|
||||||
|
'name': "groupeurd_crm",
|
||||||
|
|
||||||
|
'summary': """
|
||||||
|
Paramétrage d'Odoo pour correspondre aux besoins CRM du Groupe URD.""",
|
||||||
|
|
||||||
|
'description': """
|
||||||
|
- Ajout de champs personnalisés
|
||||||
|
- Personnalisation des listes d’affichage (tri, colonnes, filtres)
|
||||||
|
- Personnalisation des écrans d’affichage des entités : position des champs, organisation par groupe des champs, champs obligatoires/facultatifs
|
||||||
|
- Masquer le sous-menu "Ventes" jusqu'à ce que le besoin de suivi de pistes et opportunités soit remonté
|
||||||
|
|
||||||
|
|
||||||
|
Organisation
|
||||||
|
Nom, adresse (prévoir 3 lignes), Code postal, Pays, Téléphone, Télécopie, site web, budget annuel, langue principale, langue(s) secondaire(s), état d’adoption de Sigmah (Prise d’information, Souhait d’adoption, Adoption démarrée, Utilisation partielle, Utilisation complète, Non), zone de commentaires.
|
||||||
|
|
||||||
|
Contacts
|
||||||
|
Civilité, Nom, prénom, fonction, type de fonction (liste de valeurs paramétrables) adresse (prévoir 3 lignes), code postal, pays, téléphone bureau, téléphone mobile, adresse mail, compte de réseau social (Skype, Twitter, LinkedIn, Facebook), Langue principale, langue(s) secondaires(s), niveau de contact (cercle de proximité de la relation), niveau universitaire, Centres d’intérêt (Liste de valeur, multisélection), compétences (Liste de valeur, multisélection) et nombre d’années dans la compétence sélectionnée, Publications (liste d’URL), zone de commentaires.
|
||||||
|
""",
|
||||||
|
|
||||||
|
'author': "Groupe URD",
|
||||||
|
'website': "http://www.urd.org",
|
||||||
|
|
||||||
|
# Categories can be used to filter modules in modules listing
|
||||||
|
# Check https://github.com/odoo/odoo/blob/master/openerp/addons/base/module/module_data.xml
|
||||||
|
# for the full list
|
||||||
|
'category': 'Uncategorized',
|
||||||
|
'version': '0.1',
|
||||||
|
|
||||||
|
# any module necessary for this one to work correctly
|
||||||
|
'depends': ['base', 'calendar_ics', 'groupeurd_newsletter'],
|
||||||
|
|
||||||
|
# always loaded
|
||||||
|
'data': [
|
||||||
|
# 'security/ir.model.access.csv',
|
||||||
|
'templates.xml',
|
||||||
|
'actions-menus.xml',
|
||||||
|
'views.xml',
|
||||||
|
],
|
||||||
|
# only loaded in demonstration mode
|
||||||
|
'demo': [
|
||||||
|
'demo.xml',
|
||||||
|
],
|
||||||
|
}
|
58
groupeurd_crm/actions-menus.xml
Normal file
58
groupeurd_crm/actions-menus.xml
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<openerp>
|
||||||
|
<data>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
ACTIONS
|
||||||
|
-->
|
||||||
|
|
||||||
|
<record id="action_list_contacts" model="ir.actions.act_window">
|
||||||
|
<field name="name">Tous les contacts</field>
|
||||||
|
<field name="res_model">res.partner</field>
|
||||||
|
<field name="view_mode">kanban,tree,form</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="action_list_clients" model="ir.actions.act_window">
|
||||||
|
<field name="name">Clients</field>
|
||||||
|
<field name="res_model">res.partner</field>
|
||||||
|
<field name="view_mode">kanban,tree,form</field>
|
||||||
|
<field name="domain">[('customer','=',1)]</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="action_list_suppliers" model="ir.actions.act_window">
|
||||||
|
<field name="name">Fournisseurs</field>
|
||||||
|
<field name="res_model">res.partner</field>
|
||||||
|
<field name="view_mode">kanban,tree,form</field>
|
||||||
|
<field name="domain">[('supplier','=',1)]</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
|
||||||
|
<!--
|
||||||
|
MENUS
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!-- Transformer le menu parent "Ventes" en "Contacts" -->
|
||||||
|
<record model="ir.ui.menu" id="base.menu_base_partner">
|
||||||
|
<field name="name">Contacts</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- Masquer le sous-menu "Ventes" jusqu'à ce que le besoin de suivi de pistes et opportunités soit remonté -->
|
||||||
|
<record model="ir.ui.menu" id="base.menu_sales">
|
||||||
|
<field name="groups_id" eval="[(6,0,[ref('base.group_erp_manager')])]" />
|
||||||
|
<field name="sequence" eval="2" />
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- Masquer le sous-menu "Appels consignés" jusqu'à ce que le besoin de suivi des appels soit remonté -->
|
||||||
|
<record model="ir.ui.menu" id="crm.menu_crm_case_phone">
|
||||||
|
<field name="groups_id" eval="[(6,0,[ref('base.group_erp_manager')])]" />
|
||||||
|
</record>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Ajouter le sous-menu "Contacts" du menu parent "Contacts" -->
|
||||||
|
<menuitem id="menu_contacts_contacts" parent="base.menu_base_partner" name="Contacts" sequence="1" action="" />
|
||||||
|
<menuitem id="menu_contacts_contacts_touslescontacts" parent="menu_contacts_contacts" name="Tous les contacts" sequence="10" action="action_list_contacts" />
|
||||||
|
<menuitem id="menu_contacts_contacts_clients" parent="menu_contacts_contacts" name="Clients" sequence="20" action="action_list_clients" />
|
||||||
|
<menuitem id="menu_contacts_contacts_fournisseurs" parent="menu_contacts_contacts" name="Fournisseurs" sequence="30" action="action_list_suppliers" />
|
||||||
|
|
||||||
|
</data>
|
||||||
|
</openerp>
|
20
groupeurd_crm/controllers.py
Normal file
20
groupeurd_crm/controllers.py
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
from openerp import http
|
||||||
|
|
||||||
|
# class GroupeurdCrm(http.Controller):
|
||||||
|
# @http.route('/groupeurd_crm/groupeurd_crm/', auth='public')
|
||||||
|
# def index(self, **kw):
|
||||||
|
# return "Hello, world"
|
||||||
|
|
||||||
|
# @http.route('/groupeurd_crm/groupeurd_crm/objects/', auth='public')
|
||||||
|
# def list(self, **kw):
|
||||||
|
# return http.request.render('groupeurd_crm.listing', {
|
||||||
|
# 'root': '/groupeurd_crm/groupeurd_crm',
|
||||||
|
# 'objects': http.request.env['groupeurd_crm.groupeurd_crm'].search([]),
|
||||||
|
# })
|
||||||
|
|
||||||
|
# @http.route('/groupeurd_crm/groupeurd_crm/objects/<model("groupeurd_crm.groupeurd_crm"):obj>/', auth='public')
|
||||||
|
# def object(self, obj, **kw):
|
||||||
|
# return http.request.render('groupeurd_crm.object', {
|
||||||
|
# 'object': obj
|
||||||
|
# })
|
25
groupeurd_crm/demo.xml
Normal file
25
groupeurd_crm/demo.xml
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
<openerp>
|
||||||
|
<data>
|
||||||
|
<!-- -->
|
||||||
|
<!-- <record id="object0" model="groupeurd_crm.groupeurd_crm"> -->
|
||||||
|
<!-- <field name="name">Object 0</field> -->
|
||||||
|
<!-- </record> -->
|
||||||
|
<!-- -->
|
||||||
|
<!-- <record id="object1" model="groupeurd_crm.groupeurd_crm"> -->
|
||||||
|
<!-- <field name="name">Object 1</field> -->
|
||||||
|
<!-- </record> -->
|
||||||
|
<!-- -->
|
||||||
|
<!-- <record id="object2" model="groupeurd_crm.groupeurd_crm"> -->
|
||||||
|
<!-- <field name="name">Object 2</field> -->
|
||||||
|
<!-- </record> -->
|
||||||
|
<!-- -->
|
||||||
|
<!-- <record id="object3" model="groupeurd_crm.groupeurd_crm"> -->
|
||||||
|
<!-- <field name="name">Object 3</field> -->
|
||||||
|
<!-- </record> -->
|
||||||
|
<!-- -->
|
||||||
|
<!-- <record id="object4" model="groupeurd_crm.groupeurd_crm"> -->
|
||||||
|
<!-- <field name="name">Object 4</field> -->
|
||||||
|
<!-- </record> -->
|
||||||
|
<!-- -->
|
||||||
|
</data>
|
||||||
|
</openerp>
|
21
groupeurd_crm/i18n/fr.po
Normal file
21
groupeurd_crm/i18n/fr.po
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * groupeurd_calendar
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo Server 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2016-12-12 11:53+0000\n"
|
||||||
|
"PO-Revision-Date: 2016-12-12 11:53+0000\n"
|
||||||
|
"Last-Translator: <>\n"
|
||||||
|
"Language-Team: \n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Plural-Forms: \n"
|
||||||
|
|
||||||
|
#. module: base
|
||||||
|
#: model:ir.ui.menu,name:base.menu_base_partner
|
||||||
|
msgid "Contacts"
|
||||||
|
msgstr "Contacts"
|
37
groupeurd_crm/models.py
Normal file
37
groupeurd_crm/models.py
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
from openerp import models, fields, api
|
||||||
|
from openerp.osv import osv
|
||||||
|
|
||||||
|
from openerp.tools.translate import _
|
||||||
|
|
||||||
|
# Surcharge l'objet "Abonné" pour ajouter un lien vers l'objet "Contact"
|
||||||
|
class contact(models.Model):
|
||||||
|
_name = "mail.mass_mailing.contact"
|
||||||
|
_inherit = "mail.mass_mailing.contact"
|
||||||
|
|
||||||
|
partner_id = fields.Many2one("res.partner", string="Contact")
|
||||||
|
|
||||||
|
# A FAIRE
|
||||||
|
# A la création d'un abonné, mettre à jour partner_id si un contact existe avec cette adresse email
|
||||||
|
# A FINIR !
|
||||||
|
@api.model
|
||||||
|
def create(self, vals):
|
||||||
|
new_id = super(contact, self).create(vals)
|
||||||
|
partner = self.env['res.partner'].search([('email','=',new_id.email)])
|
||||||
|
if ( partner ):
|
||||||
|
self.partner_id = partner.id
|
||||||
|
|
||||||
|
|
||||||
|
# Surcharge l'objet "Contact" pour ajouter les liens vers les objets "Abonné" et "Liste de diffusion"
|
||||||
|
class partner(models.Model):
|
||||||
|
_name = "res.partner"
|
||||||
|
_inherit = "res.partner"
|
||||||
|
|
||||||
|
list_ids = fields.Many2many("mail.mass_mailing.list", string="Listes de diffusion")
|
||||||
|
contact_ids = fields.One2many("mail.mass_mailing.contact", "partner_id", string="Abonnements")
|
||||||
|
|
||||||
|
# A FAIRE
|
||||||
|
# A la création de contact, mettre à jour contact_ids et list_ids en fonction des abonnements existants pour cette adresse email
|
||||||
|
# A la modification de contact, mettre à jour contact_ids et list_ids en fonction des abonnements existants pour cette adresse email
|
||||||
|
|
2
groupeurd_crm/security/ir.model.access.csv
Normal file
2
groupeurd_crm/security/ir.model.access.csv
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||||
|
access_groupeurd_crm_groupeurd_crm,groupeurd_crm.groupeurd_crm,model_groupeurd_crm_groupeurd_crm,,1,0,0,0
|
|
22
groupeurd_crm/templates.xml
Normal file
22
groupeurd_crm/templates.xml
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
<openerp>
|
||||||
|
<data>
|
||||||
|
<!-- <template id="listing"> -->
|
||||||
|
<!-- <ul> -->
|
||||||
|
<!-- <li t-foreach="objects" t-as="object"> -->
|
||||||
|
<!-- <a t-attf-href="#{ root }/objects/#{ object.id }"> -->
|
||||||
|
<!-- <t t-esc="object.display_name"/> -->
|
||||||
|
<!-- </a> -->
|
||||||
|
<!-- </li> -->
|
||||||
|
<!-- </ul> -->
|
||||||
|
<!-- </template> -->
|
||||||
|
<!-- <template id="object"> -->
|
||||||
|
<!-- <h1><t t-esc="object.display_name"/></h1> -->
|
||||||
|
<!-- <dl> -->
|
||||||
|
<!-- <t t-foreach="object._fields" t-as="field"> -->
|
||||||
|
<!-- <dt><t t-esc="field"/></dt> -->
|
||||||
|
<!-- <dd><t t-esc="object[field]"/></dd> -->
|
||||||
|
<!-- </t> -->
|
||||||
|
<!-- </dl> -->
|
||||||
|
<!-- </template> -->
|
||||||
|
</data>
|
||||||
|
</openerp>
|
44
groupeurd_crm/views.xml
Normal file
44
groupeurd_crm/views.xml
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
<openerp>
|
||||||
|
<data>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
VIEWS
|
||||||
|
-->
|
||||||
|
|
||||||
|
<record id="contact_edition_form" model="ir.ui.view">
|
||||||
|
<field name="name">Contact edition form</field>
|
||||||
|
<field name="model">res.partner</field>
|
||||||
|
<field name="inherit_id" ref="base.view_partner_form" />
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<!-- Masquer les boutons "Opportunités", "Rendez-vous" et "Appels" de la fiche contact -->
|
||||||
|
<xpath expr="//div[@name='buttons']" position="attributes">
|
||||||
|
<attribute name="groups">base.group_erp_manager</attribute>
|
||||||
|
</xpath>
|
||||||
|
|
||||||
|
<xpath expr="//page[@name='internal_notes']" position="before">
|
||||||
|
<page name="mailing_subscriptions" string="Listes de diffusion">
|
||||||
|
<group>
|
||||||
|
<field name="list_ids" widget="many2many_checkboxes" string="Abonner à:" />
|
||||||
|
</group>
|
||||||
|
<group>
|
||||||
|
<field name="contact_ids" string="Abonnements" readonly="1" />
|
||||||
|
</group>
|
||||||
|
</page>
|
||||||
|
</xpath>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- Masquer la page "Calendar ICS" aux utilisateurs autres qu'admin -->
|
||||||
|
<record id="contact_edition_form_ics" model="ir.ui.view">
|
||||||
|
<field name="name">Contact edition form with ICS only for admin</field>
|
||||||
|
<field name="model">res.partner</field>
|
||||||
|
<field name="inherit_id" ref="calendar_ics.view_partner_form" />
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<xpath expr="//page[@name='ics']" position="attributes">
|
||||||
|
<attribute name="groups">base.group_erp_manager</attribute>
|
||||||
|
</xpath>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
</data>
|
||||||
|
</openerp>
|
Loading…
Reference in New Issue
Block a user