Browse Source

operation batch export

master
root 3 years ago
parent
commit
47b6167080
23 changed files with 100 additions and 478 deletions
  1. +1
    -3
      __manifest__.py
  2. +1
    -4
      controllers/portal.py
  3. +1
    -3
      models/__init__.py
  4. +1
    -25
      models/donation.py
  5. +0
    -0
      models/donation_lines.py
  6. +1
    -1
      models/donation_print_email_history.py
  7. +1
    -0
      models/donation_recurring_template_letter.py
  8. +4
    -18
      models/donation_tax_receipt.py
  9. +4
    -6
      models/duplicate.py
  10. +0
    -56
      models/email.py
  11. +12
    -27
      models/operation.py
  12. +40
    -0
      models/operation_batch_export.py
  13. +4
    -29
      models/partner.py
  14. +0
    -56
      models/phone.py
  15. +1
    -48
      models/res_partner_bank.py
  16. +1
    -1
      models/returnmail.py
  17. +1
    -8
      models/template_rf.py
  18. +1
    -4
      security/ir.model.access.csv
  19. +0
    -88
      views/address.xml
  20. +25
    -0
      views/operation_batch_export.xml
  21. +1
    -19
      views/partner.xml
  22. +0
    -64
      views/phone.xml
  23. +0
    -18
      views/recurring_donation.xml

+ 1
- 3
__manifest__.py View File

@ -27,15 +27,13 @@
'security/security.xml',
'views/settings.xml',
'views/qualifier.xml',
'views/address.xml',
'views/email.xml',
'views/phone.xml',
'views/donation.xml',
'views/product.xml',
'views/recurring_donation.xml',
'data/recurring_donation_configuration.xml',
'views/relationship.xml',
'views/operation.xml',
'views/operation_batch_export.xml',
'views/templates.xml',
'views/returnmail.xml',
'views/bank_deposit.xml',


+ 1
- 4
controllers/portal.py View File

@ -121,10 +121,7 @@ class PortalOpendons(CustomerPortal):
def print_id(self, **kw):
tr=request.env['donation.tax.receipt'].sudo().search([('id','=',int(kw['id']))])
if tr:
#mise à jour du champ htl à imprimer
#tr.update_print_pdf()
pdf = request.env.ref('opendons.report_donation_tax_receipt').sudo()._render_qweb_pdf([tr.id])[0]
pdfhttpheaders = [('Content-Type', 'application/pdf'), ('Content-Length', len(pdf))]
return request.make_response(pdf, headers=pdfhttpheaders)


+ 1
- 3
models/__init__.py View File

@ -3,10 +3,8 @@
from . import qualifier
from . import partner
from . import donation
from . import address
from . import email
from . import phone
from . import operation
from . import operation_batch_export
from . import operation_segment
from . import operation_ensemble
from . import operation_request


+ 1
- 25
models/donation.py View File

@ -123,7 +123,7 @@ class DonationDonation(models.Model):
rec.payment_state=rec.payment_batch_id.state
if rec.source_recurring_id:
rec.payment_state='deposited_in_bank'
#accounting_deposit_date=fields.Datetime(related='payment_batch_id.accounting_deposit_date')
year_donation_date=fields.Integer('Year donation date',compute='_compute_year_donation_date',store=True)
print_email_history_ids=fields.One2many(
@ -245,19 +245,6 @@ class DonationDonation(models.Model):
return res
# def write(self, vals):
# res = super(DonationDonation, self).write(vals)
# #si don hors lot de paiement, création auto du lot de paiement
# if not self.payment_batch_id and self.state!='draft' :
# vals={}
# vals['payment_mode_id']=int(self.payment_mode_id)
# batch=self.env['opendons_payment_batch'].create(vals)
# batch.write({'donation_ids':[(4,int(self.id))]})
@api.onchange("partner_id")
def donation_partner_direct_debit_change(self):
@ -662,17 +649,9 @@ class DonationDonation(models.Model):
def payment_order_action(self):
#payorder=self.env['account.payment.order'].search([('state','=','draft')],order='create_date desc', limit=2)
action = self.env.ref("account_payment_order.account_payment_order_inbound_action").sudo().read([])[0]
# action.update(
# {
# "view_mode": "tree",
# "view_type":"list",
# #"res_id": payorder[0].id if payorder[0].id else False
# }
# )
return action
@ -729,9 +708,6 @@ class DonationDonation(models.Model):
}
# self.write({"recurring_template": "stopped"})
# self.write({"stopped_date": fields.Date.context_today(self)})
@api.depends("state", "partner_id", "move_id", "recurring_template")
def name_get(self):


