diff --git a/README.rst b/README.rst index 9ce1e9347d18f8b7e1aba2a8ba58f2b185cd69b0..7582f26e114485589a22aaa37d3b323d27b1c530 100644 --- a/README.rst +++ b/README.rst @@ -3,23 +3,25 @@ :alt: License: AGPL-3 -====================== +================= Le Filament - CRM -====================== +================= Hérite du module CRM - - Ajoute un rapport sur le temps de conversion - - Ajoute un champ sur le type d'apporteur d'affaire et le partner associé + +* Ajoute un champ sur le type d'apporteur d'affaire et le partner associé Credits ======= -Contributors ------------ +Contributors +------------ * Benjamin Rivier <benjamin@le-filament.com> -Maintainer ---------- +Maintainer +---------- .. image:: https://le-filament.com/images/logo-lefilament.png :alt: Le Filament diff --git a/__init__.py b/__init__.py index c120b318c3a0fd2ebf26eb9ca2bb7f5d8f396cb4..cde864bae21a11c0e4f50067aa46b4c497549b4c 100644 --- a/__init__.py +++ b/__init__.py @@ -1,4 +1,3 @@ # -*- coding: utf-8 -*- -import models -import report \ No newline at end of file +from . import models diff --git a/__manifest__.py b/__manifest__.py index e9306ca124563579f31e56b40be4d76edb39c7e1..1b74f9b899b60487397d432ef86f92d59b7a418f 100644 --- a/__manifest__.py +++ b/__manifest__.py @@ -4,33 +4,21 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). { - 'name': 'Le Filament - CRM', - - 'summary': """ - CRM Le Filament - - Ajoute un rapport sur le temps de conversion - - """, - - 'version': '10.0.1.0', - 'license': 'AGPL-3', - 'description': """ - - """, - - 'author': 'LE FILAMENT', - 'category': 'Project', - 'depends': ['sale'], - 'contributors': [ + 'name': 'Le Filament - CRM', + 'summary': "CRM Le Filament", + 'version': '10.0.1.0', + 'license': 'AGPL-3', + 'author': 'LE FILAMENT', + 'category': 'Project', + 'depends': ['crm', 'sale'], + 'contributors': [ 'Benjamin Rivier <benjamin@le-filament.com>', ], - 'website': 'http://www.le-filament.com', - 'data': [ - # 'views/assets.xml', - 'views/crm_lead_view.xml', - 'report/crm_conversion_report_view.xml', - ], - 'qweb': [ + 'website': 'http://www.le-filament.com', + 'data': [ + 'views/crm_lead_view.xml', + ], + 'qweb': [ 'static/src/xml/*.xml', ], } \ No newline at end of file diff --git a/models/__init__.py b/models/__init__.py index 92f72446abdc0a09823b41033c607db36699f38a..3dce6aff337cc05af470203592430f570f320011 100644 --- a/models/__init__.py +++ b/models/__init__.py @@ -1,3 +1,3 @@ # -*- coding: utf-8 -*- -import crm_lead \ No newline at end of file +from . import crm_lead diff --git a/models/crm_lead.py b/models/crm_lead.py index ec8497beb9d39d57aded1e7da4170756b0b23cba..2fd9a9593122ef7b14662f1ad03800e511b4f2ac 100644 --- a/models/crm_lead.py +++ b/models/crm_lead.py @@ -5,8 +5,14 @@ from odoo import fields, models + class LeFilamentLead(models.Model): - _inherit = 'crm.lead' + _inherit = 'crm.lead' - type_apporteur = fields.Selection([('reseau','Réseau'),('partenaire','Partenaire'),('client','Client'),('perso','Personnel'),('projet','Suite Projet')], string="Type Apporteur") - apporteur = fields.Many2one('res.partner', string="Apporteur") \ No newline at end of file + type_apporteur = fields.Selection([ + ('reseau', 'Réseau'), + ('partenaire', 'Partenaire'), + ('client', 'Client'), + ('perso', 'Personnel'), + ('projet', 'Suite Projet')], string="Type Apporteur") + apporteur = fields.Many2one('res.partner', string="Apporteur") diff --git a/report/__init__.py b/report/__init__.py deleted file mode 100644 index e746a9642e05b3141e81fb4abc82e6bca2d128d8..0000000000000000000000000000000000000000 --- a/report/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# -*- coding: utf-8 -*- - -import crm_report diff --git a/report/crm_conversion_report_view.xml b/report/crm_conversion_report_view.xml deleted file mode 100644 index 7cde36fc7dcc642214ab9627423aeeaaad57bdcd..0000000000000000000000000000000000000000 --- a/report/crm_conversion_report_view.xml +++ /dev/null @@ -1,56 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<odoo> - - <!-- Conversion Time by Partner pivot View --> - <record id="crm_conversion_report_view_pivot" model="ir.ui.view"> - <field name="name">crm.conversion.report.pivot</field> - <field name="model">crm.conversion.report</field> - <field name="arch" type="xml"> - <pivot string="Analyse Temps de Converstion" disable_linking="True"> - <field name="partner_id" type="row"/> - <field name="days" type="measure" /> - </pivot> - </field> - </record> - - - <!-- Search View --> - <record id="crm_conversion_report_view_search" model="ir.ui.view"> - <field name="name">crm.conversion.report.select</field> - <field name="model">crm.conversion.report</field> - <field name="arch" type="xml"> - <search string="Conversion Analysis"> - <filter string="Mes Opportunitées" name="my" domain="[('user_id', '=', uid)]"/> - <separator/> - <filter string="Gagnées" name="won" domain="['&',('current', '=', False),('probability', '=', 100)]"/> - <filter string="En Cours" name="current" domain="[('current', '=', True)]"/> - <group expand="1" string="Group By"> - <filter string="Vendeur" context="{'group_by':'user_id'}" /> - <filter string="Client" context="{'group_by':'partner_id'}" groups="base.group_multi_company"/> - <filter string="Etape" context="{'group_by':'team_id'}"/> - <filter string="DAS" context="{'group_by':'referred'}"/> - <filter string="Apporteur" context="{'group_by':'referred'}"/> - <separator orientation="vertical" /> - <filter string="Mois Création" context="{'group_by':'date_open:month'}" name="month"/> - <filter string="Date Fermeture" context="{'group_by':'date_closed:month'}" name="date_closed"/> - <filter string="Date Conversion" context="{'group_by':'date_conversion:month'}" name="conversion_date"/> - </group> - </search> - </field> - </record> - - <record id="crm_conversion_report_action" model="ir.actions.act_window"> - <field name="name">Temps de conversion</field> - <field name="res_model">crm.conversion.report</field> - <field name="view_type">form</field> - <field name="view_mode">pivot,graph</field> - <field name="context">{'search_default_won': True,}</field> - <field name="view_ids" - eval="[(5, 0, 0), - (0, 0, {'view_mode': 'pivot', 'view_id': ref('crm_conversion_report_view_pivot')})]"/> - </record> - - <menuitem id="crm_conversion_report_menu" name="Conversion" - parent="sales_team.menu_sale_report" action="crm_conversion_report_action" sequence="50"/> - -</odoo> diff --git a/report/crm_report.py b/report/crm_report.py deleted file mode 100644 index daab695f9f7d6de7df0a1432bd7c16515b251b46..0000000000000000000000000000000000000000 --- a/report/crm_report.py +++ /dev/null @@ -1,67 +0,0 @@ -# -*- coding: utf-8 -*- - -# © 2017 Le Filament (<http://www.le-filament.com>) -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). - -from odoo import tools -from odoo import api, fields, models - - -class CrmReport(models.Model): - _name = "crm.conversion.report" - _description = "Time Conversion Statistics" - _auto = False - _order = 'date_closed desc' - - name = fields.Char('Affaire', readonly=True) - - date_open = fields.Datetime('Date Création', readonly=True) - date_conversion = fields.Datetime('Date Converstion', readonly=True) - date_closed = fields.Datetime('Date Fermeture', readonly=True) - days = fields.Integer('Durée', group_operator = 'avg', readonly=True) - - referred = fields.Char('Apporteur') - - partner_id = fields.Many2one('res.partner', 'Client', readonly=True) - user_id = fields.Many2one('res.users', 'Vendeur', readonly=True) - team_id = fields.Many2one('crm.team', 'DAS', readonly=True) - stage_id = fields.Many2one('crm.stage', string='Stage', readonly=True) - - current = fields.Boolean('En Cours', readonly=True) - probability = fields.Float('Probabilité', group_operator="avg", readonly=True) - planned_revenue = fields.Float('Revenu Total', readonly=True) - expected_revenue = fields.Float('Revenu Pondéré', readonly=True) - - def _select(self): - select_str = """ - SELECT - id, - name, - date_open, - date_closed, - date_conversion, - extract(day from - (case when date_closed is not null then date_closed else current_date end) - - (case when date_open is not null then date_open else create_date end)) as days, - referred, - partner_id, - user_id, - team_id, - stage_id, - active as current, - probability, - planned_revenue, - planned_revenue*(probability/100) as expected_revenue - FROM - crm_lead - WHERE - type = 'opportunity' - """ - return select_str - - - def init(self): - tools.drop_view_if_exists(self.env.cr, self._table) - self.env.cr.execute("CREATE or REPLACE VIEW crm_conversion_report as (%s)" % (self._select(),) ) - -