First preliminary version of groupeurd_crm addon.

This commit is contained in:
Olivier Sarrat 2017-02-20 10:12:42 +01:00
parent be678d76d8
commit 1671591575
10 changed files with 277 additions and 0 deletions

View File

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

View 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 daffichage (tri, colonnes, filtres)
- Personnalisation des écrans daffichage 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 dadoption de Sigmah (Prise dinformation, Souhait dadoption, 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 dintérêt (Liste de valeur, multisélection), compétences (Liste de valeur, multisélection) et nombre dannées dans la compétence sélectionnée, Publications (liste dURL), 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',
],
}

View 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>

View 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
View 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
View 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
View 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

View 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
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_groupeurd_crm_groupeurd_crm groupeurd_crm.groupeurd_crm model_groupeurd_crm_groupeurd_crm 1 0 0 0

View 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
View 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>