+ 0
- 0
models/donation_lines.py View File


+ 1
- 1
models/donation_print_email_history.py View File

@ -3,7 +3,7 @@ from odoo.exceptions import UserError,Warning
class opendons_donation_print_email_history(models.Model):
_name = 'opendons.donation.print_email_history'
_description = 'history of print or email sent to partner'
_description = 'history of print or email sent to partner from recurring donation screen after rejected payment'
chanel=fields.Char('chanel')
date_action=fields.Date('date action')


+ 1
- 0
models/donation_recurring_template_letter.py View File

@ -4,6 +4,7 @@ from odoo.exceptions import UserError,Warning
class DonationRecurringTemplateLetter(models.Model):
_inherit = "donation.donation"
_description = 'manage recurring templates letters'
template_pa_id=fields.Many2one('opendons.template_pa_letter', '(e)mail to send')
html_content=fields.Html('html content',compute='pa_html_content')


+ 4
- 18
models/donation_tax_receipt.py View File

@ -5,7 +5,7 @@ class DonationTaxReceipt(models.Model):
_inherit = "donation.tax.receipt"
template_rf_id=fields.Many2one('opendons.template_rf', 'RF template')
#html_content=fields.Html('html content',)
html_content_print=fields.Html('html content print')
pdf_file=fields.Binary("PDF")
@ -14,7 +14,7 @@ class DonationTaxReceipt(models.Model):
def create(self, values):
res = super(DonationTaxReceipt, self).create(values)
#génération du RF au format HTML pour impression pdf
#generate the taxreceipt in HTMl format for PDF print
template_rf=self.env['opendons.template_rf'].search([('type_rf','=','generic'),('active','=',True)],limit=1)
html_content_print=template_rf.html_content
@ -40,15 +40,6 @@ class DonationTaxReceipt(models.Model):
def _html_content_rf(self):
self.html_content=self.template_rf_id.html_content
#affichage du RF depuis l'espace donateur
def update_print_pdf(self):
html_content_print=self.html_content
html_content_print=html_content_print.replace('{{partner_id.name}}',self.partner_id.name)
html_content_print=html_content_print.replace('{{partner_id.firstname}}',self.partner_id.firstname)
html_content_print=html_content_print.replace('{{donor_id}}',self.partner_id.donor_id)
html_content_print=html_content_print.replace('{{adresse}}',self.update_adresse())
self.html_content_print=html_content_print
def update_adresse(self):
p=self.env['res.partner'].search([('id','=',int(self.partner_id))])
@ -79,7 +70,7 @@ class DonationTaxReceipt(models.Model):
result='<p>'+title+' '+name+' '+firstname+'<br>'+street+street2+locality+'<br>'+zip+' '+city+'<br>'+country+'</p>'
#result="<p>Monsieur Dupont Marcel<br>7 avenue de la Marne</p><p>75016 Paris</p>"
#result="<p>Monsieur Dupont Marcel<br>7 avenue de la Marne</p><p>75016 Paris</p>"
return result
class DonationTaxReceiptPrint(models.TransientModel):
@ -91,12 +82,7 @@ class DonationTaxReceiptPrint(models.TransientModel):
if not self.receipt_ids:
raise UserError(_("There are no tax receipts to print."))
today = fields.Date.context_today(self)
#self.receipt_ids.write({"print_date": today})
#update htm to print in receipts
for receipt_id in self.receipt_ids:
receipt_id.update_print_pdf()
return self.env.ref("opendons.report_donation_tax_receipt").report_action(self.receipt_ids)

+ 4
- 6
models/duplicate.py View File

