Skip to content
This repository has been archived by the owner on Feb 29, 2024. It is now read-only.

Commit

Permalink
[IMP] Migration to 12.0
Browse files Browse the repository at this point in the history
  • Loading branch information
rbellanova committed Aug 20, 2020
1 parent cc622f4 commit 2276a49
Show file tree
Hide file tree
Showing 20 changed files with 610 additions and 576 deletions.
20 changes: 13 additions & 7 deletions __manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,28 @@
# Part of Odoo. See LICENSE file for full copyright and licensing details.
{
'name': 'Technical reports',
'version': '10.0.1.2.0',
'description': "Technical reports",
'version': '12.0.1.0.0',
'description': "Technical Reports",
'category': 'Reports',
'author': 'Apulia Software s.r.l.',
'website': 'http://www.apuliasoftware.it',
'depends': ['base', 'base_geolocalize', 'account','project'],
'depends': [
'base',
'web',
'base_geolocalize',
'account',
'project',
],
'data': [
'security/ir.model.access.csv',
'wizard/technical_report_make_invoice_view.xml',
'wizard/create_report_from_activity_view.xml',
'views/reports_view.xml',
'views/technical_report_views.xml',
'views/notes_view.xml',
'views/task_view.xml',
#'reports/technical_reports_qweb.xml',
#'reports/external_reports_qweb.xml',
#'reports/report.xml',
'reports/report.xml',
'reports/technical_reports_qweb.xml',
'reports/external_reports_qweb.xml',
'data/ir_sequence_data.xml',
'views/partner_view.xml',
'views/project_view.xml',
Expand Down
2 changes: 1 addition & 1 deletion data/ir_sequence_data.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<record id="seq_techincal_reports" model="ir.sequence">
<field name="name">Technical reports</field>
<field name="code">technical.reports</field>
<field name="prefix">TR%(y)s</field>
<field name="prefix">TR/%(y)s/</field>
<field name="padding">4</field>
<field name="company_id" eval="False"/>
</record>
Expand Down
580 changes: 295 additions & 285 deletions i18n/it.po

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions models/__init__.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.

from . import reports
from . import technical_report
from . import notes
from . import task
from . import qweb_parser
from . import partner
from . import project
from . import res_config
from . import travel_costs
# from . import travel_costs
from . import res_company
from . import account
20 changes: 10 additions & 10 deletions models/partner.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.

from odoo import fields, models, api
import ast
import json
import requests
import json, ast

from odoo import fields, models, api

class ResPartner (models.Model):

class ResPartner(models.Model):
_inherit = 'res.partner'

technical_reports_count = fields.Integer(
Expand All @@ -24,12 +24,12 @@ def _compute_technical_reports_count(self):
def get_distance_from_partner(self, from_partner):
partner_link = 'http://router.project-osrm.org/route/v1/driving/' \
'{part_long},{part_lat};{comp_long},{comp_lat}' \
'?overview=false'\
'?overview=false' \
.format(part_long=str(self.partner_longitude),
part_lat=str(self.partner_latitude),
comp_long=str(from_partner.partner_longitude),
comp_lat=str(from_partner.partner_latitude)
)
part_lat=str(self.partner_latitude),
comp_long=str(from_partner.partner_longitude),
comp_lat=str(from_partner.partner_latitude)
)
r = requests.get(partner_link)
dict = r.json()
data = ast.literal_eval(json.dumps(dict))
Expand All @@ -45,5 +45,5 @@ def distance_calc(self):
for partner in self:
distance = self.get_distance_from_partner(
self.env.user.company_id.partner_id)
if distance:
if distance >= 0:
partner.distance = distance
36 changes: 18 additions & 18 deletions models/qweb_parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,49 +2,49 @@
# Part of Odoo. See LICENSE file for full copyright and licensing details.

from odoo import models, api
from datetime import datetime


class TechnicalReportsQweb(models.AbstractModel):

_name = 'report.technical_reports.technical_reports_qweb'

@api.multi
def render_html(self, docids, data=None):
print (self.env.context, docids)
@api.model
def _get_report_values(self, docids, data=None):
report = self.env['ir.actions.report']._get_report_from_name(
'technical_reports.technical_reports_qweb')

docs = self.env['technical.report'].browse(docids)

docargs = {
'timediff': self._timediff,
'docs': docs,
'doc_ids': docids,
'doc_model': report.model
}
return self.env['report'].render(
'technical_reports.technical_reports_qweb', docargs)
return docargs

def _timediff(self, toDate, fromDate):
if toDate and fromDate:
date1 = datetime.strptime(toDate, '%Y-%m-%d %H:%M:%S')
date2 = datetime.strptime(fromDate, '%Y-%m-%d %H:%M:%S')
result = date1 - date2
return result
return toDate - fromDate


class ExternalReportsQweb(models.AbstractModel):
_name = 'report.technical_reports.technical_reports_external_qweb'

@api.multi
def render_html(self, docids, data=None):
@api.model
def _get_report_values(self, docids, data=None):
report = self.env['ir.actions.report']._get_report_from_name(
'technical_reports.technical_reports_external_qweb')

docs = self.env['technical.report'].browse(docids)
docargs = {
'timediff': self._timediff,
'docs': docs,
'doc_ids': docids,
'doc_model': report.model
}
return self.env['report'].render(
'technical_reports.technical_reports_external_qweb', docargs)
return docargs

def _timediff(self, toDate, fromDate):
if toDate and fromDate:
date1 = datetime.strptime(toDate, '%Y-%m-%d %H:%M:%S')
date2 = datetime.strptime(fromDate, '%Y-%m-%d %H:%M:%S')
return date1 - date2
if toDate and fromDate:
return toDate - fromDate
6 changes: 3 additions & 3 deletions models/res_company.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ class ResCompany(models.Model):
_inherit = 'res.company'

labor_service_id = fields.Many2one('product.product',
string="Labor service report")
travel_costs_ids = fields.One2many(
"technical.report.travel.costs", "company_id", string="Travel costs")
string="Labor service")
# travel_costs_ids = fields.Many2many(
# "technical.report.travel.costs", "company_id", string="Travel costs")
travel_product = fields.Many2one('product.product')

@api.multi
Expand Down
11 changes: 6 additions & 5 deletions models/res_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,13 @@
from odoo import api, fields, models


class ProjectConfigSettings(models.TransientModel):
class ResConfigSettings(models.TransientModel):

_inherit = 'res.config.settings'

labor_service_id = fields.Many2one(
related='company_id.labor_service_id', string="Labor service report")
travel_costs_ids = fields.One2many(
related="company_id.travel_costs_ids", string="Travel costs")
travel_product = fields.Many2one(related='company_id.travel_product')
related='company_id.labor_service_id', readonly=False)
# travel_costs_ids = fields.Many2many(
# related="company_id.travel_costs_ids", readonly=False)
travel_product = fields.Many2one(related='company_id.travel_product',
readonly=False)
33 changes: 18 additions & 15 deletions models/reports.py → models/technical_report.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.

