Browse Source

[MIG][13.0] partner_label

14.0
Ajay Javiya 4 years ago
committed by Alexei Rivera
parent
commit
78755dc2b0
  1. 3
      partner_label/README.rst
  2. 12
      partner_label/__manifest__.py
  3. 13
      partner_label/models/res_company.py
  4. 50
      partner_label/models/res_config_settings.py
  5. 4
      partner_label/readme/CONFIGURE.rst
  6. 2
      partner_label/readme/CONTRIBUTERS.rst
  7. 2
      partner_label/readme/USAGE.rst
  8. 27
      partner_label/reports/res_partner.xml
  9. 22
      partner_label/tests/test_partner_label.py
  10. 93
      partner_label/views/base_config_settings.xml

3
partner_label/README.rst

@ -26,7 +26,7 @@ Usage
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot
:target: https://runbot.odoo-community.org/runbot/134/10.0
:target: https://runbot.odoo-community.org/runbot/134/13.0
Bug Tracker
===========
@ -48,6 +48,7 @@ Contributors
------------
* Holger Brunn <hbrunn@therp.nl>
* Druidoo <https://www.druidoo.io>
Do not contact contributors directly about help with questions or problems concerning this addon, but use the `community mailing list <mailto:community@mail.odoo.com>`_ or the `appropriate specialized mailinglist <https://odoo-community.org/groups>`_ for help, and the bug tracker linked in `Bug Tracker`_ above for technical issues.

12
partner_label/__manifest__.py

@ -1,18 +1,14 @@
# Copyright 2019 Therp BV <https://therp.nl>
# Copyright 2019-2020: Druidoo (<https://www.druidoo.io>)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
{
"name": "Partner labels",
"version": "12.0.1.0.0",
"version": "13.0.1.0.0",
"author": "Therp BV,Odoo Community Association (OCA)",
"license": "AGPL-3",
"category": "Base",
"summary": "Print partner labels",
"depends": [
'base_setup',
],
"data": [
"views/base_config_settings.xml",
"reports/res_partner.xml",
],
"depends": ["base_setup"],
"data": ["views/base_config_settings.xml", "reports/res_partner.xml"],
"installable": True,
}

13
partner_label/models/res_company.py