@ -65,7 +65,7 @@ class opendons_duplicate_partner(models.Model):
p=self.env.cr.dictfetchall()
except:
raise Warning(sql)
#raise Warning(json.dumps(p))
for pp in p:
@ -116,9 +116,7 @@ class opendons_duplicate_partner(models.Model):
{
"domain": [("id", "in", dbl_partner_ids)],
"limit": 5000,
#'view_mode': 'tree',
#'view_type': 'list'
#"context":{'view_mode':'tree,form'}
}
)
return action
@ -168,7 +166,7 @@ class opendons_duplicate_rule_line(models.Model):
@api.model
def field_selection(self):
field_list=self.env['res.partner'].fields_get()
#raise Warning(json.dumps(field_list))
result=[]
for key in field_list:
result.append((key,key))
@ -178,7 +176,7 @@ class opendons_duplicate_rule_line(models.Model):
def field_selection2(self):
field_list=self.env['res.partner'].fields_get()
#raise Warning(json.dumps(field_list))
result=[]
for key in field_list:
result.append((key,key))


+ 0
- 56
models/email.py View File

@ -1,56 +0,0 @@
# -*- coding: utf-8 -*-
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 opendons_partneremail(models.Model):
_name = 'opendons.partneremail'
_description = 'emails du contact'
_inherit = ['mail.thread']
email = fields.Char()
active=fields.Boolean(string='active',default=True,track_visibility='always')
date_active=fields.Date(readonly=True,string='Date active',track_visibility='always')
date_inactive=fields.Date(readonly=True,string='Date inactive',track_visibility='always')
partner_id = fields.Many2one(
'res.partner',
string='partner',
required=True,
index=True,
readonly=True,
track_visibility='onchange',
ondelete='restrict'
)
def write(self,vals):
date_active=False
date_inactive=False
for val in vals:
if val=='active' and not vals['active']:
date_inactive=fields.Date.context_today(self)
if val=='active' and vals['active']:
date_inactive=False
date_active=fields.Date.context_today(self)
vals['date_inactive']=date_inactive
vals['date_active']=date_active
res = super(opendons_partneremail, self).write(vals)
#Your code goes here
return res

+ 12
- 27
models/operation.py View File

@ -132,6 +132,7 @@ class opendons_operation(models.Model):
def csv_export_operation(self):
tmstp=secrets.token_hex(16)
csv_filename='/tmp/export_'+tmstp+'.csv'
with open(csv_filename, mode='w') as file:
@ -143,8 +144,6 @@ class opendons_operation(models.Model):
writer.writerow(['id','key','name','firstname','title','street','street2','city','cp','country_name','operation','segment'])
#sélections des contacts
res=self.select_partner_operation()
segments=self.env['opendons.segment'].search(['&',('operation_id','=',self.id),('exclusion','=',False)])
#extraction des contacts sélectionnés sur chaque segment
@ -171,7 +170,7 @@ class opendons_operation(models.Model):
writer.writerow([id,key,name,firstname,title,street,street2,city,cp,country_name,operation,segment])
with open(csv_filename, 'r', encoding="utf-8") as f2:
# file encode and store in a variable ‘data’
data = str.encode(f2.read(), 'utf-8')
@ -179,9 +178,9 @@ class opendons_operation(models.Model):
self.document_fname='operation'+str(self.id)+'.csv'
self.exported_date=fields.Date.context_today(self)
os.unlink(csv_filename)
#raise Warning('Traitement terminé')
return
return True
def select_partner_operation(self):
@ -204,19 +203,16 @@ class opendons_operation(models.Model):
mailing_domain='["&","!",'+segexcl.mailing_domain[1:-1]+','+ sg.mailing_domain[1:-1]+']'
#["&","!",["id","=",1],["id","=",2]]
#["&","!",[["id","=",1]],[["id","=",1]]]
#raise UserError(str(mailing_domain))
#try:
partners=self.env['res.partner'].search(eval(mailing_domain))
#except:
# raise UserError(mailing_domain)
#ajouts des contact à l'opération
self.partner_ids=partners
#ajouts des contacts au segment
sg.partner_ids=partners
#sg_1=sg
else:
#on doit exclure tous les contacts qui pourraient être dans les segments précédent
sg_up=self.env['opendons.segment'].search(['&',('operation_id','=',self.id),('sequence','<',int(sg.sequence))])
@ -244,7 +240,10 @@ class opendons_operation(models.Model):
sg_1=sg
i=i+1
self.exported_date=fields.Date.context_today(self, readonly=True)
return True
@ -353,18 +352,4 @@ class opendons_operation(models.Model):
return dup_operation
class opendons_operation_batch_export(models.Model):
_name = 'opendons.operation.batch_export'
_description = 'lot export'
name=fields.Char(string='Name',required=True,track_visibility='always')
operation_id = fields.Many2one(
'opendons.operation',
String='Operation',
index=True,
readonly=True,
track_visibility='onchange',
ondelete='cascade'
)