from odoo import fields, models, api, _
from odoo import api, fields, models, _
from datetime import datetime
from openerp.exceptions import UserError
from odoo.exceptions import UserError


class TechnicalReport(models.Model):

_name = 'technical.report'
_rec_name = "display_name"

Expand All @@ -29,17 +28,19 @@ class TechnicalReport(models.Model):
string="Order type", required=True)
to_invoice = fields.Boolean()
customer_note = fields.Text()
#digital_sign = fields.Binary()
display_name = fields.Char(compute='_display_name')
# digital_sign = fields.Binary()
display_name = fields.Char(
compute='_display_name'
)
notes_ids = fields.One2many(
"technical.report.notes", "report_id", string="Notes")
state = fields.Selection([
('draft', 'Draft'),
('to invoice', 'To invoice'),
('done', 'Done')],
string="state", default="draft")
invoice_id = fields.Many2one ("account.invoice", string="Invoice",
readonly=True)
invoice_id = fields.Many2one("account.invoice", string="Invoice",
readonly=True)
intervention_place = fields.Many2one("res.partner")
city = fields.Char(related="intervention_place.city", string="City",
store=True, readonly=True)
Expand All @@ -53,14 +54,16 @@ def _display_name(self):
sequence.append(n.project_id.name)
if n.start_activity_date:
n.date_without_time = datetime.strptime(
n.start_activity_date, "%Y-%m-%d %H:%M:%S").date()
str(n.start_activity_date), "%Y-%m-%d %H:%M:%S").date()
n.convert_date = datetime.strftime(n.date_without_time,
"%Y-%m-%d")
sequence.append(n.convert_date)
n.display_name = " - ".join(sequence)