@ -4,22 +4,19 @@ from odoo import fields, models
class ResCompany(models.Model):
_inherit = 'res.company'
_inherit = "res.company"
partner_labels_width = fields.Float(
'Width', default=60, help='Width in millimeters', required=True,
"Width", default=60, help="Width in millimeters", required=True,
)
partner_labels_height = fields.Float(
'Height', default=42.3, help='Height in millimeters', required=True,
"Height", default=42.3, help="Height in millimeters", required=True,
)
partner_labels_padding = fields.Float(
'Padding', default=5, help='Padding in millimeters', required=True,
"Padding", default=5, help="Padding in millimeters", required=True,
)
partner_labels_margin_top = fields.Float(
string="Margin Top",
default=1,
help="Margin top in millimeters",
required=True,
string="Margin Top", default=1, help="Margin top in millimeters", required=True,
)
partner_labels_margin_bottom = fields.Float(
string="Margin Bottom",

50
partner_label/models/res_config_settings.py

@ -1,66 +1,58 @@
# Copyright 2017-2019 Therp BV <https://therp.nl>
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from odoo import api, fields, models
from odoo import fields, models
class ResConfigSettings(models.TransientModel):
_inherit = 'res.config.settings'
_inherit = "res.config.settings"
partner_labels_width = fields.Float(
related='company_id.partner_labels_width', required=True,
readonly=False,
related="company_id.partner_labels_width", required=True, readonly=False,
)
partner_labels_height = fields.Float(
related='company_id.partner_labels_height', required=True,
readonly=False,
related="company_id.partner_labels_height", required=True, readonly=False,
)
partner_labels_padding = fields.Float(
related='company_id.partner_labels_padding', required=True,
readonly=False,
related="company_id.partner_labels_padding", required=True, readonly=False,
)
partner_labels_margin_top = fields.Float(
related='company_id.partner_labels_margin_top',
required=True, readonly=False,
related="company_id.partner_labels_margin_top", required=True, readonly=False,
)
partner_labels_margin_bottom = fields.Float(
related='company_id.partner_labels_margin_bottom',
required=True, readonly=False,
related="company_id.partner_labels_margin_bottom",
required=True,
readonly=False,
)
partner_labels_margin_left = fields.Float(
related='company_id.partner_labels_margin_left',
required=True, readonly=False,
related="company_id.partner_labels_margin_left", required=True, readonly=False,
)
partner_labels_margin_right = fields.Float(
related='company_id.partner_labels_margin_right',
required=True, readonly=False,
related="company_id.partner_labels_margin_right", required=True, readonly=False,
)
partner_labels_paperformat_id = fields.Many2one(
'report.paperformat', string='Paperformat', required=True,
"report.paperformat",
string="Paperformat",
required=True,
default=lambda self: self.env.ref(
'partner_label.report_res_partner_label'
"partner_label.report_res_partner_label"
).paperformat_id,
compute='_compute_partner_labels_paperformat_id',
inverse='_inverse_partner_labels_paperformat_id',
compute="_compute_partner_labels_paperformat_id",
inverse="_inverse_partner_labels_paperformat_id",
)
@api.multi
def _compute_partner_labels_paperformat_id(self):
for this in self:
this.partner_labels_paperformat_id = self.env.ref(
'partner_label.report_res_partner_label'
"partner_label.report_res_partner_label"
).paperformat_id
@api.multi
def _inverse_partner_labels_paperformat_id(self):
for this in self:
self.env.ref(
'partner_label.report_res_partner_label'
"partner_label.report_res_partner_label"
).paperformat_id = this.partner_labels_paperformat_id
@api.multi
def action_partner_labels_preview(self):
return self.env.ref(
'partner_label.report_res_partner_label'
).report_action(
self.env['res.partner'].search([], limit=100),
return self.env.ref("partner_label.report_res_partner_label").report_action(
self.env["res.partner"].search([], limit=100),
)

4
partner_label/readme/CONFIGURE.rst

@ -0,0 +1,4 @@
#. go to `Settings / General settings`
#. scroll to header `Labels configuration`
#. change width, height, padding and margin to fit your label stickers, if necessary change the paper format
#. you can preview your changes by pressing the `Preview` button

2
partner_label/readme/CONTRIBUTERS.rst

@ -0,0 +1,2 @@
* Holger Brunn <hbrunn@therp.nl>
* Druidoo <https://www.druidoo.io>

2
partner_label/readme/USAGE.rst

@ -0,0 +1,2 @@
#. mark partners
#. print your labels

27
partner_label/reports/res_partner.xml

@ -1,27 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<template id="view_res_partner_label">
<t t-call="web.basic_layout">
<t t-set="company_id" t-value="res_company" />
<t t-foreach="docs.with_context(show_address=True)" t-as="this">
<div t-attf-style="height: {{this.company_id.partner_labels_height}}mm;
width: {{this.company_id.partner_labels_width}}mm;
padding: {{this.company_id.partner_labels_padding}}mm;
margin-top: {{this.company_id.partner_labels_margin_top}}mm;
margin-bottom: {{this.company_id.partner_labels_margin_bottom}}mm;
margin-left: {{this.company_id.partner_labels_margin_left}}mm;
margin-right: {{this.company_id.partner_labels_margin_right}}mm;
<div
t-attf-style="height: {{company_id.partner_labels_height}}mm;
width: {{company_id.partner_labels_width}}mm;
padding: {{company_id.partner_labels_padding}}mm;
margin-top: {{company_id.partner_labels_margin_top}}mm;
margin-bottom: {{company_id.partner_labels_margin_bottom}}mm;
margin-left: {{company_id.partner_labels_margin_left}}mm;
margin-right: {{company_id.partner_labels_margin_right}}mm;
display: inline-block;
overflow: hidden;
float:left;
page-break-inside: avoid;">
<address t-field="this.self"
page-break-inside: avoid;"
>
<address
t-field="this.self"
t-options='{"widget": "contact", "fields": ["address", "name"], "no_marker": True}'
/>
</div>
</t>
</t>
</template>
<report id="report_res_partner_label"
<report
id="report_res_partner_label"
string="Partner Labels"
model="res.partner"
name="partner_label.view_res_partner_label"

22
partner_label/tests/test_partner_label.py

@ -5,22 +5,22 @@ from odoo.tests.common import TransactionCase
class TestPartnerLabel(TransactionCase):
def test_partner_label(self):
settings = self.env['res.config.settings'].create({})
settings = self.env["res.config.settings"].create({})
settings.refresh()
self.assertItemsEqual(
settings.action_partner_labels_preview()['context']['active_ids'],
self.env['res.partner'].search([], limit=100).ids,
settings.action_partner_labels_preview()["context"]["report_action"][
"context"
]["active_ids"],
self.env["res.partner"].search([], limit=100).ids,
)
self.assertEqual(
settings.partner_labels_paperformat_id,
self.env.ref('partner_label.report_res_partner_label')
.paperformat_id
self.env.ref("partner_label.report_res_partner_label").paperformat_id,
)
settings.partner_labels_paperformat_id = (
self.env.ref("base.paperformat_us").id,
)
settings.partner_labels_paperformat_id = self.env.ref(
'base.paperformat_us'
).id,
self.assertEqual(
self.env.ref('partner_label.report_res_partner_label')
.paperformat_id,
self.env.ref('base.paperformat_us')
self.env.ref("partner_label.report_res_partner_label").paperformat_id,
self.env.ref("base.paperformat_us"),
)

93
partner_label/views/base_config_settings.xml

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="view_general_configuration" model="ir.ui.view">
<field name="model">res.config.settings</field>
@ -10,47 +10,100 @@
<div class="row mt16 o_settings_container">
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_right_pane">
<div class="content-group">
<div class="content-group">
<div class="mt16 row">
<label for="partner_labels_width" class="col-3 col-lg-3 o_light_label"/>
<field name="partner_labels_width" class="oe_inline" />mm
<label
for="partner_labels_width"
class="col-3 col-lg-3 o_light_label"
/>
<field
name="partner_labels_width"
class="oe_inline"
/>mm
</div>
<div class="mt16 row">
<label for="partner_labels_height" class="col-3 col-lg-3 o_light_label"/>
<field name="partner_labels_height" class="oe_inline" />mm
<label
for="partner_labels_height"
class="col-3 col-lg-3 o_light_label"
/>
<field
name="partner_labels_height"
class="oe_inline"
/>mm
</div>
<div class="mt16 row">
<label for="partner_labels_padding" class="col-3 col-lg-3 o_light_label"/>
<field name="partner_labels_padding" class="oe_inline" />mm
<label
for="partner_labels_padding"
class="col-3 col-lg-3 o_light_label"
/>
<field
name="partner_labels_padding"
class="oe_inline"
/>mm
</div>
<div class="mt16 row">
<label for="partner_labels_paperformat_id" class="col-3 col-lg-3 o_light_label"/>
<field name="partner_labels_paperformat_id" class="oe_inline" />
<label
for="partner_labels_paperformat_id"
class="col-3 col-lg-3 o_light_label"
/>
<field
name="partner_labels_paperformat_id"
class="oe_inline"
/>
</div>
<div class="mt16">
<button type="object" name="action_partner_labels_preview" string="Preview" class="oe_link" />
<button
type="object"
name="action_partner_labels_preview"
string="Preview"
class="oe_link"
/>
</div>
</div>
</div>
</div>
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_right_pane">
<div class="content-group">
<div class="content-group">
<div class="mt16 row">
<label for="partner_labels_margin_top" class="col-3 col-lg-3 o_light_label"/>
<field name="partner_labels_margin_top" class="oe_inline" />mm
<label
for="partner_labels_margin_top"
class="col-3 col-lg-3 o_light_label"
/>
<field
name="partner_labels_margin_top"
class="oe_inline"
/>mm
</div>
<div class="mt16 row">
<label for="partner_labels_margin_bottom" class="col-3 col-lg-3 o_light_label"/>
<field name="partner_labels_margin_bottom" class="oe_inline" />mm
<label
for="partner_labels_margin_bottom"
class="col-3 col-lg-3 o_light_label"
/>
<field
name="partner_labels_margin_bottom"
class="oe_inline"
/>mm
</div>
<div class="mt16 row">
<label for="partner_labels_margin_left" class="col-3 col-lg-3 o_light_label"/>
<field name="partner_labels_margin_left" class="oe_inline" />mm
<label
for="partner_labels_margin_left"
class="col-3 col-lg-3 o_light_label"
/>
<field
name="partner_labels_margin_left"
class="oe_inline"
/>mm
</div>
<div class="mt16 row">
<label for="partner_labels_margin_right" class="col-3 col-lg-3 o_light_label"/>
<field name="partner_labels_margin_right" class="oe_inline" />mm
<label
for="partner_labels_margin_right"
class="col-3 col-lg-3 o_light_label"
/>
<field
name="partner_labels_margin_right"
class="oe_inline"
/>mm
</div>
</div>
</div>

Loading…
Cancel
Save