+ 40
- 0
models/operation_batch_export.py View File

@ -0,0 +1,40 @@
from odoo import models, fields, api,_
from odoo.exceptions import UserError, ValidationError,Warning
from psycopg2 import sql, DatabaseError
from werkzeug import utils
import json
import logging
import xlwt
from io import BytesIO
import base64
import csv
import os,secrets
class opendons_operation_batch_export(models.Model):
_name = 'opendons.operation.batch_export'
_description = 'lot export'
name=fields.Char(string='Name',required=True,track_visibility='always')
operation_id = fields.Many2one(
'opendons.operation',
String='Operation',
index=True,
readonly=True,
track_visibility='onchange',
ondelete='cascade'
)
partner_ids = fields.Many2many('res.partner', 'partner_batch_export_rel', 'partner_id', 'batch_export__id', string='partners')
csv_export = fields.Binary('csv export', filters='.csv', readonly=True)
document_fname=fields.Char()
exported_date=fields.Date(string='Exported Date',track_visibility='always', readonly=True)
def csv_export_batch(self):
segments=self.env['opendons.segment'].search([('operation_id','=',int(self.operation_id)),('batch_export_id','=',int(self.id))])
#récupération des contacts sélectionnées et lié au segments du batch
return True

+ 4
- 29
models/partner.py View File

