Skip to content

Commit

Permalink
[MIG] Migrate module pos_partner_firstname to v14.
Browse files Browse the repository at this point in the history
  • Loading branch information
dsolanki-initos authored and robyf70 committed Apr 1, 2022
1 parent 546f6d9 commit 09b22a4
Show file tree
Hide file tree
Showing 9 changed files with 129 additions and 156 deletions.
2 changes: 1 addition & 1 deletion oca_dependencies.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
# See https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#oca_dependencies-txt
partner-contact
3 changes: 2 additions & 1 deletion pos_partner_firstname/__manifest__.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
# Copyright 2021 initOS Gmbh
# Copyright 2019 Roberto Fichera
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

{
"name": "POS Partner Firstname",
"summary": "POS Support of partner firstname",
"version": "12.0.1.1.1",
"version": "14.0.1.0.0",
"development_status": "Beta",
"category": "Point Of Sale",
"website": "https://github.com/OCA/pos",
Expand Down
6 changes: 0 additions & 6 deletions pos_partner_firstname/models/res_partner.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,6 @@
class ResPartner(models.Model):
_inherit = "res.partner"

@api.model
def create_from_ui(self, partner):
if "is_company" in partner:
partner["is_company"] = partner["is_company"] == "true"
return super(ResPartner, self).create_from_ui(partner)

@api.model
def get_names_order(self):
"""Allow POS frontend to retrieve 'partner_names_order'"""
Expand Down
1 change: 1 addition & 0 deletions pos_partner_firstname/readme/CONTRIBUTORS.rst
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
* Dhara Solanki <dhara.solanki@initos.com>
* Roberto Fichera <roberto.fichera@levelprime.com>
* Lorenzo Battistini (https://takobi.online)
65 changes: 65 additions & 0 deletions pos_partner_firstname/static/src/js/ClientDetailsEdit.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
odoo.define("pos_partner_firstname.ClientDetailsEdit", function (require) {
"use strict";

var ClientDetailsEdit = require("point_of_sale.ClientDetailsEdit");
const Registries = require("point_of_sale.Registries");

const PosClientDetailsEdit = (ClientDetailsEdit) =>
class extends ClientDetailsEdit {
constructor() {
super(...arguments);
var self = this;
this.partner_names_order = "last_first";
this.rpc({
model: "res.partner",
method: "get_names_order",
args: [],
}).then(function (partner_names_order) {
if (partner_names_order) {
self.partner_names_order = partner_names_order;
}
});
}
_update_client_name(checked) {
if (!checked) {
var lastname = this.props.partner.lastname;
var firstname = this.props.partner.firstname;
var name = null;
if (this.partner_names_order === "last_first_comma") {
name = lastname + ", " + firstname;
} else if (this.partner_names_order === "first_last") {
name = firstname + " " + lastname;
} else {
name = lastname + " " + firstname;
}
this.props.partner.name = name.trim();
}
}
willUnmount() {
super.willUnmount();
}
captureChange(event) {
super.captureChange(event);
if (event.target.name === "is_company") {
var checked = event.currentTarget.checked;
$(".is_person")
.toArray()
.forEach(function (el) {
$(el).css("display", !checked ? "block" : "none");
});

this.changes[event.target.name] = event.target.checked;
var clientname = $(".client-name");

clientname.attr("readonly", !checked);
if (!checked) {
this._update_client_name(checked);
}
}
}
};

Registries.Component.extend(ClientDetailsEdit, PosClientDetailsEdit);

return ClientDetailsEdit;
});
20 changes: 20 additions & 0 deletions pos_partner_firstname/static/src/js/ClientScreen.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
odoo.define("pos_partner_firstname.ClientScreen", function (require) {
"use strict";

var ClientScreenEdit = require("point_of_sale.ClientListScreen");
const Registries = require("point_of_sale.Registries");

const PosClientScreenEdit = (ClientScreenEdit) =>
class extends ClientScreenEdit {
back() {
super.back();
if (this.props.client) {
if (this.props.client.id == this.state.selectedClient.id) {
this.props.client.name = this.state.selectedClient.name;
}
}
}
};
Registries.Component.extend(ClientScreenEdit, PosClientScreenEdit);
return ClientScreenEdit;
});
79 changes: 0 additions & 79 deletions pos_partner_firstname/static/src/js/screens.js

This file was deleted.

103 changes: 35 additions & 68 deletions pos_partner_firstname/static/src/xml/pos.xml
Original file line number Diff line number Diff line change
@@ -1,87 +1,54 @@
<?xml version="1.0" encoding="UTF-8" ?>
<templates id="template" xml:space="preserve">

<t t-extend="ClientDetails">
<t t-jquery=".client-name" t-operation="after">
<div class="client-details-box clearfix">
<div class="client-detail">
<span class='label'>Company</span>
<input
type='checkbox'
class='detail is_company'
name='is_company'
t-att-checked="partner.is_company ? 'checked' : null"
disabled="disabled"
t-att-value="partner.is_company"
/>
</div>
<t t-inherit="point_of_sale.ClientDetailsEdit" t-inherit-mode="extension">
<xpath expr="//input[@name='name']" position="attributes">
<attribute name="t-att-readonly">!props.partner.is_company</attribute>
</xpath>
<xpath expr="//div[@class='client-details-left']/div[1]" position="before">
<div class="client-detail">
<span class='label'>Company</span>
<input
type='checkbox'
class='detail o_checkbox checkbox is_company'
name='is_company'
t-att-checked="props.partner.is_company ? 'checked' : null"
t-on-change="captureChange"
/>
</div>
</t>
<t t-jquery=".client-details-left" t-operation="prepend">
<t t-if="partner.is_company == false">
<div t-attf-style="display: #{!partner.is_company ? 'block': 'none'};">
<div class="client-detail">
<span class='label'>Name</span>
<span class='detail firstname'><t
t-esc='partner.firstname or ""'
/></span>
</div>
</div>
<div t-attf-style="display: #{!partner.is_company ? 'block': 'none'};">
<div class="client-detail">
<span class='label'>Surname</span>
<span class='detail lastname'><t
t-esc='partner.lastname or ""'
/></span>
</div>
</div>
</t>
</t>
</t>

<t t-extend="ClientDetailsEdit">
<t t-jquery=".client-name" t-operation="append">
<div class="client-details-box clearfix">
<div class="client-detail">
<span class='label'>Company</span>
<input
type='checkbox'
class='detail o_checkbox checkbox is_company'
name='is_company'
t-att-checked="partner.is_company ? 'checked' : null"
t-att-value="partner.is_company"
/>
</div>
</div>
</t>
<t t-jquery=".client-details-left" t-operation="prepend">
<div
<div
class="is_person"
t-attf-style="display: #{!partner.is_company ? 'block': 'none'};"
t-on-change="captureChange"
t-attf-style="display: {{!props.partner.is_company ? 'block': 'none'}};"
>
<div class='client-detail'>
<span class='label'>Name</span>
<input
<div class='client-detail'>
<span class='label'>Name</span>
<input
class='detail firstname person'
name="firstname"
t-att-value='partner.firstname or ""'
t-on-change="captureChange"
t-att-value="props.partner.firstname || ''"
placeholder="FirstName"
/>
</div>
</div>
</div>
<div
<div
class="is_person"
t-attf-style="display: #{!partner.is_company ? 'block': 'none'};"
t-on-change="captureChange"
t-attf-style="display: {{!props.partner.is_company ? 'block': 'none'}};"
>
<div class='client-detail'>
<span class='label'>Surname</span>
<input
<div class='client-detail'>
<span class='label'>Surname</span>
<input
class='detail lastname person'
name="lastname"
t-att-value='partner.lastname or ""'
t-on-change="captureChange"
t-att-value="props.partner.lastname || ''"
placeholder="LastName"
/>
</div>
</div>
</div>
</t>
</xpath>
</t>

</templates>
6 changes: 5 additions & 1 deletion pos_partner_firstname/views/assets.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,11 @@
/>
<script
type="text/javascript"
src="/pos_partner_firstname/static/src/js/screens.js"
src="/pos_partner_firstname/static/src/js/ClientDetailsEdit.js"
/>
<script
type="text/javascript"
src="/pos_partner_firstname/static/src/js/ClientScreen.js"
/>
</xpath>
</template>
Expand Down

0 comments on commit 09b22a4

Please sign in to comment.