| @ -1,3 +1,5 @@ | |||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||
| from . import models | |||||
| from . import models | |||||
| from . import partnerimport | |||||
| from . import partner | |||||
| @ -0,0 +1,62 @@ | |||||
| from odoo import models, fields, api | |||||
| from odoo.exceptions import UserError, ValidationError, Warning | |||||
| from psycopg2 import sql, DatabaseError | |||||
| from werkzeug import utils | |||||
| class partner(models.Model): | |||||
| _inherit = 'res.partner' | |||||
| statut=fields.Selection([('adherent', 'Adhérent'), ('bienfaiteur', 'Bienfaiteur'),('contact', 'Contact'), ('soutien','Soutien') ],'Statut', required=True, index=True) | |||||
| date_contact_joomla=fields.Date(string='Date joomla de création du contact', readonly=True) | |||||
| origine=fields.Selection([ | |||||
| ('Boutique','Boutique'), | |||||
| ('Visiteur','Visiteur'), | |||||
| ('Vincennes','Vincennes'), | |||||
| ('Bercy','Bercy'), | |||||
| ('Salon Zen','Salon Zen'), | |||||
| ('Autre','Autre'), | |||||
| ('Internet Boutique','Internet Boutique'), | |||||
| ('Conf M Ricard','Conf M Ricard'), | |||||
| ('Visite lzr 09','Visite lzr 09'), | |||||
| ('Retraite','Retraite'), | |||||
| ('Amis','Amis'), | |||||
| ('Centre FPMT','Centre FPMT'), | |||||
| ('Site réservations','Site réservations'), | |||||
| ('Réservations','Réservations'), | |||||
| ('Voyage inde','Voyage inde'), | |||||
| ('Internet','Internet'), | |||||
| ('Librairie','Librairie'), | |||||
| ('Site internet boutique','Site internet boutique'), | |||||
| ('Portes ouvertes st cosme','Portes ouvertes st cosme'), | |||||
| ('T','T'), | |||||
| ('maitreya','maitreya'), | |||||
| ('Zen','Zen'), | |||||
| ('Lille','Lille'), | |||||
| ('Alan wallace','Alan wallace'), | |||||
| ('Salon Rouen','Salon Rouen'), | |||||
| ('Stage','Stage'), | |||||
| ('B.Actualit','B.Actualit'), | |||||
| ('B. Actualit','B. Actualit'), | |||||
| ('R','R'), | |||||
| ('Institut vy','Institut vy'), | |||||
| ('Initiation kalachakr','Initiation kalachakr'), | |||||
| ('Yoga','Yoga'), | |||||
| ('Samsara','Samsara'), | |||||
| ('missun@gmail.com','missun@gmail.com'), | |||||
| ('Reliques','Reliques'), | |||||
| ('Journal m','Journal m'), | |||||
| ('Nantes','Nantes'), | |||||
| ('retraite vipassana','retraite vipassana'), | |||||
| ('Presse bouddhiste','Presse bouddhiste'), | |||||
| ('Réservtions','Réservtions'), | |||||
| ('Réservation','Réservation'), | |||||
| ('Site','Site'), | |||||
| ('Question mail','Question mail'), | |||||
| ('interreligieux','interreligieux'), | |||||
| ('Refuge','Refuge'), | |||||
| ('zoom','zoom'), | |||||
| ],'Origine', required=True, index=True) | |||||
| date_adhesion=fields.Date(string='Date adhesion', readonly=True) | |||||
| @ -0,0 +1,105 @@ | |||||
| from odoo import models, fields, api | |||||
| from odoo.exceptions import UserError, ValidationError | |||||
| from psycopg2 import sql, DatabaseError | |||||
| from odoo.tools.safe_eval import safe_eval, datetime | |||||
| from werkzeug import utils | |||||
| class kalachakra_partnerdraft(models.Model): | |||||
| _name = 'kalachakra.partnerdraft' | |||||
| _description = 'import draft partner' | |||||
| external_id=fields.Char(string='external id') | |||||
| source=fields.Char(String='source file',required=True) | |||||
| name=fields.Char(string='name') | |||||
| firstname=fields.Char(string='firstname') | |||||
| title=fields.Char(string='civilité') | |||||
| phone = fields.Char(string='phone') | |||||
| mobile = fields.Char(string='mobile') | |||||
| email = fields.Char(string='email') | |||||
| complement_ident = fields.Char(string='N° appartment,floor') | |||||
| complement_geo = fields.Char(string='entry,tower,bat') | |||||
| street = fields.Char(string='street') | |||||
| street2 = fields.Char(string='street2') | |||||
| city = fields.Char(string='city') | |||||
| zip = fields.Char(string='zip code') | |||||
| country = fields.Char(string='country') | |||||
| statut=fields.Selection([('adherent', 'Adhérent'), ('bienfaiteur', 'Bienfaiteur'),('contact', 'Contact'), ('soutien','Soutien') ],'Statut') | |||||
| date_contact_joomla=fields.Date(string='Date joomla de création du contact') | |||||
| origine=fields.Selection([ | |||||
| ('Boutique','Boutique'), | |||||
| ('Visiteur','Visiteur'), | |||||
| ('Vincennes','Vincennes'), | |||||
| ('Bercy','Bercy'), | |||||
| ('Salon Zen','Salon Zen'), | |||||
| ('Autre','Autre'), | |||||
| ('Internet Boutique','Internet Boutique'), | |||||
| ('Conf M Ricard','Conf M Ricard'), | |||||
| ('Visite lzr 09','Visite lzr 09'), | |||||
| ('Retraite','Retraite'), | |||||
| ('Amis','Amis'), | |||||
| ('Centre FPMT','Centre FPMT'), | |||||
| ('Site réservations','Site réservations'), | |||||
| ('Réservations','Réservations'), | |||||
| ('Voyage inde','Voyage inde'), | |||||
| ('Internet','Internet'), | |||||
| ('Librairie','Librairie'), | |||||
| ('Site internet boutique','Site internet boutique'), | |||||
| ('Portes ouvertes st cosme','Portes ouvertes st cosme'), | |||||
| ('T','T'), | |||||
| ('maitreya','maitreya'), | |||||
| ('Zen','Zen'), | |||||
| ('Lille','Lille'), | |||||
| ('Alan wallace','Alan wallace'), | |||||
| ('Salon Rouen','Salon Rouen'), | |||||
| ('Stage','Stage'), | |||||
| ('B.Actualit','B.Actualit'), | |||||
| ('B. Actualit','B. Actualit'), | |||||
| ('R','R'), | |||||
| ('Institut vy','Institut vy'), | |||||
| ('Initiation kalachakr','Initiation kalachakr'), | |||||
| ('Yoga','Yoga'), | |||||
| ('Samsara','Samsara'), | |||||
| ('missun@gmail.com','missun@gmail.com'), | |||||
| ('Reliques','Reliques'), | |||||
| ('Journal m','Journal m'), | |||||
| ('Nantes','Nantes'), | |||||
| ('retraite vipassana','retraite vipassana'), | |||||
| ('Presse bouddhiste','Presse bouddhiste'), | |||||
| ('Réservtions','Réservtions'), | |||||
| ('Réservation','Réservation'), | |||||
| ('Site','Site'), | |||||
| ('Question mail','Question mail'), | |||||
| ('interreligieux','interreligieux'), | |||||
| ('Refuge','Refuge'), | |||||
| ('zoom','zoom')],'Origine', index=True) | |||||
| date_adhesion=fields.Date(string='Date adhesion') | |||||
| doublon=fields.Boolean(string='Doublon') | |||||
| def find_duplicated_partner(self): | |||||
| #affichage des doublons | |||||
| action = self.env.ref("kalachakra.kalachakra_partnerdraft_action").sudo().read([])[0] | |||||
| action.update( | |||||
| { | |||||
| "domain": [("doublon", "=", True)], | |||||
| } | |||||
| ) | |||||
| return action | |||||
| class kalachakra_doublonfield(models.Model): | |||||
| _name = 'kalachakra.doublonfield' | |||||
| _description = 'doublons fields' | |||||
| name=fields.Char('Doublon field name') | |||||
| @ -1,2 +1,3 @@ | |||||
| id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink | id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink | ||||
| access_kalachakra_kalachakra,kalachakra.kalachakra,model_kalachakra_kalachakra,base.group_user,1,1,1,1 | |||||
| access_kalachakra_partnerdraft,kalachakra_partnerdraft,model_kalachakra_partnerdraft,donation.group_donation_manager,1,1,1,1 | |||||
| access_kalachakra_doublonsfields,kalachakra_doublonsfields,model_kalachakra_doublonfield,donation.group_donation_manager,1,1,1,1 | |||||
| @ -0,0 +1,68 @@ | |||||
| <?xml version="1.0"?> | |||||
| <odoo> | |||||
| <record id="view_partner_form" model="ir.ui.view"> | |||||
| <field name="name">kalachakra.res.partner.form</field> | |||||
| <field name="model">res.partner</field> | |||||
| <field name="inherit_id" ref="base.view_partner_form" /> | |||||
| <field name="arch" type="xml"> | |||||
| <xpath expr="//page[@name='internal_notes']" position="before"> | |||||
| <page name="Kalachakra" string="Kalachakra"> | |||||
| <group name="kalachakra" string="kalachakra" col="6"> | |||||
| <field name="statut"/> | |||||
| <field name="date_contact_joomla"/> | |||||
| <field name="origine"/> | |||||
| <field name="date_adhesion"/> | |||||
| </group> | |||||
| </page> | |||||
| </xpath> | |||||
| </field> | |||||
| </record> | |||||
| <record id="kalachakra_partnerdraft_action" model="ir.actions.act_window"> | |||||
| <field name="name">Partners draft</field> | |||||
| <field name="res_model">kalachakra.partnerdraft</field> | |||||
| <field name="view_mode">tree,form</field> | |||||
| <field name="context"></field> | |||||
| </record> | |||||
| <record id="kalachakra_doublonfield_action" model="ir.actions.act_window"> | |||||
| <field name="name">Doublons fields</field> | |||||
| <field name="res_model">kalachakra.doublonfield</field> | |||||
| <field name="view_mode">tree,form</field> | |||||
| <field name="context"></field> | |||||
| </record> | |||||
| <!--attention : ajouter mail comme dépendance pour que l'action server fonctionne--> | |||||
| <record model="ir.actions.server" id="ir_action_find_duplicated_partner"> | |||||
| <field name="name">find_duplicated_partner</field> | |||||
| <field name="model_id" ref="kalachakra.model_kalachakra_partnerdraft"/> | |||||
| <field name="state">code</field> | |||||
| <field name="code">action=model.find_duplicated_partner()</field> | |||||
| </record> | |||||
| <menuitem id="kalachakra_partnerdraft_title_menu" name ="Partners import" | |||||
| parent="contacts.menu_contacts" sequence="4"/> | |||||
| <menuitem id="kalachakra_partnerdraft_menu" action="kalachakra_partnerdraft_action" name ="Partners import" | |||||
| parent="kalachakra_partnerdraft_title_menu" sequence="1"/> | |||||
| <menuitem id="kalachakra_doublonfield_menu" action="kalachakra_doublonfield_action" name ="Doublons fields" | |||||
| parent="kalachakra_partnerdraft_title_menu" sequence="2"/> | |||||
| <menuitem id="kalachakra_doublonfield_menu" action="kalachakra_doublonfield_action" name ="Doublons fields" | |||||
| parent="kalachakra_partnerdraft_title_menu" sequence="2"/> | |||||
| <menuitem id="kalachakra_find_duplicated_partner_menu" action="ir_action_find_duplicated_partner" | |||||
| name="find duplicated partners" parent="kalachakra_partnerdraft_title_menu" sequence="3"/> | |||||
| </odoo> | |||||
| @ -0,0 +1,70 @@ | |||||
| <?xml version="1.0"?> | |||||
| <odoo> | |||||
| <record model="ir.ui.view" id="kalachakra.partner_draft"> | |||||
| <field name="name">_partner_draft list</field> | |||||
| <field name="model">kalachakra.partnerdraft</field> | |||||
| <field name="arch" type="xml"> | |||||
| <tree default_order="name,firstname"> | |||||
| <field name="doublon"/> | |||||
| <field name="source"/> | |||||
| <field name="external_id"/> | |||||
| <field name="name"/> | |||||
| <field name="firstname"/> | |||||
| <field name="phone"/> | |||||
| <field name="mobile"/> | |||||
| <field name="email"/> | |||||
| <field name="complement_ident"/> | |||||
| <field name="complement_geo"/> | |||||
| <field name="street"/> | |||||
| <field name="street2"/> | |||||
| <field name="city"/> | |||||
| <field name="zip"/> | |||||
| <field name="country"/> | |||||
| </tree> | |||||
| </field> | |||||
| </record> | |||||
| <record model="ir.ui.view" id="kalachakra.doublonsfield"> | |||||
| <field name="name">doublons fields list</field> | |||||
| <field name="model">kalachakra.doublonfield</field> | |||||
| <field name="arch" type="xml"> | |||||
| <tree> | |||||
| <field name="name"/> | |||||
| </tree> | |||||
| </field> | |||||
| </record> | |||||
| <record model="ir.ui.view" id="kalachakra.partnerdraft_form" > | |||||
| <field name="name">kalachakra_partnerdraft_form</field> | |||||
| <field name="model">kalachakra.partnerdraft</field> | |||||
| <field name="arch" type="xml"> | |||||
| <form string="Partner draft import"> | |||||
| <header> | |||||
| <!-- <button name="compute_aggregate" type="object" string="Compute"/> --> | |||||
| </header> | |||||
| <sheet> | |||||
| <group name="main"> | |||||
| <field name="doublon"/> | |||||
| <field name="source"/> | |||||
| <field name="external_id"/> | |||||
| <field name="name"/> | |||||
| <field name="firstname"/> | |||||
| <field name="phone"/> | |||||
| <field name="mobile"/> | |||||
| <field name="email"/> | |||||
| <field name="complement_ident"/> | |||||
| <field name="complement_geo"/> | |||||
| <field name="street"/> | |||||
| <field name="street2"/> | |||||
| <field name="city"/> | |||||
| <field name="zip"/> | |||||
| <field name="country"/> | |||||
| </group> | |||||
| </sheet> | |||||
| </form> | |||||
| </field> | |||||
| </record> | |||||
| </odoo> | |||||