@ -76,19 +76,14 @@ class partner(models.Model):
)
address_ids = fields.One2many(
'opendons.partneraddress',
'partner_id',
string='Address',
readonly=True
)
request_ids = fields.Many2many('opendons.request', 'request_partner_rel', 'partner_id', 'request_id', string='requests',ondelete='cascade')
operation_ids = fields.Many2many('opendons.operation', 'operation_partner_rel', 'partner_id', 'operation_id', string='operations',ondelete='cascade' )
operation_excl_ids = fields.Many2many('opendons.operation', 'operation_excl_partner_rel', 'partner_id', 'operation_id', string='excluded operations',ondelete='cascade')
segment_ids = fields.Many2many('opendons.segment', 'segment_partner_rel', 'partner_id', 'segment_id', string='segments',ondelete='cascade')
export_batch_ids=fields.Many2many('opendons.batch', 'export_batch_partner_rel', 'partner_id', 'export_batch_id', string='export batchs',ondelete='cascade')
address_count = fields.Integer(
compute='_compute_address_count',
@ -106,28 +101,8 @@ class partner(models.Model):
string="# of Relationship",
readonly=True
)
email_ids = fields.One2many(
'opendons.partneremail',
'partner_id',
string='Email',
readonly=True
)
email_count = fields.Integer(
compute='_compute_email_count',
string="# of email",
readonly=True
)
phone_ids = fields.One2many(
'opendons.partnerphone',
'partner_id',
string='Phone',
readonly=True
)
phone_count = fields.Integer(
compute='_compute_phone_count',
string="# of phone",
readonly=True
)
recurring_donation_count = fields.Integer(
compute='_compute_recurring_donation_count',
string="# of recurring donation",


+ 0
- 56
models/phone.py View File

@ -1,56 +0,0 @@
# -*- coding: utf-8 -*-
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 opendons_partnerphone(models.Model):
_name = 'opendons.partnerphone'
_description = 'telephones du contact'
_inherit = ['mail.thread']
phone = fields.Char()
active=fields.Boolean(string='active',default=True,track_visibility='always')
date_active=fields.Date(readonly=True,string='Date active',track_visibility='always')
date_inactive=fields.Date(readonly=True,string='Date inactive',track_visibility='always')
partner_id = fields.Many2one(
'res.partner',
string='partner',
required=True,
index=True,
readonly=True,
track_visibility='onchange',
ondelete='restrict'
)
def write(self,vals):
date_active=False
date_inactive=False
for val in vals:
if val=='active' and not vals['active']:
date_inactive=fields.Date.context_today(self)
if val=='active' and vals['active']:
date_inactive=False
date_active=fields.Date.context_today(self)
vals['date_inactive']=date_inactive
vals['date_active']=date_active
res = super(opendons_partnerphone, self).write(vals)
#Your code goes here
return res

+ 1
- 48
models/res_partner_bank.py View File

@ -21,51 +21,4 @@ class ResPartnerBank(models.Model):
# class ResPartnerBank(models.Model):
# _inherit = 'res.partner.bank'
# @api.onchange('acc_number')
# def _onchange_acc_number(self):
# #validation IBAN
# #https://www.regextester.com/115565
# if self.acc_number:
# regex = re.compile(r'(^(?:(?:IT|SM)\d{2}[A-Z]\d{22}|CY\d{2}[A-Z]\d{23}|NL\d{2}[A-Z]{4}\d{10}|LV\d{2}[A-Z]{4}\d{13}|(?:BG|BH|GB|IE)\d{2}[A-Z]{4}\d{14}|GI\d{2}[A-Z]{4}\d{15}|RO\d{2}[A-Z]{4}\d{16}|KW\d{2}[A-Z]{4}\d{22}|MT\d{2}[A-Z]{4}\d{23}|NO\d{13}|(?:DK|FI|GL|FO)\d{16}|MK\d{17}|(?:AT|EE|KZ|LU|XK)\d{18}|(?:BA|HR|LI|CH|CR)\d{19}|(?:GE|DE|LT|ME|RS)\d{20}|IL\d{21}|(?:AD|CZ|ES|MD|SA)\d{22}|PT\d{23}|(?:BE|IS)\d{24}|(?:FR|MR|MC)\d{25}|(?:AL|DO|LB|PL)\d{26}|(?:AZ|HU)\d{27}|(?:GR|MU)\d{28})$)+')
# if not re.fullmatch(regex, self.acc_number):
# raise Warning('Invalid IBAN')
# @api.constrains('acc_number')
# def _onchange_acc_number(self):
# #validation IBAN
# #https://www.regextester.com/115565
# if self.acc_number:
# regex = re.compile(r'(^(?:(?:IT|SM)\d{2}[A-Z]\d{22}|CY\d{2}[A-Z]\d{23}|NL\d{2}[A-Z]{4}\d{10}|LV\d{2}[A-Z]{4}\d{13}|(?:BG|BH|GB|IE)\d{2}[A-Z]{4}\d{14}|GI\d{2}[A-Z]{4}\d{15}|RO\d{2}[A-Z]{4}\d{16}|KW\d{2}[A-Z]{4}\d{22}|MT\d{2}[A-Z]{4}\d{23}|NO\d{13}|(?:DK|FI|GL|FO)\d{16}|MK\d{17}|(?:AT|EE|KZ|LU|XK)\d{18}|(?:BA|HR|LI|CH|CR)\d{19}|(?:GE|DE|LT|ME|RS)\d{20}|IL\d{21}|(?:AD|CZ|ES|MD|SA)\d{22}|PT\d{23}|(?:BE|IS)\d{24}|(?:FR|MR|MC)\d{25}|(?:AL|DO|LB|PL)\d{26}|(?:AZ|HU)\d{27}|(?:GR|MU)\d{28})$)+')
# if not re.fullmatch(regex, self.acc_number):
# raise Warning('Invalid IBAN')
# @api.onchange('acc_number')
# def _onchange_acc_number(self):
# #validation IBAN
# #https://www.regextester.com/115565
# if self.acc_number:
# regex = re.compile(r'(^(?:(?:IT|SM)\d{2}[A-Z]\d{22}|CY\d{2}[A-Z]\d{23}|NL\d{2}[A-Z]{4}\d{10}|LV\d{2}[A-Z]{4}\d{13}|(?:BG|BH|GB|IE)\d{2}[A-Z]{4}\d{14}|GI\d{2}[A-Z]{4}\d{15}|RO\d{2}[A-Z]{4}\d{16}|KW\d{2}[A-Z]{4}\d{22}|MT\d{2}[A-Z]{4}\d{23}|NO\d{13}|(?:DK|FI|GL|FO)\d{16}|MK\d{17}|(?:AT|EE|KZ|LU|XK)\d{18}|(?:BA|HR|LI|CH|CR)\d{19}|(?:GE|DE|LT|ME|RS)\d{20}|IL\d{21}|(?:AD|CZ|ES|MD|SA)\d{22}|PT\d{23}|(?:BE|IS)\d{24}|(?:FR|MR|MC)\d{25}|(?:AL|DO|LB|PL)\d{26}|(?:AZ|HU)\d{27}|(?:GR|MU)\d{28})$)+')
# if not re.fullmatch(regex, self.acc_number):
# raise Warning('Invalid IBAN')
# @api.constrains('acc_number')
# def _onchange_acc_number(self):
# #validation IBAN
# #https://www.regextester.com/115565
# if self.acc_number:
# regex = re.compile(r'(^(?:(?:IT|SM)\d{2}[A-Z]\d{22}|CY\d{2}[A-Z]\d{23}|NL\d{2}[A-Z]{4}\d{10}|LV\d{2}[A-Z]{4}\d{13}|(?:BG|BH|GB|IE)\d{2}[A-Z]{4}\d{14}|GI\d{2}[A-Z]{4}\d{15}|RO\d{2}[A-Z]{4}\d{16}|KW\d{2}[A-Z]{4}\d{22}|MT\d{2}[A-Z]{4}\d{23}|NO\d{13}|(?:DK|FI|GL|FO)\d{16}|MK\d{17}|(?:AT|EE|KZ|LU|XK)\d{18}|(?:BA|HR|LI|CH|CR)\d{19}|(?:GE|DE|LT|ME|RS)\d{20}|IL\d{21}|(?:AD|CZ|ES|MD|SA)\d{22}|PT\d{23}|(?:BE|IS)\d{24}|(?:FR|MR|MC)\d{25}|(?:AL|DO|LB|PL)\d{26}|(?:AZ|HU)\d{27}|(?:GR|MU)\d{28})$)+')
# if not re.fullmatch(regex, self.acc_number):
# raise Warning('Invalid IBAN')

+ 1
- 1
models/returnmail.py View File

@ -25,7 +25,7 @@ class opendons_returnmail(models.Model):
'returnmail_id',
string='NPAI',
track_visibility='onchange')
#related_npai_partner_id = fields.Many2one(related='returnmailnpai_ids.partner_id')
company_id = fields.Many2one(
"res.company",
string="Company",


+ 1
- 8
models/template_rf.py View File

@ -19,11 +19,4 @@ class opendons_template_rf(models.Model):
html_content=fields.Html('Html content')
type_rf=fields.Selection(string='type',selection=[('generic','Generic'),('affectation','Affectation'),('high amount','High amount')])
# class opendons_type_template_rf(models.Model):
# _name = 'opendons.type_template_rf'
# _description = 'manage type rf template'
# name=fields.Char('name')
# type_rf=fields.Selection(string='type',selection=[('generic','Generic'),('affectation','Affectation'),('high amount','High amount')])

+ 1
- 4
security/ir.model.access.csv View File

@ -2,11 +2,9 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_opendons_qualifier_qualifier,opendons_qualifier.qualifier,model_opendons_qualifier_qualifier,donation.group_donation_manager,1,1,1,1
access_opendons_qualifier_category,opendons_qualifier.category,model_opendons_qualifier_category,donation.group_donation_manager,1,1,1,1
access_opendons_qualifier_partnerqualifier,opendons_qualifier.partnerqualifier,model_opendons_qualifier_partnerqualifier,donation.group_donation_manager,1,1,1,1
access_opendons_partneraddress,opendons.partneraddress,model_opendons_partneraddress,donation.group_donation_manager,1,1,1,1
access_opendons_operations,opendons.operations,model_opendons_operation,donation.group_donation_manager,1,1,1,1
access_opendons_operation_batch_export,opendons.operation_batch_export,model_opendons_operation_batch_export,donation.group_donation_manager,1,1,1,1
access_opendons_segments,opendons.segments,model_opendons_segment,donation.group_donation_manager,1,1,1,1
access_opendons_ensembles,opendons.ensembles,model_opendons_ensemble,donation.group_donation_manager,1,1,1,1
access_opendons_requests,opendons.requests,model_opendons_request,donation.group_donation_manager,1,1,1,1
@ -14,8 +12,7 @@ access_opendons_requests,opendons.requests,model_opendons_request,donation.group
access_opendons_relationship_partner,opendons_relationship.partner,model_opendons_relationship_partner,donation.group_donation_manager,1,1,1,1
access_opendons_relationship_nature,opendons_relationship.nature,model_opendons_relationship_nature,donation.group_donation_manager,1,1,1,1
access_opendons_relationship_type,opendons_relationship.type,model_opendons_relationship_type,donation.group_donation_manager,1,1,1,1
access_opendons_partneremail,opendons_partneremail,model_opendons_partneremail,donation.group_donation_manager,1,1,1,1
access_opendons_partnerphone,opendons_partnerphone,model_opendons_partnerphone,donation.group_donation_manager,1,1,1,1
access_opendons_returnmail,opendons_returnmail,model_opendons_returnmail,donation.group_donation_manager,1,1,1,1
access_opendons_returnmailnpai,opendons_returnmailnpai,model_opendons_returnmail_npai,donation.group_donation_manager,1,1,1,1


+ 0
- 88
views/address.xml View File

@ -1,88 +0,0 @@
<odoo>
<data>
<!-- explicit list view definition -->
<record model="ir.ui.view" id="opendons.partneraddress_list">
<field name="name">opendons_partneraddress list</field>
<field name="model">opendons.partneraddress</field>
<field name="arch" type="xml">
<tree>
<field name="active"/>
<field name="partner_id"/>
<field name="complement_ident"/>
<field name="complement_geo"/>
<field name="street1"/>
<field name="street2"/>
<field name="postalcode"/>
<field name="city"/>
<field name="country"/>
</tree>
</field>
</record>
<record id="opendons.partneraddress_search" model="ir.ui.view">
<field name="name">opendons_partneraddress.search</field>
<field name="model">opendons.partneraddress</field>
<field name="arch" type="xml">
<search string="Search Adresses">
<field name="partner_id"/>
</search>
</field>
</record>
<record model="ir.ui.view" id="opendons.partneraddress_form" >
<field name="name">opendons_partneraddress Form</field>
<field name="model">opendons.partneraddress</field>
<field name="arch" type="xml">
<form string="partneraddress_form">
<sheet>
<group name="main">
<field name="partner_id"/>
<field name="complement_ident"/>
<field name="complement_geo"/>
<field name="street1"/>
<field name="street2"/>
<field name="postalcode"/>
<field name="city"/>
<field name="country"/>
</group>
<group name="dataquality">
<field name="active"/>
<field name="date_inactive"/>
<field name="npai"/>
</group>
</sheet>
<div class="oe_chatter">
<field name="message_follower_ids" widget="mail_followers"/>
<field name="message_ids" widget="mail_thread"/>
</div>
</form>
</field>
</record>
<!-- actions opening views on models -->
<record model="ir.actions.act_window" id="partneraddress_action">
<field name="name">partneraddresses</field>
<field name="res_model">opendons.partneraddress</field>
<field name="view_mode">tree,form</field>
</record>
</data>
</odoo>

+ 25
- 0
views/operation_batch_export.xml View File

@ -0,0 +1,25 @@
<odoo>
<record model="ir.ui.view" id="opendons.operation_batch_export_form">
<field name="name">opendons_batch_export Form</field>
<field name="model">opendons.operation.batch_export</field>
<field name="arch" type="xml">
<form string="operation_batch_export_form">
<header>
<button type="object" name="csv_export_batch" string="csv export" class="oe_highlight"/>
</header>
<group>
<field name="create_date"/>
<field name="name"/>
<field name="csv_export" filename="document_fname" widget="binary"/>
<field name="document_fname" invisible="1"/>
<field name="exported_date">%b-%d-%Y</field>
</group>
</form>
</field>
</record>
</odoo>

+ 1
- 19
views/partner.xml View File

@ -28,26 +28,8 @@
<field name="domain">[('value_type','=', 'boolean'),('actif','=',True)]</field>
</record>
<record id="act_partner_address" model="ir.actions.act_window">
<field name="name">Addresses</field>
<field name="res_model">opendons.partneraddress</field>
<field name="view_mode">tree,form,graph</field>
<field name="context">{'search_default_partner_id': active_id}</field>
</record>
<record id="act_partner_email" model="ir.actions.act_window">
<field name="name">Emails</field>
<field name="res_model">opendons.partneremail</field>
<field name="view_mode">tree,form,graph</field>
<field name="context">{'search_default_partner_id': active_id}</field>
</record>
<record id="act_partner_phone" model="ir.actions.act_window">
<field name="name">phones</field>
<field name="res_model">opendons.partnerphone</field>
<field name="view_mode">tree,form,graph</field>
<field name="context">{'search_default_partner_id': active_id}</field>
</record>
<record id="act_partner_relationship" model="ir.actions.act_window">


+ 0
- 64
views/phone.xml View File

@ -1,64 +0,0 @@
<odoo>
<data>
<!-- explicit list view definition -->
<record model="ir.ui.view" id="opendons.partnerphone_list">
<field name="name">opendons_partnerphone list</field>
<field name="model">opendons.partnerphone</field>
<field name="arch" type="xml">
<tree>
<field name="active"/>
<field name="partner_id"/>
<field name="phone"/>
</tree>
</field>
</record>
<record id="opendons.partnerphone_search" model="ir.ui.view">
<field name="name">opendons_partnerphone.search</field>
<field name="model">opendons.partnerphone</field>
<field name="arch" type="xml">
<search string="Search phone">
<field name="partner_id"/>
</search>
</field>
</record>
<record model="ir.ui.view" id="opendons.partnerphone_form" >
<field name="name">opendons_partnerphone Form</field>
<field name="model">opendons.partnerphone</field>
<field name="arch" type="xml">
<form string="partnerphone_form">
<sheet>
<group name="main">
<field name="partner_id"/>
<field name="phone"/>
</group>
<group name="dataquality">
<field name="active"/>
<field name="date_active"/>
<field name="date_inactive"/>
</group>
</sheet>
<div class="oe_chatter">
<field name="message_follower_ids" widget="mail_followers"/>
<field name="message_ids" widget="mail_thread"/>
</div>
</form>
</field>
</record>
<!-- actions opening views on models -->
<record model="ir.actions.act_window" id="partnerphone_action">
<field name="name">partnerphones</field>
<field name="res_model">opendons.partnerphone</field>
<field name="view_mode">tree,form</field>
</record>
</data>
</odoo>

+ 0
- 18
views/recurring_donation.xml View File

@ -25,10 +25,6 @@
<field name="partner_id" attrs="{'readonly':[('recurring_template','=','stopped')]}"/>
</xpath>
<!-- <xpath expr="//field[@name='payment_mode_id']" position="replace">
<field name="payment_mode_id" attrs="{'readonly':[('recurring_template','=','stopped')]}"/>
</xpath> -->
<xpath expr="//field[@name='thanks_template_id']" position="replace">
<field name="thanks_template_id" attrs="{'invisible':[('recurring_template','!=',False)]}" widget="selection" />
@ -142,15 +138,6 @@
<field name="frequency" invisible="not context.get('recurring_view')"/>
</xpath>
<!-- <xpath expr="//field[@name='frequency']" position="after">
<field name="start_date" invisible="not context.get('recurring_view')"/>
<field name="lastexecution_date" invisible="not context.get('recurring_view')"/>
</xpath> -->
</field>
</record>
@ -198,9 +185,6 @@
<field name="name">Recurring Donations</field>
<field name="res_model">donation.donation</field>
<field name="view_mode">tree,form,pivot,graph</field>
<!-- <field
name="context"
>{'default_recurring_template': 'active', 'recurring_view': True,'default_tax_receipt_option':'annual','default_donation_date':time.strftime('%Y-%m-%d')}</field> -->
<field name="domain">[('recurring_template', '!=', False)]</field>
</record>
@ -255,6 +239,4 @@
sequence="30"/>
</odoo>

Loading…
Cancel
Save