@api.model
@api.model_create_multi
def create(self, vals):
if isinstance(vals, list):
vals = vals[0]
if vals.get('name', _('New')) == _('New'):
vals['name'] = self.env['ir.sequence'].next_by_code(
'technical.reports') or _('New')
Expand All @@ -75,7 +78,7 @@ def action_done(self):
@api.multi
def action_to_confirm(self):
for o in self:
if o.to_invoice == False and o.order_type == 'prepaid':
if not o.to_invoice and o.order_type == 'prepaid':
o.state = 'done'
else:
o.state = 'to invoice'
Expand All @@ -93,13 +96,13 @@ def change_partner(self):

@api.multi
@api.constrains('start_journey_date', 'end_journey_date',
'start_activity_date', 'end_activity_date')
'start_activity_date', 'end_activity_date')
def check_date(self):
for report in self:
if not (report.start_journey_date and report.start_activity_date):
continue

if (report.start_activity_date < report.start_journey_date):
if report.start_activity_date < report.start_journey_date:
raise UserError(
_(
'Error'
Expand All @@ -109,7 +112,7 @@ def check_date(self):
))
if not (report.start_activity_date and report.end_activity_date):
continue
if(report.start_activity_date > report.end_activity_date):
if report.start_activity_date > report.end_activity_date:
raise UserError(
_(
'Error'
Expand All @@ -119,7 +122,7 @@ def check_date(self):
))
if not (report.end_activity_date and report.end_journey_date):
continue
if (report.end_activity_date > report.end_journey_date):
if report.end_activity_date > report.end_journey_date:
raise UserError(
_(
'Error'
Expand All @@ -129,7 +132,7 @@ def check_date(self):
))
if not (report.start_journey_date and report.end_journey_date):
continue
if(report.start_journey_date > report.end_journey_date):
if report.start_journey_date > report.end_journey_date:
raise UserError(
_(
'Error'
Expand Down
12 changes: 6 additions & 6 deletions models/travel_costs.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.

from odoo import fields, models, api
from odoo import api, fields, models


class TechnicalReportTravelCosts(models.TransientModel):
class TechnicalReportTravelCosts(models.Model):

_name = 'technical.report.travel.costs'

from_km = fields.Float()
to_km =fields.Float()
fixed_cost =fields.Float()
variable_cost=fields.Float()
company_id = fields.Many2one("res.company", string="Technical report")
to_km = fields.Float()
fixed_cost = fields.Float()
variable_cost = fields.Float()
company_id = fields.Many2one("res.company")
9 changes: 3 additions & 6 deletions reports/external_reports_qweb.xml
Original file line number Diff line number Diff line change
@@ -1,18 +1,15 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>

<template id="technical_reports_external_qweb_document" inherit_id="technical_reports.technical_reports_qweb_document" primary="True">
<xpath expr="//div[@class='notes']" position="replace"></xpath>
<xpath expr="//table[@name='notes']" position="replace"></xpath>
<xpath expr="//div[@class='notes']" position="replace"/>
<xpath expr="//table[@name='notes']" position="replace"/>
</template>

<template id="technical_reports_external_qweb">
<t t-call="report.html_container">
<t t-call="web.html_container">
<t t-foreach="docs" t-as="o">
<t t-call="technical_reports.technical_reports_external_qweb_document" t-lang="o.partner_id.lang"/>
</t>
</t>
</template>


</odoo>
Loading

0 comments on commit 2276a49

Please sign in to comment.