From f3effe022f0434839578196b1cf77c921a787c59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phan=20Sainl=C3=A9ger?= Date: Mon, 17 Jun 2024 16:26:28 +0200 Subject: [PATCH 01/24] [IMP] lcc_lokavaluto_app_connection: create debit.request model --- lcc_lokavaluto_app_connection/__manifest__.py | 1 + .../models/__init__.py | 1 + .../models/account_invoice.py | 37 +++++ .../models/debit_request.py | 130 ++++++++++++++++++ .../security/ir.model.access.csv | 4 +- .../views/account_invoice.xml | 16 ++- .../views/debit_request.xml | 66 +++++++++ lcc_lokavaluto_app_connection/views/menu.xml | 19 +++ 8 files changed, 271 insertions(+), 3 deletions(-) create mode 100644 lcc_lokavaluto_app_connection/models/debit_request.py create mode 100644 lcc_lokavaluto_app_connection/views/debit_request.xml diff --git a/lcc_lokavaluto_app_connection/__manifest__.py b/lcc_lokavaluto_app_connection/__manifest__.py index e48e97fe..804955a3 100644 --- a/lcc_lokavaluto_app_connection/__manifest__.py +++ b/lcc_lokavaluto_app_connection/__manifest__.py @@ -30,6 +30,7 @@ "views/sale_order.xml", "views/lcc_backend.xml", "views/credit_request.xml", + "views/debit_request.xml", "views/menu.xml", "views/portal_my_home.xml", "views/res_config_settings_view.xml", diff --git a/lcc_lokavaluto_app_connection/models/__init__.py b/lcc_lokavaluto_app_connection/models/__init__.py index 2b4506cd..075eb0b6 100644 --- a/lcc_lokavaluto_app_connection/models/__init__.py +++ b/lcc_lokavaluto_app_connection/models/__init__.py @@ -6,3 +6,4 @@ from . import company from . import res_config_settings from . import credit_request +from . import debit_request diff --git a/lcc_lokavaluto_app_connection/models/account_invoice.py b/lcc_lokavaluto_app_connection/models/account_invoice.py index 8fed0815..a956be20 100644 --- a/lcc_lokavaluto_app_connection/models/account_invoice.py +++ b/lcc_lokavaluto_app_connection/models/account_invoice.py @@ -13,6 +13,9 @@ class AccountInvoice(models.Model): credit_request_ids = fields.One2many( "credit.request", "invoice_id", string="Credit Requests" ) + debit_request_ids = fields.One2many( + "debit.request", "debit_move_id", string="Credit Requests" + ) global_credit_status = fields.Selection( [ ("todo", "To do"), @@ -29,6 +32,12 @@ class AccountInvoice(models.Model): global_lcc_amount_to_credit = fields.Float( string="LCC amount to credit", compute="_compute_global_lcc_amounts" ) + digital_currency_invoice_type = fields.Selection([ + ('none', 'None'), + ('credit', 'Credit'), + ('debit', 'Debit') + ], string='Digital Currency Invoice Type', compute="_compute_digital_currency_invoice_type" + ) @api.depends("credit_request_ids") def _compute_global_credit_status(self): @@ -60,6 +69,19 @@ def _compute_has_numeric_lcc_products(self): if lcc_numeric_products: self.has_numeric_lcc_products = True + def _compute_debit_request_ids(self): + for move in self: + move.debit_request_ids = self.env["debit.request"].search(["|", ("debit_move_id", "=", move.id), ("commission_move_id", "=", move.id)]) + + @api.depends("debit_request_ids", "credit_request_ids") + def _compute_digital_currency_invoice_type(self): + if self.debit_request_ids: + self.digital_currency_invoice_type = "debit" + elif self.credit_request_ids: + self.digital_currency_invoice_type = "credit" + else: + self.digital_currency_invoice_type = "none" + def _invoice_paid_hook(self): res = super(AccountInvoice, self)._invoice_paid_hook() for invoice in self.filtered(lambda move: move.is_invoice() and move.is_sale_document() and move.has_numeric_lcc_products): @@ -69,8 +91,23 @@ def _invoice_paid_hook(self): continue # Set the state in "pending" to launch the top up process request.write({"state": "pending"}) + for invoice in self.filtered(lambda move: move.is_invoice() and move.is_purchase_document() and move.has_numeric_lcc_products): + for request in invoice.debit_request_ids: + # Set the state in "paid" and update the global request status + request.write({"debit_move_state": "paid"}) + request.compute_state() return res + def _post(self, soft=True): + # OVERRIDE + posted = super()._post(soft) + for invoice in posted.filtered(lambda move: move.is_invoice() and move.is_purchase_document() and move.has_numeric_lcc_products): + for request in invoice.debit_request_ids: + # Set the state in "posted" and update the global request status + request.write({"debit_move_state": "posted"}) + request.compute_state() + return posted + class AccountInvoiceLine(models.Model): _inherit = "account.move.line" diff --git a/lcc_lokavaluto_app_connection/models/debit_request.py b/lcc_lokavaluto_app_connection/models/debit_request.py new file mode 100644 index 00000000..02d9808a --- /dev/null +++ b/lcc_lokavaluto_app_connection/models/debit_request.py @@ -0,0 +1,130 @@ +from odoo import models, fields, api +from odoo.exceptions import UserError + + +class DebitRequest(models.Model): + """Debit request to follow the reconversion process for wallet users""" + + _sql_constraints = [ + ('transaction_id_uniq', 'unique(transaction_id)', 'Transaction ID must be unique, a request already exists with this transaction ID!'), + ] + + _name = "debit.request" + + active = fields.Boolean(default=True, tracking=True) + amount = fields.Float("Amount", required=True) + wallet_id = fields.Many2one("res.partner.backend", string="Wallet", required=True) + partner_id = fields.Many2one( + "res.partner", related="wallet_id.partner_id", readonly=True + ) + state = fields.Selection( + [ + ("draft", "Draft"), # request created, some fields values still missing + ("received", "Received"), # all transaction data received, draft invoiced created + ("invoiced", "Invoiced"), # invoiced validated/sent + ("paid", "Paid"), # all invoices have been paid + ("cancelled", "Cancelled"), # debit request cancelled + ], + required=True, + string="State", + default='draft', + ) + transaction_id = fields.Char('Transaction ID') + transaction_timestamp = fields.Datetime('Transaction Timestamp') + debit_move_id = fields.Many2one("account.move", string="Debit Invoice") + debit_move_state = fields.Selection( + [ + ('draft', 'Draft'), + ('posted', 'Posted'), + ('paid', 'Paid'), + ('cancelled', 'Cancelled'), + ], + string='Debit Invoice State', + default="draft", + ) + + @api.model + def create(self, vals): + res = super(DebitRequest, self).create(vals) + for request in res: + if request.is_ready_to_invoice(): + request.create_invoices() + return res + + def unlink(self): + for request in self: + if request.state == "invoiced" or ( + request.debit_move_id and request.debit_move_id.state != "draft" + ): + raise UserError( + "You can't delete a debit request linked with a posted or paid invoice." + ) + elif request.state == "cancelled": + raise UserError( + "You can't delete a cancelled debit request. Please archive it instead." + ) + elif request.state == "paid": + raise UserError( + "You can't delete a paid debit request. Please archive it instead." + ) + + if request.debit_move_id and request.debit_move_id.state == "draft": + request.debit_move_id.unlink() + return super(DebitRequest, self).unlink() + + def compute_state(self): + for request in self: + if not request.debit_move_id: + continue + if request.debit_move_state == "draft": + request.state = "received" + if request.debit_move_state == "posted": + request.state = "invoiced" + if request.debit_move_state == "paid": + request.state = "paid" + if request.debit_move_id.state == "cancelled": + request.state = "cancelled" + + def is_ready_to_invoice(self, raise_error=False): + self.ensure_one() + if self.amount <= 0 and raise_error: + raise UserError("Amount must be superior to zero.") + if not self.wallet_id and raise_error: + raise UserError("The wallet is missing.") + if not self.transaction_id and raise_error: + raise UserError("The transaction ID is missing.") + return (self.amount > 0) and self.wallet_id and self.transaction_id + + ############################# + ## INVOICE CREATION PROCESSES + ############################# + + def create_invoices(self): + self.create_debit_invoices() + + def create_debit_invoices(self): + for request in self: + self.is_ready_to_invoice(raise_error=True) + # get invoices data + debit_invoice_data = request._get_debit_invoice_data() + # create invoices + invoice = self.env['account.move'].create(debit_invoice_data) + request.debit_move_id = invoice.id + + def _get_debit_invoice_data(self): + self.ensure_one() + return { + 'move_type': "in_invoice", + 'partner_id': self.partner_id.id, + 'invoice_line_ids': [(0, 0, self._get_debit_invoice_line_values())] + } + + def _get_debit_invoice_line_values(self): + self.ensure_one() + product_id = self.wallet_id.get_lcc_product() + invoice_line_values = { + 'product_id': product_id.id, + 'quantity': self.amount, + 'price_unit': product_id.standard_price, + } + return invoice_line_values \ No newline at end of file diff --git a/lcc_lokavaluto_app_connection/security/ir.model.access.csv b/lcc_lokavaluto_app_connection/security/ir.model.access.csv index 46af3670..58a650d9 100644 --- a/lcc_lokavaluto_app_connection/security/ir.model.access.csv +++ b/lcc_lokavaluto_app_connection/security/ir.model.access.csv @@ -3,4 +3,6 @@ access_lcc_partner_numeric,lcc_lokavaluto_app_connection.lcc_partner_numeric,bas access_lcc_partner_backend.user,lcc_lokavaluto_app_connection.lcc_partner_backend.user,lcc_lokavaluto_app_connection.model_res_partner_backend,,1,0,0,0 access_lcc_partner_backend.account.manager,lcc_lokavaluto_app_connection.lcc_partner_backend.account_manager,lcc_lokavaluto_app_connection.model_res_partner_backend,lcc_lokavaluto_app_connection.group_wallet_accounts_manager,1,1,1,1 access_credit_request.user,lcc_lokavaluto_app_connection.credit_request.user,lcc_lokavaluto_app_connection.model_credit_request,,1,0,0,0 -access_credit_request.full_manager,lcc_lokavaluto_app_connection.credit_request.full_manager,lcc_lokavaluto_app_connection.model_credit_request,lcc_lokavaluto_app_connection.group_wallet_full_manager,1,1,1,1 \ No newline at end of file +access_credit_request.full_manager,lcc_lokavaluto_app_connection.credit_request.full_manager,lcc_lokavaluto_app_connection.model_credit_request,lcc_lokavaluto_app_connection.group_wallet_full_manager,1,1,1,1 +access_debit_request.user,lcc_lokavaluto_app_connection.debit_request.user,lcc_lokavaluto_app_connection.model_debit_request,,1,0,0,0 +access_debit_request.full_manager,lcc_lokavaluto_app_connection.debit_request.full_manager,lcc_lokavaluto_app_connection.model_debit_request,lcc_lokavaluto_app_connection.group_wallet_full_manager,1,1,1,1 \ No newline at end of file diff --git a/lcc_lokavaluto_app_connection/views/account_invoice.xml b/lcc_lokavaluto_app_connection/views/account_invoice.xml index bf25069d..6e2a00f5 100644 --- a/lcc_lokavaluto_app_connection/views/account_invoice.xml +++ b/lcc_lokavaluto_app_connection/views/account_invoice.xml @@ -6,9 +6,9 @@ - + + attrs="{'invisible': [('digital_currency_invoice_type', '!=', 'credit')]}"> +
+
+
+ Commission Product +
+ +
+
+
From e36ee76872629f9f397dec27a3107d3a814415f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phan=20Sainl=C3=A9ger?= Date: Fri, 21 Jun 2024 10:07:12 +0200 Subject: [PATCH 03/24] [FIX] lcc_lokavaluto_app_connection: fix request states calculation - refactoring of the _invoice_paid_hook() function (account.move) - change _post() into action_post() as function to override for the - debit request state computation - call to debit.request compute_state() function when invoices are created - fix of the company parameter retriveval on credit.request write() function --- .../models/account_invoice.py | 35 ++++++++++++------- .../models/credit_request.py | 2 +- .../models/debit_request.py | 1 + 3 files changed, 24 insertions(+), 14 deletions(-) diff --git a/lcc_lokavaluto_app_connection/models/account_invoice.py b/lcc_lokavaluto_app_connection/models/account_invoice.py index c0d848a3..7584c77a 100644 --- a/lcc_lokavaluto_app_connection/models/account_invoice.py +++ b/lcc_lokavaluto_app_connection/models/account_invoice.py @@ -84,33 +84,42 @@ def _compute_digital_currency_invoice_type(self): def _invoice_paid_hook(self): res = super(AccountInvoice, self)._invoice_paid_hook() - for invoice in self.filtered(lambda move: move.is_invoice() and move.is_sale_document() and move.has_numeric_lcc_products): + for invoice in self: + if not invoice.is_invoice(): + continue + for request in invoice.credit_request_ids: # Only the opened request are concerned if request.state != "open": continue # Set the state in "pending" to launch the top up process request.write({"state": "pending"}) + for request in invoice.debit_request_ids: # Set the state in "paid" and update the global request status - request.write({"commission_move_state": "paid"}) - request.compute_state() - for invoice in self.filtered(lambda move: move.is_invoice() and move.is_purchase_document() and move.has_numeric_lcc_products): - for request in invoice.debit_request_ids: - # Set the state in "paid" and update the global request status - request.write({"debit_move_state": "paid"}) + if invoice.is_sale_document(): + state_value = {"commission_move_state": "paid"} + if invoice.is_purchase_document(): + state_value = {"debit_move_state": "paid"} + request.write(state_value) request.compute_state() return res - def _post(self, soft=True): + def action_post(self): # OVERRIDE - posted = super()._post(soft) - for invoice in posted.filtered(lambda move: move.is_invoice() and move.is_purchase_document() and move.has_numeric_lcc_products): + res = super(AccountInvoice, self).action_post() + for invoice in self: + if not invoice.is_invoice(): + continue + for request in invoice.debit_request_ids: - # Set the state in "posted" and update the global request status - request.write({"debit_move_state": "posted"}) + if invoice.is_sale_document(): + state_value = {"commission_move_state": "posted"} + if invoice.is_purchase_document(): + state_value = {"debit_move_state": "posted"} + request.write(state_value) request.compute_state() - return posted + return res class AccountInvoiceLine(models.Model): diff --git a/lcc_lokavaluto_app_connection/models/credit_request.py b/lcc_lokavaluto_app_connection/models/credit_request.py index 3a6e6fc5..b2daca49 100644 --- a/lcc_lokavaluto_app_connection/models/credit_request.py +++ b/lcc_lokavaluto_app_connection/models/credit_request.py @@ -58,7 +58,7 @@ def write(self, vals): for request in self: if request.state == "pending": # The top up has been paid, the credit process can start - if request.partner_id.company_id.activate_automatic_topup: + if self.env.user.company_id.activate_automatic_topup: request.credit_wallet() return res diff --git a/lcc_lokavaluto_app_connection/models/debit_request.py b/lcc_lokavaluto_app_connection/models/debit_request.py index a7e9a25f..e1459263 100644 --- a/lcc_lokavaluto_app_connection/models/debit_request.py +++ b/lcc_lokavaluto_app_connection/models/debit_request.py @@ -142,6 +142,7 @@ def is_ready_to_invoice(self, raise_error=False): def create_invoices(self): self.create_debit_invoices() self.create_commission_invoices() + self.compute_state() def create_debit_invoices(self): for request in self: From fa616ed2fcdc049f9b4fb86d97bc49a8b2187c79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phan=20Sainl=C3=A9ger?= Date: Fri, 21 Jun 2024 10:10:17 +0200 Subject: [PATCH 04/24] [IMP] lcc_lokavaluto_app_connection: add reconversion checking cron This cron will launch a checking process to know if some reconversion transactions has bee received by the safe wallets of the digital currencies backend. Some functions are empty and must be overiden in currency backend dedicated add-ons. --- lcc_lokavaluto_app_connection/__manifest__.py | 1 + .../data/res_company_data.xml | 14 +++++ .../models/company.py | 56 +++++++++++++++++++ 3 files changed, 71 insertions(+) create mode 100644 lcc_lokavaluto_app_connection/data/res_company_data.xml diff --git a/lcc_lokavaluto_app_connection/__manifest__.py b/lcc_lokavaluto_app_connection/__manifest__.py index f200c1e8..6ccceac7 100644 --- a/lcc_lokavaluto_app_connection/__manifest__.py +++ b/lcc_lokavaluto_app_connection/__manifest__.py @@ -36,6 +36,7 @@ "views/portal_my_home.xml", "views/res_config_settings_view.xml", "data/numeric_data.xml", + "data/res_company_data.xml", ], # only loaded in demonstration mode "demo": [], diff --git a/lcc_lokavaluto_app_connection/data/res_company_data.xml b/lcc_lokavaluto_app_connection/data/res_company_data.xml new file mode 100644 index 00000000..41da6b48 --- /dev/null +++ b/lcc_lokavaluto_app_connection/data/res_company_data.xml @@ -0,0 +1,14 @@ + + + + Company: import new digital currency debit requests + + code + model._cron_import_new_digital_currency_debit_requests() + 15 + minutes + -1 + 0 + + + \ No newline at end of file diff --git a/lcc_lokavaluto_app_connection/models/company.py b/lcc_lokavaluto_app_connection/models/company.py index b4ec8d82..b07aee18 100644 --- a/lcc_lokavaluto_app_connection/models/company.py +++ b/lcc_lokavaluto_app_connection/models/company.py @@ -1,5 +1,7 @@ from odoo import models, fields, api +import logging +_logger = logging.getLogger(__name__) class Company(models.Model): _inherit = "res.company" @@ -9,3 +11,57 @@ class Company(models.Model): monujo_ios_app_url = fields.Char(string="Monujo iOS app URL") activate_automatic_topup = fields.Boolean("Activate Automatic Topup") commission_product_id = fields.Many2one("product.product", string="Commission Product") + + + def _cron_import_new_digital_currency_debit_requests(self): + """Create the debit requests in Odoo for all the debit + transactions performed since the last check.""" + + # Extract last transactions received in the Safe Wallet + transactions = self._retrieve_last_debit_transactions() + + # For each transaction received: + # - retrieve the transaction id + # - check if any debit request exists with this transaction id + # - if yes, do nothing + # - if no, create a new debit request + for transaction in transactions: + tx_id = transaction.get("tx_id", "") + debit_requests = self.env["debit.request"].search([("transaction_id", "=", tx_id)]) + if len(debit_requests) > 0: + _logger.info("Debit request already exists for transaction %s" % transaction.get("tx_id")) + continue + values = self._build_debit_request_values(transaction) + if not values: + continue + request = self.env["debit.request"].create(values) + _logger.info("Debit request created for wallet %s on transaction %s" % (request.wallet_id,transaction.get("tx_id"))) + + + def _retrieve_last_debit_transactions(self): + """TO OVERIDE in digital currency backend dedicated add-ons + A list of transactions (dictionnary) is expected, with the following data: + - sender: the Odoo name of the wallet concerned by the debit request, + - amount: the amount debited from the wallet, + - tx_id: the transaction ID in the digital currency backend + - tx_timestamp: the timestamp of the transaction + """ + return [] + + + def _build_debit_request_values(self, transaction): + wallet_ids = self.env["res.partner.backend"].search([("name", "=", transaction.get("sender"))]) + if len(wallet_ids) == 0: + _logger.error("No wallet found for debit transaction %s, debit request creation CANCELLED" % transaction.get("tx_id")) + return {} + elif len(wallet_ids) > 1: + _logger.error("Too many wallets found for debit transaction %s, debit request creation CANCELLED" % transaction.get("tx_id")) + return {} + values = { + "active" : True, + "wallet_id" : wallet_ids[0].id, + "amount" : transaction.get("amount"), + "transaction_id" : transaction.get("tx_id"), + "transaction_timestamp": transaction.get("tx_timestamp"), + } + return values \ No newline at end of file From 3904309044545b840a6e01a8e0fc6e6a7613836f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phan=20Sainl=C3=A9ger?= Date: Fri, 21 Jun 2024 10:13:10 +0200 Subject: [PATCH 05/24] [IMP] lcc_comchain_base: add reconversion checking process --- lcc_comchain_base/models/company.py | 58 +++++++++++++++++++ .../models/res_config_settings.py | 2 + .../views/res_config_settings_view.xml | 8 ++- 3 files changed, 67 insertions(+), 1 deletion(-) diff --git a/lcc_comchain_base/models/company.py b/lcc_comchain_base/models/company.py index 62694cd2..6c81a3d9 100644 --- a/lcc_comchain_base/models/company.py +++ b/lcc_comchain_base/models/company.py @@ -1,4 +1,11 @@ +import logging +from datetime import datetime from odoo import models, fields, api +from odoo.addons.lcc_lokavaluto_app_connection import tools +from pyc3l import Pyc3l + +pyc3l = Pyc3l() +_logger = logging.getLogger(__name__) class Company(models.Model): @@ -19,3 +26,54 @@ def _default_messages(self): comchain_odoo_wallet_password = fields.Char(string="Odoo wallet password") message_from = fields.Char("Message from", default=_default_messages) message_to = fields.Char("Message to", default=_default_messages) + + last_block_checked_nb = fields.Integer('Last Block Checked Nb') + + def _retrieve_last_debit_transactions(self): + """A list of transactions (dictionnary) is expected, with the following data: + - sender: the Odoo name of the wallet concerned by the debit request, + - amount: the amount debited from the wallet, + - tx_id: the transaction ID in the digital currency backend + - tx_timestamp: the timestamp of the transaction + """ + res = super(Company, self)._retrieve_last_debit_transactions() + + # Retrieve all the debit transactions from the newly created blocks + company_id = self.env.user.company_id + try: + # Get the ID of the last blockchain block built + last_block_id = pyc3l.getBlockNumber() + # Loop on all the blocks created since the last check + _logger.info("Start reconversion check on Comchain from block %s to block %s" % (company_id.last_block_checked_nb, last_block_id) ) + for block_nb in range(company_id.last_block_checked_nb + 1, last_block_id + 1): + _logger.info("Get Debit Transactions - read block %s" % block_nb) + # Get the block transactions + block_txs = pyc3l.BlockByNumber(block_nb).bc_txs + for tx in block_txs: + if not tx.currency: + continue # this transaction is not linked with a currency + if not tx.currency.name.lower() == company_id.comchain_currency_name.lower(): + continue # this transaction is about another smart contract + full_tx = tx.full_tx + if not full_tx.is_cc_transaction: + continue # this transaction is not a digital currency transfer + if not full_tx.direction == 1: + continue # this transaction is not a reconversion + _logger.info("Transactions %s retrieved" % tx.hash) + sender_adress = full_tx.add2.lstrip("0x") + matched_wallet = self.env["res.partner.backend"].search([("comchain_id", "ilike", sender_adress)]) + if len(matched_wallet) == 0: + continue # this transactions comes from a wallet no registered in current Odoo database + string_amount = str(full_tx.sent) + res.append({ + "sender": "comchain:%s" % sender_adress, + "amount": f"{string_amount[0:-2]}.{string_amount[-2:]}", + "tx_id": tx.hash, + "tx_timestamp": datetime.fromtimestamp(int(full_tx.receivedat["value"])), + }) + + company_id.last_block_checked_nb = last_block_id + except Exception as e: + _logger.error(tools.format_last_exception()) + + return res \ No newline at end of file diff --git a/lcc_comchain_base/models/res_config_settings.py b/lcc_comchain_base/models/res_config_settings.py index 7b28656e..a2eaba19 100644 --- a/lcc_comchain_base/models/res_config_settings.py +++ b/lcc_comchain_base/models/res_config_settings.py @@ -33,3 +33,5 @@ class ResConfigSettings(models.TransientModel): message_to = fields.Char( related="company_id.message_to", readonly=False, string="Message to" ) + + last_block_checked_nb = fields.Integer(related="company_id.last_block_checked_nb", readonly=False, string='Last Block Checked Nb') diff --git a/lcc_comchain_base/views/res_config_settings_view.xml b/lcc_comchain_base/views/res_config_settings_view.xml index 5caf6e4d..28248cba 100644 --- a/lcc_comchain_base/views/res_config_settings_view.xml +++ b/lcc_comchain_base/views/res_config_settings_view.xml @@ -10,7 +10,7 @@

Comchain service configuration

-
+
Comchain currency name @@ -18,6 +18,12 @@
+
+ Comchain Last block checked +
+ +
+
Date: Fri, 21 Jun 2024 14:17:21 +0200 Subject: [PATCH 06/24] [IMP] lcc_cyclos_base: add reconversion checking process --- lcc_cyclos_base/models/company.py | 107 +++++++++++++++++- lcc_cyclos_base/models/res_config_settings.py | 6 + lcc_cyclos_base/models/res_partner.py | 4 +- lcc_cyclos_base/models/res_partner_backend.py | 82 +++----------- lcc_cyclos_base/views/lcc_backend.xml | 27 +++-- .../views/res_config_settings_view.xml | 9 ++ 6 files changed, 159 insertions(+), 76 deletions(-) diff --git a/lcc_cyclos_base/models/company.py b/lcc_cyclos_base/models/company.py index 16a90dcd..d8045589 100644 --- a/lcc_cyclos_base/models/company.py +++ b/lcc_cyclos_base/models/company.py @@ -1,8 +1,16 @@ +import json import re -from urllib.parse import urlparse +import requests +from datetime import datetime, timedelta +from requests.auth import HTTPBasicAuth +from urllib.parse import urlparse, quote from werkzeug.exceptions import NotFound from odoo import models, fields +from odoo.addons.lcc_lokavaluto_app_connection import tools +import logging + +_logger = logging.getLogger(__name__) class Company(models.Model): _inherit = "res.company" @@ -14,6 +22,8 @@ class Company(models.Model): cyclos_server_password = fields.Char(string="Password for cyclos server") + cyclos_date_last_reconversion_check = fields.Datetime('Last reconversion date on Cyclos') + def get_cyclos_server_domain(self): self.ensure_one() url = self.cyclos_server_url @@ -31,3 +41,98 @@ def get_cyclos_server_domain(self): % (parsed_uri.netloc, url) ) return parsed_uri.netloc + + + def cyclos_rest_call( + self, method, entrypoint, data={}, api_login=False, api_password=False + ): + self.ensure_one() + headers = {"Content-type": "application/json", "Accept": "text/plain"} + requests.packages.urllib3.disable_warnings() + if not api_login: + api_login = self.cyclos_server_login + if not api_password: + api_password = self.cyclos_server_password + api_url = "%s%s" % (self.cyclos_server_url, entrypoint) + res = requests.request( + method.lower(), + api_url, + auth=HTTPBasicAuth(api_login, api_password), + verify=False, + data=json.dumps(data), + headers=headers, + ) + try: + res.raise_for_status() + except requests.exceptions.HTTPError as e: + if e.response.status_code == 404: + raise Exception("404 when trying to reach cyclos on %s" % api_url) + try: + json_output = e.response.json() + _logger.debug(e.response.json()) + except ValueError as e: + _logger.debug(e.response.text) + raise Exception("Non-json output from cyclos on %s" % api_url) + + if e.response.status_code == 422: + msg = self.build_cyclos_error_message(e) + if msg != "": + raise ValueError( + "Cyclos serveur complained about:\n%s" % "\n".join(msg), + e.response, + ) + raise + return res + + def build_cyclos_error_message(self, e): + json_error = e.response.json() + msg = "" + if json_error.get("code") == "validation": + if json_error.get("propertyErrors"): + error = json_error.get("propertyErrors") + elif json_error.get("generalErrors"): + error = json_error.get("generalErrors") + msg = [" - %s: %s" % (k, ", ".join(v)) for k, v in error.items()] + return msg + + # def format_datetime_to_milliseconds(date_str): + # dt = datetime.fromisoformat(date_str) + # return dt.strftime("%Y-%m-%dT%H:%M:%S.%f")[:-3] + + def _retrieve_last_debit_transactions(self): + """A list of transactions (dictionnary) is expected, with the following data: + - sender: the Odoo name of the wallet concerned by the debit request, + - amount: the amount debited from the wallet, + - tx_id: the transaction ID in the digital currency backend + - tx_timestamp: the timestamp of the transaction + """ + res = super(Company, self)._retrieve_last_debit_transactions() + + # Retrieve all the debit transactions since the last check minus 1 min + company_id = self.env.user.company_id + # we need a date on ISO8601 format "1970-01-01T00:00:00.000", then encoded to be in an URL + if not company_id.cyclos_date_last_reconversion_check: + date = "1970-01-01T00:00:00.000" + else: + date=(company_id.cyclos_date_last_reconversion_check - timedelta(minutes=1)).strftime("%Y-%m-%dT%H:%M:%S.%f")[:-3] + encoded_date = quote(date, safe='') + + # Set all the search criteria in the REST request entrypoint + entrypoint = "/transfers?datePeriod=%s&orderBy=dateDesc&toAccountTypes=debit" % encoded_date + + # Get the transactions from Cyclos + response = company_id.cyclos_rest_call("GET", entrypoint) + transactions = json.loads(response.text) + for tx in transactions: + try: + res.append({ + "sender": "cyclos:%s" % tx["from"]["user"]["id"], + "amount": tx["amount"], + "tx_id": tx["id"], + "tx_timestamp": datetime.fromisoformat(tx["date"]).replace(tzinfo=None), + }) + except Exception as e: + _logger.error(tools.format_last_exception()) + if transactions: + company_id.cyclos_date_last_reconversion_check = datetime.fromisoformat(transactions[0]["date"]).replace(tzinfo=None) + return res \ No newline at end of file diff --git a/lcc_cyclos_base/models/res_config_settings.py b/lcc_cyclos_base/models/res_config_settings.py index a79db842..1b5acf6b 100644 --- a/lcc_cyclos_base/models/res_config_settings.py +++ b/lcc_cyclos_base/models/res_config_settings.py @@ -21,3 +21,9 @@ class ResConfigSettings(models.TransientModel): readonly=False, string="Password for cyclos server", ) + + cyclos_date_last_reconversion_check = fields.Datetime( + related="company_id.cyclos_date_last_reconversion_check", + readonly=False, + string='Last reconversion date on Cyclos' + ) diff --git a/lcc_cyclos_base/models/res_partner.py b/lcc_cyclos_base/models/res_partner.py index 5ae55641..738d1050 100644 --- a/lcc_cyclos_base/models/res_partner.py +++ b/lcc_cyclos_base/models/res_partner.py @@ -69,10 +69,10 @@ def cyclos_add_user(self): ], } try: - res = backend_obj._cyclos_rest_call("POST", "/users", data=data) + res = self.env.user.company_id.cyclos_rest_call("POST", "/users", data=data) except requests.exceptions.HTTPError as e: if e.response.status_code == 422: - msg = backend_obj._build_cyclos_error_message(e) + msg = self.env.user.company_id.build_cyclos_error_message(e) if msg != "": raise ValueError( "Cyclos serveur complained about:\n%s" % "\n".join(msg), diff --git a/lcc_cyclos_base/models/res_partner_backend.py b/lcc_cyclos_base/models/res_partner_backend.py index a3318be9..084f4cd2 100644 --- a/lcc_cyclos_base/models/res_partner_backend.py +++ b/lcc_cyclos_base/models/res_partner_backend.py @@ -1,7 +1,5 @@ import requests import json -from urllib.parse import urlparse -from requests.auth import HTTPBasicAuth from odoo import models, fields, api from odoo.addons.lcc_lokavaluto_app_connection import tools import logging @@ -66,61 +64,11 @@ def _compute_status(self): else: rec.status = "" - def _build_cyclos_error_message(self, e): - json_error = e.response.json() - msg = "" - if json_error.get("code") == "validation": - if json_error.get("propertyErrors"): - error = json_error.get("propertyErrors") - elif json_error.get("generalErrors"): - error = json_error.get("generalErrors") - msg = [" - %s: %s" % (k, ", ".join(v)) for k, v in error.items()] - return msg - - def _cyclos_rest_call( - self, method, entrypoint, data={}, api_login=False, api_password=False - ): - headers = {"Content-type": "application/json", "Accept": "text/plain"} - requests.packages.urllib3.disable_warnings() - if not api_login: - api_login = self.env.user.company_id.cyclos_server_login - if not api_password: - api_password = self.env.user.company_id.cyclos_server_password - api_url = "%s%s" % (self.env.user.company_id.cyclos_server_url, entrypoint) - res = requests.request( - method.lower(), - api_url, - auth=HTTPBasicAuth(api_login, api_password), - verify=False, - data=json.dumps(data), - headers=headers, - ) - try: - res.raise_for_status() - except requests.exceptions.HTTPError as e: - if e.response.status_code == 404: - raise Exception("404 when trying to reach cyclos on %s" % api_url) - try: - json_output = e.response.json() - _logger.debug(e.response.json()) - except ValueError as e: - raise Exception("Non-json output from cyclos on %s" % api_url) - _logger.debug(e.response.text) - - if e.response.status_code == 422: - msg = self._build_cyclos_error_message(e) - if msg != "": - raise ValueError( - "Cyclos serveur complained about:\n%s" % "\n".join(msg), - e.response, - ) - raise - return res - def cyclos_validate_user(self): + company_id = self.env.user.company_id for record in self: if record.cyclos_status == "pending": - res = record._cyclos_rest_call( + res = company_id.cyclos_rest_call( "POST", "/%s/registration/validate" % record.cyclos_id ) _logger.debug("res: %s" % res.text) @@ -134,13 +82,14 @@ def cyclos_validate_user(self): ) def cyclos_activate_user(self): + company_id = self.env.user.company_id for record in self: if record.cyclos_status != "active": data = {"status": "active", "comment": "Activated by Odoo"} - record._cyclos_rest_call( + company_id.cyclos_rest_call( "POST", "/%s/status" % record.cyclos_id, data=data ) - res = record._cyclos_rest_call("GET", "/%s/status" % record.cyclos_id) + res = company_id.cyclos_rest_call("GET", "/%s/status" % record.cyclos_id) _logger.debug("res: %s" % res) data_res = json.loads(res.text) record.write( @@ -150,13 +99,14 @@ def cyclos_activate_user(self): ) def cyclos_block_user(self): + company_id = self.env.user.company_id for record in self: if record.cyclos_status != "blocked": data = {"status": "blocked", "comment": "Blocked by Odoo"} - record._cyclos_rest_call( + company_id.cyclos_rest_call( "POST", "/%s/status" % record.cyclos_id, data=data ) - res = record._cyclos_rest_call("GET", "/%s/status" % record.cyclos_id) + res = company_id.cyclos_rest_call("GET", "/%s/status" % record.cyclos_id) _logger.debug("res: %s" % res) data_res = json.loads(res.text) record.write( @@ -166,13 +116,14 @@ def cyclos_block_user(self): ) def cyclos_disable_user(self): + company_id = self.env.user.company_id for record in self: if record.cyclos_status != "disabled": data = {"status": "disabled", "comment": "Disabled by Odoo"} - record._cyclos_rest_call( + company_id.cyclos_rest_call( "POST", "/%s/status" % record.cyclos_id, data=data ) - res = record._cyclos_rest_call("GET", "/%s/status" % record.cyclos_id) + res = company_id.cyclos_rest_call("GET", "/%s/status" % record.cyclos_id) _logger.debug("res: %s" % res) data_res = json.loads(res.text) record.write( @@ -182,6 +133,7 @@ def cyclos_disable_user(self): ) def force_cyclos_password(self, password): + company_id = self.env.user.company_id for record in self: # TODO: need to stock password type id from cyclos API and replace -4307382460900696903 data = { @@ -191,7 +143,7 @@ def force_cyclos_password(self, password): "forceChange": False, } try: - record._cyclos_rest_call( + company_id.cyclos_rest_call( "POST", "/%s/passwords/%s/change" % (record.cyclos_id, "-4307382460900696903"), @@ -209,8 +161,9 @@ def force_cyclos_password(self, password): def cyclos_create_user_token(self, api_login, api_password): self.ensure_one() + company_id = self.env.user.company_id for record in self: - res = record._cyclos_rest_call( + res = company_id.cyclos_rest_call( "POST", "/auth/session", data={"timeoutInSeconds": 90000}, @@ -222,8 +175,9 @@ def cyclos_create_user_token(self, api_login, api_password): return data.get("sessionToken", False) def cyclos_remove_user_token(self, api_login, api_password): + company_id = self.env.user.company_id for record in self: - res = record._cyclos_rest_call( + res = company_id.cyclos_rest_call( "DELETE", "/auth/session", api_login=api_login, @@ -245,7 +199,7 @@ def credit_wallet(self, amount=0): "type": "debit.toPro" if self.partner_id.is_company else "debit.toUser", } _logger.debug("data: %s" % data) - response = self._cyclos_rest_call("POST", "/system/payments", data=data) + response = self.env.user.company_id.cyclos_rest_call("POST", "/system/payments", data=data) _logger.debug("response: %s" % response) # TODO: need to check response res = {"success": True, "response": response} diff --git a/lcc_cyclos_base/views/lcc_backend.xml b/lcc_cyclos_base/views/lcc_backend.xml index bba0fe61..11a531e4 100644 --- a/lcc_cyclos_base/views/lcc_backend.xml +++ b/lcc_cyclos_base/views/lcc_backend.xml @@ -8,20 +8,29 @@ 0 - - - - + + + +
-
- + \ No newline at end of file diff --git a/lcc_cyclos_base/views/res_config_settings_view.xml b/lcc_cyclos_base/views/res_config_settings_view.xml index d16ee9a1..4f111ac4 100644 --- a/lcc_cyclos_base/views/res_config_settings_view.xml +++ b/lcc_cyclos_base/views/res_config_settings_view.xml @@ -37,6 +37,15 @@
+
+
+
+ Date of last reconversion check +
+ +
+
+
From a3b62825024996d9a34f063b0c6110d18ee2213c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phan=20Sainl=C3=A9ger?= Date: Mon, 24 Jun 2024 17:40:19 +0200 Subject: [PATCH 07/24] [IMP] lcc_cyclos_base: add Cyclos debit wallet config --- lcc_cyclos_base/data/cyclos_data.xml | 26 +++++++++++----- lcc_cyclos_base/models/company.py | 4 +++ lcc_cyclos_base/models/res_config_settings.py | 7 +++++ lcc_cyclos_base/models/res_partner_backend.py | 30 +++++++++++++++++-- .../views/res_config_settings_view.xml | 9 ++++++ 5 files changed, 67 insertions(+), 9 deletions(-) diff --git a/lcc_cyclos_base/data/cyclos_data.xml b/lcc_cyclos_base/data/cyclos_data.xml index 9bbeca41..24b14b8c 100644 --- a/lcc_cyclos_base/data/cyclos_data.xml +++ b/lcc_cyclos_base/data/cyclos_data.xml @@ -2,19 +2,31 @@ - + Cyclos 1.0 1.0 - - + + Numeric LCC (Cyclos) - - + + consu - - + + + Cyclos Debit Wallet + + + cyclos:system + cyclos + + active + system + + + + \ No newline at end of file diff --git a/lcc_cyclos_base/models/company.py b/lcc_cyclos_base/models/company.py index d8045589..9c76e043 100644 --- a/lcc_cyclos_base/models/company.py +++ b/lcc_cyclos_base/models/company.py @@ -22,6 +22,10 @@ class Company(models.Model): cyclos_server_password = fields.Char(string="Password for cyclos server") + cyclos_debit_wallet_partner = fields.Many2one( + "res.partner", string="Cyclos Debit Wallet Partner" + ) + cyclos_date_last_reconversion_check = fields.Datetime('Last reconversion date on Cyclos') def get_cyclos_server_domain(self): diff --git a/lcc_cyclos_base/models/res_config_settings.py b/lcc_cyclos_base/models/res_config_settings.py index 1b5acf6b..f5c7f64b 100644 --- a/lcc_cyclos_base/models/res_config_settings.py +++ b/lcc_cyclos_base/models/res_config_settings.py @@ -22,6 +22,13 @@ class ResConfigSettings(models.TransientModel): string="Password for cyclos server", ) + cyclos_debit_wallet_partner = fields.Many2one( + "res.partner", + related="company_id.cyclos_debit_wallet_partner", + readonly=False, + string="Cyclos Debit Wallet Partner" + ) + cyclos_date_last_reconversion_check = fields.Datetime( related="company_id.cyclos_date_last_reconversion_check", readonly=False, diff --git a/lcc_cyclos_base/models/res_partner_backend.py b/lcc_cyclos_base/models/res_partner_backend.py index 084f4cd2..2017b86a 100644 --- a/lcc_cyclos_base/models/res_partner_backend.py +++ b/lcc_cyclos_base/models/res_partner_backend.py @@ -30,10 +30,10 @@ def _update_search_data(self, backend_keys): @property def cyclos_backend_json_data(self): """Return normalized backend account's data""" - cyclos_server_url = self.env.user.company_id.get_cyclos_server_domain() + backend_key = "%s:%s" % ("cyclos", self.env.user.company_id.get_cyclos_server_domain()) cyclos_product = self.env.ref("lcc_cyclos_base.product_product_cyclos").sudo() data = { - "type": "%s:%s" % ("cyclos", cyclos_server_url), + "type": backend_key, "accounts": [], "min_credit_amount": getattr(cyclos_product, "sale_min_qty", 0), "max_credit_amount": getattr(cyclos_product, "sale_max_qty", 0), @@ -46,6 +46,32 @@ def cyclos_backend_json_data(self): "active": self.status == "active", } ) + + company = self.partner_id.company_id + safe_wallet_partner = company.cyclos_debit_wallet_partner + + if safe_wallet_partner: + + safe_wallet_profile_info = safe_wallet_partner.lcc_profile_info() + if safe_wallet_profile_info: + if len(safe_wallet_profile_info) > 1: + raise ValueError("Safe partner has more than one public profile") + + ## Safe wallet is configured and has a public profile + data["safe_wallet_recipient"] = safe_wallet_profile_info[0] + + monujo_backends = safe_wallet_partner.lcc_backend_ids._update_search_data( + [backend_key] + ) + if len(monujo_backends) > 1: + raise ValueError("Safe partner has more than one wallet") + data["safe_wallet_recipient"]["monujo_backends"] = monujo_backends + + else: + _logger.error( + "Safe wallet %s has no public profile", + safe_wallet_partner.name, + ) return [data] @api.depends("name", "type", "cyclos_status") diff --git a/lcc_cyclos_base/views/res_config_settings_view.xml b/lcc_cyclos_base/views/res_config_settings_view.xml index 4f111ac4..bb7c6171 100644 --- a/lcc_cyclos_base/views/res_config_settings_view.xml +++ b/lcc_cyclos_base/views/res_config_settings_view.xml @@ -37,6 +37,15 @@ +
+
+
+ Cyclos Debit Wallet Partner +
+ +
+
+
From 6c356945503649c7d814ba1e286afe109620c28c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phan=20Sainl=C3=A9ger?= Date: Tue, 25 Jun 2024 16:57:46 +0200 Subject: [PATCH 08/24] [IMP] lcc_lokavaluto_app_connection: add reconversion rule to indicate if reconversions are allowed for a wallet. --- lcc_lokavaluto_app_connection/__manifest__.py | 1 + .../models/__init__.py | 1 + .../models/debit_request.py | 2 + .../models/reconversion_rule.py | 12 ++++ .../models/res_partner_backend.py | 18 +++++- .../security/ir.model.access.csv | 4 +- .../views/debit_request.xml | 5 ++ .../views/lcc_backend.xml | 14 +++++ lcc_lokavaluto_app_connection/views/menu.xml | 19 ++++++ .../views/reconversion_rule.xml | 61 +++++++++++++++++++ 10 files changed, 135 insertions(+), 2 deletions(-) create mode 100644 lcc_lokavaluto_app_connection/models/reconversion_rule.py create mode 100644 lcc_lokavaluto_app_connection/views/reconversion_rule.xml diff --git a/lcc_lokavaluto_app_connection/__manifest__.py b/lcc_lokavaluto_app_connection/__manifest__.py index 6ccceac7..1445da6b 100644 --- a/lcc_lokavaluto_app_connection/__manifest__.py +++ b/lcc_lokavaluto_app_connection/__manifest__.py @@ -32,6 +32,7 @@ "views/credit_request.xml", "views/debit_request.xml", "views/commission_rule.xml", + "views/reconversion_rule.xml", "views/menu.xml", "views/portal_my_home.xml", "views/res_config_settings_view.xml", diff --git a/lcc_lokavaluto_app_connection/models/__init__.py b/lcc_lokavaluto_app_connection/models/__init__.py index 9c3bbbd5..a29cd8e2 100644 --- a/lcc_lokavaluto_app_connection/models/__init__.py +++ b/lcc_lokavaluto_app_connection/models/__init__.py @@ -8,3 +8,4 @@ from . import credit_request from . import debit_request from . import commission_rule +from . import reconversion_rule diff --git a/lcc_lokavaluto_app_connection/models/debit_request.py b/lcc_lokavaluto_app_connection/models/debit_request.py index e1459263..941cf6d0 100644 --- a/lcc_lokavaluto_app_connection/models/debit_request.py +++ b/lcc_lokavaluto_app_connection/models/debit_request.py @@ -54,6 +54,8 @@ class DebitRequest(models.Model): default="draft", ) + is_reconversion_allowed = fields.Boolean(related="wallet_id.is_reconversion_allowed", readonly=True) + @api.model def create(self, vals): res = super(DebitRequest, self).create(vals) diff --git a/lcc_lokavaluto_app_connection/models/reconversion_rule.py b/lcc_lokavaluto_app_connection/models/reconversion_rule.py new file mode 100644 index 00000000..7d615ee9 --- /dev/null +++ b/lcc_lokavaluto_app_connection/models/reconversion_rule.py @@ -0,0 +1,12 @@ +from odoo import models, fields + +class ReconversionRule(models.Model): + """A recommission rule defines if a wallet can use the reconversion process.""" + + _name = "reconversion.rule" + + name = fields.Char('Name') + active = fields.Boolean(default=True) + wallet_domain = fields.Char('Wallet Domain') + + is_reconversion_allowed = fields.Boolean('Is Reconversion Allowed?') diff --git a/lcc_lokavaluto_app_connection/models/res_partner_backend.py b/lcc_lokavaluto_app_connection/models/res_partner_backend.py index 2088e77d..55306051 100644 --- a/lcc_lokavaluto_app_connection/models/res_partner_backend.py +++ b/lcc_lokavaluto_app_connection/models/res_partner_backend.py @@ -34,6 +34,7 @@ class ResPartnerBackend(models.Model): tracking=True, ) partner_id = fields.Many2one("res.partner", string="Partner", required=True) + is_reconversion_allowed = fields.Boolean('Is Reconversion Allowed?', readonly=True, compute="_compute_is_reconversion_allowed") def _update_search_data(self, backend_keys): return {} @@ -109,4 +110,19 @@ def get_wallet_commission_rule(self): if wallets.filtered(lambda x: x.id == self.id): # First rule matched is returned return rule - return None \ No newline at end of file + return None + + def _compute_is_reconversion_allowed(self): + for record in self: + all_rules = self.env["reconversion.rule"].search([("active", "=", True)]) + # For now the reconversions are not allowed for this wallet + record.is_reconversion_allowed = False + for rule in all_rules: + # Get all the wallet matching the rule + wallets = self.search(safe_eval(rule.wallet_domain)) + # Check if current wallet (self) is in the matching wallets + if wallets.filtered(lambda x: x.id == record.id): + # As soon as one rule allows the reconversion, we don't need to check the others. + if rule.is_reconversion_allowed: + record.is_reconversion_allowed = True + break \ No newline at end of file diff --git a/lcc_lokavaluto_app_connection/security/ir.model.access.csv b/lcc_lokavaluto_app_connection/security/ir.model.access.csv index 1a8ee711..fe7c7213 100644 --- a/lcc_lokavaluto_app_connection/security/ir.model.access.csv +++ b/lcc_lokavaluto_app_connection/security/ir.model.access.csv @@ -7,4 +7,6 @@ access_credit_request.full_manager,lcc_lokavaluto_app_connection.credit_request. access_debit_request.user,lcc_lokavaluto_app_connection.debit_request.user,lcc_lokavaluto_app_connection.model_debit_request,,1,0,0,0 access_debit_request.full_manager,lcc_lokavaluto_app_connection.debit_request.full_manager,lcc_lokavaluto_app_connection.model_debit_request,lcc_lokavaluto_app_connection.group_wallet_full_manager,1,1,1,1 access_commission_rule.user,lcc_lokavaluto_app_connection.commission_rule.user,lcc_lokavaluto_app_connection.model_commission_rule,,1,0,0,0 -access_commission_rule.full_manager,lcc_lokavaluto_app_connection.commission_rule.full_manager,lcc_lokavaluto_app_connection.model_commission_rule,lcc_lokavaluto_app_connection.group_wallet_full_manager,1,1,1,1 \ No newline at end of file +access_commission_rule.full_manager,lcc_lokavaluto_app_connection.commission_rule.full_manager,lcc_lokavaluto_app_connection.model_commission_rule,lcc_lokavaluto_app_connection.group_wallet_full_manager,1,1,1,1 +access_reconversion_rule.user,lcc_lokavaluto_app_connection.reconversion_rule.user,lcc_lokavaluto_app_connection.model_reconversion_rule,,1,0,0,0 +access_reconversion_rule.full_manager,lcc_lokavaluto_app_connection.reconversion_rule.full_manager,lcc_lokavaluto_app_connection.model_reconversion_rule,lcc_lokavaluto_app_connection.group_wallet_full_manager,1,1,1,1 \ No newline at end of file diff --git a/lcc_lokavaluto_app_connection/views/debit_request.xml b/lcc_lokavaluto_app_connection/views/debit_request.xml index 6fc7f20a..c97fa7c6 100644 --- a/lcc_lokavaluto_app_connection/views/debit_request.xml +++ b/lcc_lokavaluto_app_connection/views/debit_request.xml @@ -29,6 +29,11 @@ statusbar_visible="draft,received,invoiced,paid" /> + + diff --git a/lcc_lokavaluto_app_connection/views/lcc_backend.xml b/lcc_lokavaluto_app_connection/views/lcc_backend.xml index 6da6b730..04d884b3 100644 --- a/lcc_lokavaluto_app_connection/views/lcc_backend.xml +++ b/lcc_lokavaluto_app_connection/views/lcc_backend.xml @@ -12,6 +12,7 @@ class="oe_highlight" type="action" groups="lcc_lokavaluto_app_connection.group_wallet_full_manager" /> + @@ -20,6 +21,12 @@ + + @@ -50,6 +57,13 @@ + diff --git a/lcc_lokavaluto_app_connection/views/menu.xml b/lcc_lokavaluto_app_connection/views/menu.xml index 698205dc..204d8249 100644 --- a/lcc_lokavaluto_app_connection/views/menu.xml +++ b/lcc_lokavaluto_app_connection/views/menu.xml @@ -37,6 +37,18 @@ + + Reconversion Rules + ir.actions.act_window + reconversion.rule + tree,form + +

+ Create a new reconversion rule. +

+
+
+ Commission Rules ir.actions.act_window @@ -70,6 +82,13 @@ groups="lcc_lokavaluto_app_connection.group_wallet_accounts_manager" action="action_debit_request" /> + + + + + + reconversion.rule.view.tree + reconversion.rule + + + + + + + + + + + reconversion.rule.view.form + reconversion.rule + +
+ + + +
+

+ +

+
+ + + + + + +
+
+
+
+ + + reconversion.rule.view.search + reconversion.rule + + + + + + + + + + + + +
\ No newline at end of file From bc9bf88f7b236f4e0e514b02241d02eeab2cccc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phan=20Sainl=C3=A9ger?= Date: Tue, 25 Jun 2024 17:16:19 +0200 Subject: [PATCH 09/24] [IMP] lcc_comchain_base: add reconversion auth in wallet json data --- lcc_comchain_base/models/res_partner_backend.py | 1 + 1 file changed, 1 insertion(+) diff --git a/lcc_comchain_base/models/res_partner_backend.py b/lcc_comchain_base/models/res_partner_backend.py index 0158a17d..bbac97e4 100644 --- a/lcc_comchain_base/models/res_partner_backend.py +++ b/lcc_comchain_base/models/res_partner_backend.py @@ -77,6 +77,7 @@ def comchain_backend_accounts_data(self): "wallet": wallet, "message_key": self.comchain_message_key, "active": self.status == "active", + "reconversion": self.is_reconversion_allowed, } ) From 48476c9d73fed9105620774bff442927539ed8de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phan=20Sainl=C3=A9ger?= Date: Tue, 25 Jun 2024 17:16:54 +0200 Subject: [PATCH 10/24] [IMP] lcc_cyclos_base: add reconversion auth in wallet json data --- lcc_cyclos_base/models/res_partner_backend.py | 1 + 1 file changed, 1 insertion(+) diff --git a/lcc_cyclos_base/models/res_partner_backend.py b/lcc_cyclos_base/models/res_partner_backend.py index 2017b86a..906a090e 100644 --- a/lcc_cyclos_base/models/res_partner_backend.py +++ b/lcc_cyclos_base/models/res_partner_backend.py @@ -44,6 +44,7 @@ def cyclos_backend_json_data(self): "owner_id": self.cyclos_id, "url": self.env.user.company_id.cyclos_server_url, "active": self.status == "active", + "reconversion": self.is_reconversion_allowed, } ) From 021d88eedf8ba2aee46278d59faad2dd08d6cb23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phan=20Sainl=C3=A9ger?= Date: Tue, 25 Jun 2024 17:49:08 +0200 Subject: [PATCH 11/24] [IMP] lcc_lokavaluto_app_connection: add reconversions API service to return the reconversion status for the transactions requested. --- .../datamodel/partner_info.py | 4 ++++ .../services/partner_services.py | 20 +++++++++++++++++++ .../views/lcc_backend.xml | 7 ------- 3 files changed, 24 insertions(+), 7 deletions(-) diff --git a/lcc_lokavaluto_app_connection/datamodel/partner_info.py b/lcc_lokavaluto_app_connection/datamodel/partner_info.py index f9943538..a4927f35 100644 --- a/lcc_lokavaluto_app_connection/datamodel/partner_info.py +++ b/lcc_lokavaluto_app_connection/datamodel/partner_info.py @@ -8,6 +8,10 @@ class PartnerCreditRequestsGetParam(Datamodel): backend_keys = fields.List(fields.String()) +class PartnerReconversions(Datamodel): + _name = "partner.reconversions" + + transactions = fields.List(fields.String()) class PartnerSearchInfo(Datamodel): _name = "partner.search.info" diff --git a/lcc_lokavaluto_app_connection/services/partner_services.py b/lcc_lokavaluto_app_connection/services/partner_services.py index ee87038f..97d4f59a 100644 --- a/lcc_lokavaluto_app_connection/services/partner_services.py +++ b/lcc_lokavaluto_app_connection/services/partner_services.py @@ -119,6 +119,26 @@ def validate_credit_requests(self, partner_credit_requests_get_param): requests.validate() return True + @restapi.method( + [(["/reconversions"], "POST")], + input_param=Datamodel("partner.reconversions"), + ) + def reconversions(self, params): + """Return the reconversions status for transactions matching Odoo debit requests. + Possible values in the dictionnary: the matching debit_request state + If no debit request matching the transactions (too many or no requests found), the transaction is not returned. + """ + txs_list = params.transactions + res = {} + DebitRequest = self.env["debit.request"] + for tx_id in txs_list: + debit_requests = DebitRequest.search(["transaction_id", '=', tx_id]) + if len(debit_requests) != 1: + _logger.error("Impossible to match a debit request for transaction %s: %s requests found" % (tx_id, len(debit_requests))) + continue + res[tx_id] = debit_requests[0].state + return res + @restapi.method( [(["//get", "/"], "GET")], ) diff --git a/lcc_lokavaluto_app_connection/views/lcc_backend.xml b/lcc_lokavaluto_app_connection/views/lcc_backend.xml index 04d884b3..3d042adf 100644 --- a/lcc_lokavaluto_app_connection/views/lcc_backend.xml +++ b/lcc_lokavaluto_app_connection/views/lcc_backend.xml @@ -57,13 +57,6 @@ -
From 0c39ed75770da52a00789b93d698b0d42a4343eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phan=20Sainl=C3=A9ger?= Date: Tue, 25 Jun 2024 23:49:43 +0200 Subject: [PATCH 12/24] [IMP] lcc_lokavaluto_app_connection: refactor digital currency menu create a new top menu for an app "Digital Currencies", with all the menuitem available below. --- lcc_lokavaluto_app_connection/__manifest__.py | 1 - lcc_lokavaluto_app_connection/views/menu.xml | 42 +++++++++++-------- 2 files changed, 25 insertions(+), 18 deletions(-) diff --git a/lcc_lokavaluto_app_connection/__manifest__.py b/lcc_lokavaluto_app_connection/__manifest__.py index 1445da6b..95568d4c 100644 --- a/lcc_lokavaluto_app_connection/__manifest__.py +++ b/lcc_lokavaluto_app_connection/__manifest__.py @@ -14,7 +14,6 @@ "base_rest_datamodel", "jsonifier", "lcc_members", - "membership", "onchange_helper", "partner_favorite", "partner_profiles_portal", diff --git a/lcc_lokavaluto_app_connection/views/menu.xml b/lcc_lokavaluto_app_connection/views/menu.xml index 204d8249..7e0a9cd1 100644 --- a/lcc_lokavaluto_app_connection/views/menu.xml +++ b/lcc_lokavaluto_app_connection/views/menu.xml @@ -1,14 +1,16 @@ - - LCC backends + + Wallets ir.actions.act_window res.partner.backend tree,form

-
+

+ Create a new wallets. +

@@ -61,37 +63,43 @@
+ + + action="action_wallet_view" /> + + From fd1789363d2b0d735fc216d0f3ec3792c12bf2d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phan=20Sainl=C3=A9ger?= Date: Wed, 26 Jun 2024 00:13:44 +0200 Subject: [PATCH 13/24] [CLN] global: rename res.partner.backend files in wallet one of the cleaning commit to recover the actual concept of the res.partner.backend: there are wallets, and not digital currency backends --- lcc_comchain_base/__manifest__.py | 2 +- lcc_comchain_base/models/__init__.py | 2 +- .../{res_partner_backend.py => wallet.py} | 0 .../views/{lcc_backend.xml => wallet.xml} | 6 +++--- lcc_cyclos_base/__manifest__.py | 2 +- lcc_cyclos_base/models/__init__.py | 2 +- .../{res_partner_backend.py => wallet.py} | 0 .../views/{lcc_backend.xml => wallet.xml} | 6 +++--- lcc_lokavaluto_app_connection/__manifest__.py | 2 +- .../models/__init__.py | 2 +- .../{res_partner_backend.py => wallet.py} | 0 .../views/{lcc_backend.xml => wallet.xml} | 18 +++++++++--------- lcc_wallet_qr/__manifest__.py | 2 +- lcc_wallet_qr/models/__init__.py | 2 +- .../{res_partner_backend.py => wallet.py} | 0 .../views/{lcc_backend.xml => wallet.xml} | 6 +++--- 16 files changed, 26 insertions(+), 26 deletions(-) rename lcc_comchain_base/models/{res_partner_backend.py => wallet.py} (100%) rename lcc_comchain_base/views/{lcc_backend.xml => wallet.xml} (85%) rename lcc_cyclos_base/models/{res_partner_backend.py => wallet.py} (100%) rename lcc_cyclos_base/views/{lcc_backend.xml => wallet.xml} (91%) rename lcc_lokavaluto_app_connection/models/{res_partner_backend.py => wallet.py} (100%) rename lcc_lokavaluto_app_connection/views/{lcc_backend.xml => wallet.xml} (83%) rename lcc_wallet_qr/models/{res_partner_backend.py => wallet.py} (100%) rename lcc_wallet_qr/views/{lcc_backend.xml => wallet.xml} (80%) diff --git a/lcc_comchain_base/__manifest__.py b/lcc_comchain_base/__manifest__.py index c1c9cd82..c3aea28a 100644 --- a/lcc_comchain_base/__manifest__.py +++ b/lcc_comchain_base/__manifest__.py @@ -17,7 +17,7 @@ "data": [ "security/ir_rule.xml", "views/res_config_settings_view.xml", - "views/lcc_backend.xml", + "views/wallet.xml", "data/comchain_data.xml", ], # only loaded in demonstration mode diff --git a/lcc_comchain_base/models/__init__.py b/lcc_comchain_base/models/__init__.py index 69f67cf3..94132149 100644 --- a/lcc_comchain_base/models/__init__.py +++ b/lcc_comchain_base/models/__init__.py @@ -1,4 +1,4 @@ from . import res_config_settings from . import company from . import res_partner -from . import res_partner_backend +from . import wallet diff --git a/lcc_comchain_base/models/res_partner_backend.py b/lcc_comchain_base/models/wallet.py similarity index 100% rename from lcc_comchain_base/models/res_partner_backend.py rename to lcc_comchain_base/models/wallet.py diff --git a/lcc_comchain_base/views/lcc_backend.xml b/lcc_comchain_base/views/wallet.xml similarity index 85% rename from lcc_comchain_base/views/lcc_backend.xml rename to lcc_comchain_base/views/wallet.xml index 8a80e62a..6e6ee598 100644 --- a/lcc_comchain_base/views/lcc_backend.xml +++ b/lcc_comchain_base/views/wallet.xml @@ -1,10 +1,10 @@ - - lcc.backend.comchain.form.view + + wallet.comchain.form.view res.partner.backend - + 0 diff --git a/lcc_cyclos_base/__manifest__.py b/lcc_cyclos_base/__manifest__.py index ca4c278d..db1ed079 100644 --- a/lcc_cyclos_base/__manifest__.py +++ b/lcc_cyclos_base/__manifest__.py @@ -19,7 +19,7 @@ "security/ir_rule.xml", "views/res_config_settings_view.xml", "views/res_partner_view.xml", - "views/lcc_backend.xml", + "views/wallet.xml", "data/cyclos_data.xml", ], 'assets': { diff --git a/lcc_cyclos_base/models/__init__.py b/lcc_cyclos_base/models/__init__.py index d4f6f86a..07d26c60 100644 --- a/lcc_cyclos_base/models/__init__.py +++ b/lcc_cyclos_base/models/__init__.py @@ -1,5 +1,5 @@ from . import res_config_settings from . import company from . import res_partner -from . import res_partner_backend +from . import wallet from . import res_users diff --git a/lcc_cyclos_base/models/res_partner_backend.py b/lcc_cyclos_base/models/wallet.py similarity index 100% rename from lcc_cyclos_base/models/res_partner_backend.py rename to lcc_cyclos_base/models/wallet.py diff --git a/lcc_cyclos_base/views/lcc_backend.xml b/lcc_cyclos_base/views/wallet.xml similarity index 91% rename from lcc_cyclos_base/views/lcc_backend.xml rename to lcc_cyclos_base/views/wallet.xml index 11a531e4..38febff2 100644 --- a/lcc_cyclos_base/views/lcc_backend.xml +++ b/lcc_cyclos_base/views/wallet.xml @@ -1,10 +1,10 @@ - - lcc.backend.cyclos.form.view + + wallet.cyclos.form.view res.partner.backend - + 0 diff --git a/lcc_lokavaluto_app_connection/__manifest__.py b/lcc_lokavaluto_app_connection/__manifest__.py index 95568d4c..bc5f630a 100644 --- a/lcc_lokavaluto_app_connection/__manifest__.py +++ b/lcc_lokavaluto_app_connection/__manifest__.py @@ -27,7 +27,7 @@ "views/account_invoice.xml", "views/res_partner.xml", "views/sale_order.xml", - "views/lcc_backend.xml", + "views/wallet.xml", "views/credit_request.xml", "views/debit_request.xml", "views/commission_rule.xml", diff --git a/lcc_lokavaluto_app_connection/models/__init__.py b/lcc_lokavaluto_app_connection/models/__init__.py index a29cd8e2..cb631d22 100644 --- a/lcc_lokavaluto_app_connection/models/__init__.py +++ b/lcc_lokavaluto_app_connection/models/__init__.py @@ -1,5 +1,5 @@ from . import sale_order -from . import res_partner_backend +from . import wallet from . import res_partner from . import auth_api_key from . import account_invoice diff --git a/lcc_lokavaluto_app_connection/models/res_partner_backend.py b/lcc_lokavaluto_app_connection/models/wallet.py similarity index 100% rename from lcc_lokavaluto_app_connection/models/res_partner_backend.py rename to lcc_lokavaluto_app_connection/models/wallet.py diff --git a/lcc_lokavaluto_app_connection/views/lcc_backend.xml b/lcc_lokavaluto_app_connection/views/wallet.xml similarity index 83% rename from lcc_lokavaluto_app_connection/views/lcc_backend.xml rename to lcc_lokavaluto_app_connection/views/wallet.xml index 3d042adf..e8b46e65 100644 --- a/lcc_lokavaluto_app_connection/views/lcc_backend.xml +++ b/lcc_lokavaluto_app_connection/views/wallet.xml @@ -1,12 +1,12 @@ - - lcc.backend.form.view + + wallet.form.view res.partner.backend 0 -
- + + From debb5ce10907711da05760950ae78166a8bc27e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phan=20Sainl=C3=A9ger?= Date: Thu, 27 Jun 2024 10:02:07 +0200 Subject: [PATCH 17/24] [I18N] lcc_lokavaluto_app_connection: update french translations --- lcc_lokavaluto_app_connection/i18n/fr.po | 557 ++++++++++++++---- .../i18n/lcc_lokavaluto_app_connection.pot | 499 ++++++++++++---- lcc_lokavaluto_app_connection/views/menu.xml | 2 +- 3 files changed, 820 insertions(+), 238 deletions(-) diff --git a/lcc_lokavaluto_app_connection/i18n/fr.po b/lcc_lokavaluto_app_connection/i18n/fr.po index 5e7f4171..db9018f6 100644 --- a/lcc_lokavaluto_app_connection/i18n/fr.po +++ b/lcc_lokavaluto_app_connection/i18n/fr.po @@ -1,14 +1,14 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * lcc_lokavaluto_app_connection +# * lcc_lokavaluto_app_connection # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 12.0\n" +"Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-12-11 20:43+0000\n" -"PO-Revision-Date: 2023-12-11 20:43+0000\n" -"Last-Translator: <>\n" +"POT-Creation-Date: 2024-06-27 07:08+0000\n" +"PO-Revision-Date: 2024-06-27 07:08+0000\n" +"Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -23,17 +23,20 @@ msgstr "." #. module: lcc_lokavaluto_app_connection #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_partner_app -msgid ". For any maintenance action\n" +msgid "" +". For any maintenance action\n" " concerning these wallets, please contact your currency manager." msgstr ". Pour une action de maintenance\n" " concernant ces portefeuilles, veuillez contacter votre gestionnaire de portefeuille."" #. module: lcc_lokavaluto_app_connection #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.portal_my_home_monujo_menu -msgid "
\n" +msgid "" +"
\n" " Applications mobiles:\n" "
" -msgstr "
\n" +msgstr "" +"
\n" " Applications mobiles:\n" "
" @@ -42,6 +45,11 @@ msgstr "
\n" msgid "Android app download URL" msgstr "URL de téléchargement Android" +#. module: lcc_lokavaluto_app_connection +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.res_config_settings_view_form_digital_currency +msgid "Commission Product" +msgstr "Article de Commission à la reconversion" + #. module: lcc_lokavaluto_app_connection #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.res_config_settings_view_form_digital_currency msgid "Web application URL" @@ -54,11 +62,13 @@ msgstr "Url de téléchargement IOS" #. module: lcc_lokavaluto_app_connection #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.credit_request_view_form -msgid "An error status doesn't always mean the credit request\n" +msgid "" +"An error status doesn't always mean the credit request\n" " failed.
Before trying again to credit the wallet,\n" " please check on the transactions database that the request\n" " has not successed." -msgstr "Le statut Erreur ne signifie pas toujours que la demande de chargement\n" +msgstr "" +"Le statut Erreur ne signifie pas toujours que la demande de chargement\n" " a échoué.
Avant d'essayer à nouveau de recharger le portefeuille,\n" " veuillez vérifier dans la base de données de transactions que la requête\n" " a bien échoué." @@ -85,57 +95,129 @@ msgid "Activate top up on Comchain without Admin validation." msgstr "Activer le rechargement Comchain sans la validation d'un administrateur." #. module: lcc_lokavaluto_app_connection +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule__active +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__active +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_reconversion_rule__active #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__active -#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_backend_view_search -#: selection:res.partner.backend,status:0 +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__res_partner_backend__status__active +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.commission_rule_view_search +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.reconversion_rule_view_search +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_view_search msgid "Active" msgstr "Actif" #. module: lcc_lokavaluto_app_connection #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_create_credit_request__amount #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__amount +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__amount msgid "Amount" msgstr "Montant" +#. module: lcc_lokavaluto_app_connection +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.commission_rule_view_form +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.commission_rule_view_search +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.reconversion_rule_view_form +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.reconversion_rule_view_search +msgid "Archived" +msgstr "Archivé" + +#. module: lcc_lokavaluto_app_connection +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.reconversion_rule_view_form +msgid "Authorisation" +msgstr "Autorisation" + #. module: lcc_lokavaluto_app_connection #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.res_config_settings_view_form_digital_currency msgid "Automatic Top Up" msgstr "Rechargement automatique" #. module: lcc_lokavaluto_app_connection -#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_backend_view_search -#: selection:res.partner.backend,status:0 +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__res_partner_backend__status__blocked +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_view_search msgid "Blocked" msgstr "Bloqué" +#. module: lcc_lokavaluto_app_connection +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule__calculation_rule +msgid "Calculation Rule" +msgstr "Règle de calcul" + +#. module: lcc_lokavaluto_app_connection +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.commission_rule_view_form +msgid "Calculation process" +msgstr "PRocessus de calcul" + #. module: lcc_lokavaluto_app_connection #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.create_credit_request_wizard_view_form msgid "Cancel" msgstr "Annuler" #. module: lcc_lokavaluto_app_connection -#: selection:res.partner.backend,type:0 -msgid "Comchain" -msgstr "" +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__commission_move_state__cancelled +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__debit_move_state__cancelled +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__state__cancelled +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_search +msgid "Cancelled" +msgstr "Annulé" + +#. module: lcc_lokavaluto_app_connection +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__commission_move_id +msgid "Commission Invoice" +msgstr "Facture de commission" + +#. module: lcc_lokavaluto_app_connection +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__commission_move_state +msgid "Commission Invoice State" +msgstr "État Facture de commission" + +#. module: lcc_lokavaluto_app_connection +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_company__commission_product_id +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_config_settings__commission_product_id +msgid "Commission Product" +msgstr "Article de commission à la reconversion" + +#. module: lcc_lokavaluto_app_connection +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.commission_rule_view_form +msgid "Commission Rule" +msgstr "Règle de commission" + +#. module: lcc_lokavaluto_app_connection +#: model:ir.actions.act_window,name:lcc_lokavaluto_app_connection.action_commission_rule +#: model:ir.ui.menu,name:lcc_lokavaluto_app_connection.commission_rule_menu +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.commission_rule_view_tree +msgid "Commission Rules" +msgstr "Règles de commission" #. module: lcc_lokavaluto_app_connection #: model:ir.model,name:lcc_lokavaluto_app_connection.model_res_company msgid "Companies" msgstr "Sociétés" +#. module: lcc_lokavaluto_app_connection +#: model:ir.actions.server,name:lcc_lokavaluto_app_connection.ir_cron_import_new_digital_currency_debit_requests_ir_actions_server +#: model:ir.cron,cron_name:lcc_lokavaluto_app_connection.ir_cron_import_new_digital_currency_debit_requests +msgid "Company: import new digital currency debit requests" +msgstr "Société : importer les nouvelles demandes de reconversion" + #. module: lcc_lokavaluto_app_connection #: model:ir.model,name:lcc_lokavaluto_app_connection.model_res_config_settings msgid "Config Settings" -msgstr "Paramètres de config" +msgstr "Paramètres de configuration" + +#. module: lcc_lokavaluto_app_connection +#: model:ir.ui.menu,name:lcc_lokavaluto_app_connection.menu_config_digital_currency +msgid "Configuration" +msgstr "Configuration" #. module: lcc_lokavaluto_app_connection #: model:ir.model,name:lcc_lokavaluto_app_connection.model_res_partner -#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_backend_view_search +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_view_search msgid "Contact" msgstr "" #. module: lcc_lokavaluto_app_connection #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.credit_request_view_form +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_form msgid "Content" msgstr "Contenu" @@ -149,21 +231,57 @@ msgstr "Créer" msgid "Create Credit Request" msgstr "Créer une demande de chargement" +#. module: lcc_lokavaluto_app_connection +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_form +msgid "Create Invoices" +msgstr "Créer les factures" + #. module: lcc_lokavaluto_app_connection #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.create_credit_request_wizard_view_form msgid "Create a credit request" msgstr "Créer une demande de chargement" #. module: lcc_lokavaluto_app_connection +#: model_terms:ir.actions.act_window,help:lcc_lokavaluto_app_connection.action_commission_rule +msgid "Create a new commission rule." +msgstr "Créer une nouvelle règle de commission à la reconversion." + +#. module: lcc_lokavaluto_app_connection +#: model_terms:ir.actions.act_window,help:lcc_lokavaluto_app_connection.action_credit_request +msgid "Create a new credit request." +msgstr "Créer une nouvelle demande de chargement." + +#. module: lcc_lokavaluto_app_connection +#: model_terms:ir.actions.act_window,help:lcc_lokavaluto_app_connection.action_debit_request +msgid "Create a new debit request." +msgstr "Créer une nouvelle demande de reconversion." + +#. module: lcc_lokavaluto_app_connection +#: model_terms:ir.actions.act_window,help:lcc_lokavaluto_app_connection.action_reconversion_rule +msgid "Create a new reconversion rule." +msgstr "Créer une nouvelle règle de reconversion." + +#. module: lcc_lokavaluto_app_connection +#: model_terms:ir.actions.act_window,help:lcc_lokavaluto_app_connection.action_wallet_view +msgid "Create a new wallet." +msgstr "Créer un nouveau portefeuille" + +#. module: lcc_lokavaluto_app_connection +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule__create_uid #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_create_credit_request__create_uid #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__create_uid +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__create_uid +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_reconversion_rule__create_uid #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__create_uid msgid "Created by" msgstr "Créé par" #. module: lcc_lokavaluto_app_connection +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule__create_date #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_create_credit_request__create_date #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__create_date +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__create_date +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_reconversion_rule__create_date #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__create_date msgid "Created on" msgstr "Créé le" @@ -177,22 +295,60 @@ msgstr "Demande de chargement" #. module: lcc_lokavaluto_app_connection #: model:ir.actions.act_window,name:lcc_lokavaluto_app_connection.action_credit_request -#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_invoice__credit_request_ids +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_bank_statement_line__credit_request_ids +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_move__credit_request_ids +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_payment__credit_request_ids #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_sale_order__credit_request_ids -#: model:ir.ui.menu,name:lcc_lokavaluto_app_connection.credit_request_tree_menu +#: model:ir.ui.menu,name:lcc_lokavaluto_app_connection.credit_requests_menu #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.credit_request_view_tree msgid "Credit Requests" msgstr "Demandes de chargement" #. module: lcc_lokavaluto_app_connection -#: selection:res.partner.backend,type:0 -msgid "Cyclos" -msgstr "" +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__debit_move_id +msgid "Debit Invoice" +msgstr "Facture de reconversion" + +#. module: lcc_lokavaluto_app_connection +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__debit_move_state +msgid "Debit Invoice State" +msgstr "État facture de reconversion" + +#. module: lcc_lokavaluto_app_connection +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_form +msgid "Debit Request" +msgstr "Demande de reconversion" + +#. module: lcc_lokavaluto_app_connection +#: model:ir.actions.act_window,name:lcc_lokavaluto_app_connection.action_debit_request +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_bank_statement_line__debit_request_ids +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_move__debit_request_ids +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_payment__debit_request_ids +#: model:ir.ui.menu,name:lcc_lokavaluto_app_connection.debit_requests_menu +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_tree +msgid "Debit Requests" +msgstr "Demandes de reconversion" #. module: lcc_lokavaluto_app_connection #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.res_config_settings_view_form_digital_currency msgid "Digital Currency" -msgstr "Monnaie numérique" +msgstr "Monnaie Numérique" + +#. module: lcc_lokavaluto_app_connection +#: model:product.template,name:lcc_lokavaluto_app_connection.product_product_reconversion_commission_product_template +msgid "Digital Currency Reconversion Commission" +msgstr "Commission à la reconversion Monnaie Numérique" + +#. module: lcc_lokavaluto_app_connection +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_form_view +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_view_tree +msgid "Digital Currency Wallet" +msgstr "Portefeuille de Monnaie Numérique" + +#. module: lcc_lokavaluto_app_connection +#: model:ir.ui.menu,name:lcc_lokavaluto_app_connection.menu_digital_currencies +msgid "Digital currencies" +msgstr "Monnaies numériques" #. module: lcc_lokavaluto_app_connection #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.res_config_settings_view_form_digital_currency @@ -200,22 +356,33 @@ msgid "Digital currency application configuration" msgstr "Configuration des applications de monnaie numérique" #. module: lcc_lokavaluto_app_connection +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule__display_name #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_create_credit_request__display_name #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__display_name +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__display_name +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_reconversion_rule__display_name #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__display_name msgid "Display Name" msgstr "Nom affiché" #. module: lcc_lokavaluto_app_connection -#: selection:account.invoice,global_credit_status:0 -#: selection:credit.request,state:0 +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__account_move__global_credit_status__done +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__credit_request__state__done +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__sale_order__global_credit_status__done #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.credit_request_view_search -#: selection:sale.order,global_credit_status:0 msgid "Done" msgstr "Terminé" #. module: lcc_lokavaluto_app_connection -#: selection:credit.request,state:0 +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__commission_move_state__draft +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__debit_move_state__draft +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__state__draft +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_search +msgid "Draft" +msgstr "Brouillon" + +#. module: lcc_lokavaluto_app_connection +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__credit_request__state__error #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.credit_request_view_search msgid "Error" msgstr "Erreur" @@ -228,114 +395,129 @@ msgstr "Message d'erreur" #. module: lcc_lokavaluto_app_connection #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.res_config_settings_view_form_digital_currency msgid "Financial backend general configuration" -msgstr "Configuration générale du moteur de transactions" +msgstr "Configuration générale du moteur de transaction" + +#. module: lcc_lokavaluto_app_connection +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__commission_rule__calculation_rule__fix +msgid "Fix amount" +msgstr "Montant fixe" + +#. module: lcc_lokavaluto_app_connection +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.commission_rule_view_search +msgid "Fix rules" +msgstr "Montants fixes" #. module: lcc_lokavaluto_app_connection -#: model:product.product,name:lcc_lokavaluto_app_connection.product_product_numeric_lcc #: model:product.template,name:lcc_lokavaluto_app_connection.product_product_numeric_lcc_product_template msgid "Generic Numeric LCC" msgstr "MLC Numérique générique" #. module: lcc_lokavaluto_app_connection -#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_invoice__global_credit_status +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_bank_statement_line__global_credit_status +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_move__global_credit_status +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_payment__global_credit_status #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_sale_order__global_credit_status msgid "Global Credit Status" msgstr "État général des chargements" #. module: lcc_lokavaluto_app_connection -#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_invoice__has_numeric_lcc_products +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_bank_statement_line__has_numeric_lcc_products +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_move__has_numeric_lcc_products +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_payment__has_numeric_lcc_products #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_sale_order__has_numeric_lcc_products msgid "Has lcc numeric products" msgstr "A des produits de monnaie numérique" #. module: lcc_lokavaluto_app_connection +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule__id #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_create_credit_request__id #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__id +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__id +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_reconversion_rule__id #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__id msgid "ID" msgstr "" #. module: lcc_lokavaluto_app_connection -#: code:addons/lcc_lokavaluto_app_connection/controllers/portal.py:49 -#, python-format -msgid "If we store your payment information on our server, subscription payments will be made automatically." -msgstr "Si nous stockons vos informations de paiement sur notre serveur, les paiements d'adhésion seront fait automatiquement." - -#. module: lcc_lokavaluto_app_connection -#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_backend_view_search -#: selection:res.partner.backend,status:0 +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__res_partner_backend__status__inactive +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_view_search msgid "Inactive" msgstr "Inactif" #. module: lcc_lokavaluto_app_connection -#: model:ir.model,name:lcc_lokavaluto_app_connection.model_account_invoice -msgid "Invoice" -msgstr "Facture" +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__state__invoiced +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_search +msgid "Invoiced" +msgstr "Facturé" #. module: lcc_lokavaluto_app_connection -#: model:ir.model,name:lcc_lokavaluto_app_connection.model_account_invoice_line -msgid "Invoice Line" -msgstr "Ligne de facture" +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__is_reconversion_allowed +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_reconversion_rule__is_reconversion_allowed +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__is_reconversion_allowed +msgid "Is Reconversion Allowed?" +msgstr "Reconversion autorisée ?" #. module: lcc_lokavaluto_app_connection -#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_auth_api_key__key -msgid "Key" -msgstr "Clé" +#: model:ir.model,name:lcc_lokavaluto_app_connection.model_account_move +msgid "Journal Entry" +msgstr "Pièce comptable" #. module: lcc_lokavaluto_app_connection -#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_backend_form_view -msgid "LCC Backend" -msgstr "Portefeuilles numériques" +#: model:ir.model,name:lcc_lokavaluto_app_connection.model_account_move_line +msgid "Journal Item" +msgstr "Écriture comptable" #. module: lcc_lokavaluto_app_connection -#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_backend_view_tree -msgid "LCC Backends" -msgstr "Moteurs de transactions" +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_auth_api_key__key +msgid "Key" +msgstr "Clef" #. module: lcc_lokavaluto_app_connection -#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_invoice__global_lcc_amount_credited +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_bank_statement_line__global_lcc_amount_credited +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_move__global_lcc_amount_credited +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_payment__global_lcc_amount_credited #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_sale_order__global_lcc_amount_credited msgid "LCC amount credited" msgstr "Montant crédité" #. module: lcc_lokavaluto_app_connection -#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_invoice__global_lcc_amount_to_credit +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_bank_statement_line__global_lcc_amount_to_credit +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_move__global_lcc_amount_to_credit +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_payment__global_lcc_amount_to_credit #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_sale_order__global_lcc_amount_to_credit msgid "LCC amount to credit" msgstr "Montant à créditer" #. module: lcc_lokavaluto_app_connection -#: model:ir.actions.act_window,name:lcc_lokavaluto_app_connection.action_lcc_backends_tree_view -#: model:ir.ui.menu,name:lcc_lokavaluto_app_connection.lcc_backends_tree_menu -msgid "LCC backends" -msgstr "Portefeuilles numériques" - -#. module: lcc_lokavaluto_app_connection +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule____last_update #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_create_credit_request____last_update #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request____last_update +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request____last_update +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_reconversion_rule____last_update #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend____last_update msgid "Last Modified on" msgstr "Dernière modification le" #. module: lcc_lokavaluto_app_connection +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule__write_uid #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_create_credit_request__write_uid #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__write_uid +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__write_uid +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_reconversion_rule__write_uid #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__write_uid msgid "Last Updated by" msgstr "Dernière modification par" #. module: lcc_lokavaluto_app_connection +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule__write_date #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_create_credit_request__write_date #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__write_date +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__write_date +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_reconversion_rule__write_date #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__write_date msgid "Last Updated on" msgstr "Dernière mise à jour le" -#. module: lcc_lokavaluto_app_connection -#: model:ir.model,name:lcc_lokavaluto_app_connection.model_crm_lead -msgid "Lead/Opportunity" -msgstr "Piste/opportunité" - #. module: lcc_lokavaluto_app_connection #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__invoice_id msgid "Linked Invoice" @@ -348,6 +530,7 @@ msgstr "Bon de commande lié" #. module: lcc_lokavaluto_app_connection #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.credit_request_view_form +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_form msgid "Linked documents" msgstr "Documents liés" @@ -362,7 +545,7 @@ msgstr "Portefeuilles numériques" #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_company__monujo_android_app_url #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_config_settings__monujo_android_app_url msgid "Monujo Android app URL" -msgstr "" +msgstr "URL de l'application Monujo pour Android" #. module: lcc_lokavaluto_app_connection #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_company__monujo_ios_app_url @@ -374,12 +557,14 @@ msgstr "URL de l'application Monujo pour iOS" #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_company__monujo_web_app_url #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_config_settings__monujo_web_app_url msgid "Monujo web app URL" -msgstr "URL de l'application Monujo pour web" +msgstr "URL de l'application Monujo Web" #. module: lcc_lokavaluto_app_connection #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_auth_api_key__name +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule__name +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_reconversion_rule__name #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__name -#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_backend_view_search +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_view_search msgid "Name" msgstr "Nom" @@ -408,38 +593,41 @@ msgid "Nb Wallets to confirm" msgstr "Nb portefeuilles à confirmer" #. module: lcc_lokavaluto_app_connection -#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_backend_form_view +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_form_view msgid "New Credit Request" msgstr "Nouvelle demande de chargement" #. module: lcc_lokavaluto_app_connection -#: code:addons/lcc_lokavaluto_app_connection/services/partner_images_services.py:38 -#, python-format -msgid "No image found for partner %s" -msgstr "Pas d'image trouvée pour le partenaire %s" - -#. module: lcc_lokavaluto_app_connection -#: model:product.category,name:lcc_lokavaluto_app_connection.product_category_numeric_lcc -msgid "Numeric LCC" -msgstr "MLC numérique" +#: model:ir.module.category,name:lcc_lokavaluto_app_connection.module_category_administration_wallets +msgid "Numeric Wallets" +msgstr "Portefeuilles numériques" #. module: lcc_lokavaluto_app_connection -#: selection:account.invoice,global_credit_status:0 -#: selection:sale.order,global_credit_status:0 +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__account_move__global_credit_status__ongoing +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__sale_order__global_credit_status__ongoing msgid "On going" msgstr "En cours" #. module: lcc_lokavaluto_app_connection -#: selection:credit.request,state:0 +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__credit_request__state__open #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.credit_request_view_search msgid "Open" msgstr "Ouvert" +#. module: lcc_lokavaluto_app_connection +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__commission_move_state__paid +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__debit_move_state__paid +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__state__paid +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_search +msgid "Paid" +msgstr "Payé" + #. module: lcc_lokavaluto_app_connection #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__partner_id +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__partner_id #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__partner_id msgid "Partner" -msgstr "Partenaire" +msgstr "Contact" #. module: lcc_lokavaluto_app_connection #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__partner_public_name @@ -447,34 +635,77 @@ msgid "Partner Public Name" msgstr "Nom public du contact" #. module: lcc_lokavaluto_app_connection -#: code:addons/lcc_lokavaluto_app_connection/controllers/portal.py:46 -#, python-format -msgid "Pay & Confirm" -msgstr "Payer & Confirmer" - -#. module: lcc_lokavaluto_app_connection -#: selection:credit.request,state:0 +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__credit_request__state__pending #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.credit_request_view_search msgid "Pending" msgstr "En attente" +#. module: lcc_lokavaluto_app_connection +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__commission_rule__calculation_rule__percentage +msgid "Percentage" +msgstr "Pourcentage" + +#. module: lcc_lokavaluto_app_connection +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.commission_rule_view_search +msgid "Percentage rules" +msgstr "Pourcentage" + #. module: lcc_lokavaluto_app_connection #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.portal_my_home_monujo_menu msgid "Portefeuille numérique" msgstr "Portefeuille numérique" #. module: lcc_lokavaluto_app_connection -#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.portal_organization_registration_wallet -#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.portal_private_registration_wallet -#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.website_organization_registration_wallet -msgid "Refuse numeric wallet creation" -msgstr "Refuser la création d'un portefeuille numérique" +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__commission_move_state__posted +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__debit_move_state__posted +msgid "Posted" +msgstr "Envoyé" + +#. module: lcc_lokavaluto_app_connection +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__state__received +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_search +msgid "Received" +msgstr "Reçu" + +#. module: lcc_lokavaluto_app_connection +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.reconversion_rule_view_search +msgid "Reconversion OFF" +msgstr "Reconversion OFF" + +#. module: lcc_lokavaluto_app_connection +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.reconversion_rule_view_search +msgid "Reconversion ON" +msgstr "Reconversion ON" + +#. module: lcc_lokavaluto_app_connection +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.reconversion_rule_view_form +msgid "Reconversion Rule" +msgstr "Règle de reconversion" + +#. module: lcc_lokavaluto_app_connection +#: model:ir.actions.act_window,name:lcc_lokavaluto_app_connection.action_reconversion_rule +#: model:ir.ui.menu,name:lcc_lokavaluto_app_connection.reconversion_rule_menu +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.reconversion_rule_view_tree +msgid "Reconversion Rules" +msgstr "Règles de reconversion" + +#. module: lcc_lokavaluto_app_connection +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_form +msgid "" +"Reconversion rules indicate that reconversions are presumed NOT ALLOWED on\n" +" the selected wallet." +msgstr "Les règles sur les reconversions indiques que celles-ci sont en théorie NON autorisée sur\n" +" le portefeuille sélectionné." + +#. module: lcc_lokavaluto_app_connection +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_form_view +msgid "Reconversions are NOT allowed on this wallet." +msgstr "Les reconversions ne sont PAS autorisées sur ce portefeuille." #. module: lcc_lokavaluto_app_connection -#: code:addons/lcc_lokavaluto_app_connection/models/crm_lead.py:11 -#, python-format -msgid "Refuse the creation of a numeric wallet." -msgstr "Refuser la création d'un portefeuille numérique." +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_form_view +msgid "Reconversions are allowed on this wallet." +msgstr "Les reconversions sont autorisées sur ce portefeuille." #. module: lcc_lokavaluto_app_connection #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.credit_request_view_form @@ -483,8 +714,13 @@ msgstr "Réponse" #. module: lcc_lokavaluto_app_connection #: model:ir.model,name:lcc_lokavaluto_app_connection.model_sale_order -msgid "Sale Order" -msgstr "Bon de commande" +msgid "Sales Order" +msgstr "Bons de commande" + +#. module: lcc_lokavaluto_app_connection +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.commission_rule_view_search +msgid "Search commission rules" +msgstr "Chercher de règles de commission" #. module: lcc_lokavaluto_app_connection #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.credit_request_view_search @@ -492,12 +728,23 @@ msgid "Search credit requests" msgstr "Chercher le demandes de chargement" #. module: lcc_lokavaluto_app_connection -#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_backend_view_search +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_search +msgid "Search debit requests" +msgstr "Chercher les demandes de reconversion" + +#. module: lcc_lokavaluto_app_connection +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.reconversion_rule_view_search +msgid "Search reconversion rules" +msgstr "Chercher les règles de reconversion" + +#. module: lcc_lokavaluto_app_connection +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_view_search msgid "Search wallets" msgstr "Chercher les portefeuilles" #. module: lcc_lokavaluto_app_connection #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__state +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__state msgid "State" msgstr "État" @@ -508,31 +755,49 @@ msgstr "État" #. module: lcc_lokavaluto_app_connection #: model:ir.model.fields,help:lcc_lokavaluto_app_connection.field_auth_api_key__key -msgid "The API key. Keep the default value in this field if it is\n" +msgid "" +"The API key. Enter a dummy value in this field if it is\n" " obtained from the server environment configuration." msgstr "" #. module: lcc_lokavaluto_app_connection -#: selection:res.partner.backend,status:0 +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__res_partner_backend__status__to_confirm msgid "To Confirm" -msgstr "A confirmer" +msgstr "À confirmer" #. module: lcc_lokavaluto_app_connection -#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_backend_view_search +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_view_search msgid "To confirm" -msgstr "A confirmer" +msgstr "À confirmer" #. module: lcc_lokavaluto_app_connection -#: selection:account.invoice,global_credit_status:0 -#: selection:sale.order,global_credit_status:0 +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__account_move__global_credit_status__todo +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__sale_order__global_credit_status__todo msgid "To do" -msgstr "A faire" +msgstr "À faire" + +#. module: lcc_lokavaluto_app_connection +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__transaction_id +msgid "Transaction ID" +msgstr "ID de la transaction" + +#. module: lcc_lokavaluto_app_connection +#: model:ir.model.constraint,message:lcc_lokavaluto_app_connection.constraint_debit_request_transaction_id_uniq +msgid "" +"Transaction ID must be unique, a request already exists with this " +"transaction ID!" +msgstr "L'ID de la transaction doit être unique, une demande existe déjà avec cet ID de transaction." #. module: lcc_lokavaluto_app_connection #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__transaction_data msgid "Transaction Message" msgstr "Message de transaction" +#. module: lcc_lokavaluto_app_connection +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__transaction_timestamp +msgid "Transaction Timestamp" +msgstr "Horodatage de la transaction" + #. module: lcc_lokavaluto_app_connection #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.credit_request_view_form msgid "Try again" @@ -540,22 +805,30 @@ msgstr "Ré-essayer" #. module: lcc_lokavaluto_app_connection #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__type -#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_backend_view_search +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_view_search msgid "Type" msgstr "" #. module: lcc_lokavaluto_app_connection -#: model:product.product,uom_name:lcc_lokavaluto_app_connection.product_product_numeric_lcc -#: model:product.template,uom_name:lcc_lokavaluto_app_connection.product_product_numeric_lcc_product_template -msgid "Unit(s)" -msgstr "Unité(s)" +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule__calculation_value +msgid "Value" +msgstr "Valeur" #. module: lcc_lokavaluto_app_connection #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_create_credit_request__wallet_id #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__wallet_id +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__wallet_id msgid "Wallet" msgstr "Portefeuille" +#. module: lcc_lokavaluto_app_connection +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule__wallet_domain +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_reconversion_rule__wallet_domain +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.commission_rule_view_form +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.reconversion_rule_view_form +msgid "Wallet Domain" +msgstr "Domaine des portefeuilles" + #. module: lcc_lokavaluto_app_connection #: model:res.groups,name:lcc_lokavaluto_app_connection.group_wallet_accounts_manager msgid "Wallet accounts manager" @@ -563,14 +836,25 @@ msgstr "Gestionnaire de portefeuille" #. module: lcc_lokavaluto_app_connection #: model:res.groups,name:lcc_lokavaluto_app_connection.group_wallet_full_manager -msgid "Wallet_full_manager" +msgid "Wallet full manager" msgstr "Gestionnaire du moteur de transaction" +#. module: lcc_lokavaluto_app_connection +#: model:ir.actions.act_window,name:lcc_lokavaluto_app_connection.action_wallet_view +#: model:ir.ui.menu,name:lcc_lokavaluto_app_connection.wallets_menu +msgid "Wallets" +msgstr "Portefeuilles" + #. module: lcc_lokavaluto_app_connection #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_partner_app msgid "blocked wallet(s)" msgstr "portfeuille(s) bloqué(s)" +#. module: lcc_lokavaluto_app_connection +#: model:ir.model,name:lcc_lokavaluto_app_connection.model_commission_rule +msgid "commission.rule" +msgstr "règle de commissin" + #. module: lcc_lokavaluto_app_connection #: model:ir.model,name:lcc_lokavaluto_app_connection.model_create_credit_request msgid "create Credit Request" @@ -581,6 +865,11 @@ msgstr "créer un demande de chargement" msgid "credit.request" msgstr "" +#. module: lcc_lokavaluto_app_connection +#: model:ir.model,name:lcc_lokavaluto_app_connection.model_debit_request +msgid "debit.request" +msgstr "" + #. module: lcc_lokavaluto_app_connection #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_partner_app msgid "has" @@ -591,19 +880,20 @@ msgstr "a" msgid "inactive wallet(s)." msgstr "portefeuille(s) inactif(s)" -#. module: lcc_lokavaluto_app_connection -#: model:product.product,weight_uom_name:lcc_lokavaluto_app_connection.product_product_numeric_lcc -#: model:product.template,weight_uom_name:lcc_lokavaluto_app_connection.product_product_numeric_lcc_product_template -msgid "kg" -msgstr "" - #. module: lcc_lokavaluto_app_connection #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_partner_app -msgid "pending for\n" +msgid "" +"pending for\n" " activation." -msgstr "En attente\n" +msgstr "" +"en attente \n" " d'activation." +#. module: lcc_lokavaluto_app_connection +#: model:ir.model,name:lcc_lokavaluto_app_connection.model_reconversion_rule +msgid "reconversion.rule" +msgstr "règle de reconversion" + #. module: lcc_lokavaluto_app_connection #: model:ir.model,name:lcc_lokavaluto_app_connection.model_res_partner_backend msgid "res.partner.backend" @@ -612,17 +902,22 @@ msgstr "" #. module: lcc_lokavaluto_app_connection #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.view_account_invoice_customer_lcc_form #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.view_order_lcc_form -msgid "units have been\n" +msgid "" +"units have been\n" " credited on" -msgstr "unités ont été\n" +msgstr "" +"unités ont été\n" " créditée" #. module: lcc_lokavaluto_app_connection #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.view_account_invoice_customer_lcc_form #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.view_order_lcc_form -msgid "unités encore à\n" -" créditer" +msgid "" +"units still to\n" +" credit on" msgstr "" +"unités encore\n" +" à créditer" #. module: lcc_lokavaluto_app_connection #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_partner_app diff --git a/lcc_lokavaluto_app_connection/i18n/lcc_lokavaluto_app_connection.pot b/lcc_lokavaluto_app_connection/i18n/lcc_lokavaluto_app_connection.pot index d3dd4931..38c60adf 100644 --- a/lcc_lokavaluto_app_connection/i18n/lcc_lokavaluto_app_connection.pot +++ b/lcc_lokavaluto_app_connection/i18n/lcc_lokavaluto_app_connection.pot @@ -1,14 +1,14 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * lcc_lokavaluto_app_connection +# * lcc_lokavaluto_app_connection # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 12.0\n" +"Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-12-11 20:41+0000\n" -"PO-Revision-Date: 2023-12-11 20:41+0000\n" -"Last-Translator: <>\n" +"POT-Creation-Date: 2024-06-27 07:04+0000\n" +"PO-Revision-Date: 2024-06-27 07:04+0000\n" +"Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -23,13 +23,15 @@ msgstr "" #. module: lcc_lokavaluto_app_connection #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_partner_app -msgid ". For any maintenance action\n" +msgid "" +". For any maintenance action\n" " concerning these wallets, please contact your currency manager." msgstr "" #. module: lcc_lokavaluto_app_connection #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.portal_my_home_monujo_menu -msgid "
\n" +msgid "" +"
\n" " Applications mobiles:\n" "
" msgstr "" @@ -39,6 +41,11 @@ msgstr "" msgid "Android app download URL" msgstr "" +#. module: lcc_lokavaluto_app_connection +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.res_config_settings_view_form_digital_currency +msgid "Commission Product" +msgstr "" + #. module: lcc_lokavaluto_app_connection #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.res_config_settings_view_form_digital_currency msgid "Web application URL" @@ -51,7 +58,8 @@ msgstr "" #. module: lcc_lokavaluto_app_connection #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.credit_request_view_form -msgid "An error status doesn't always mean the credit request\n" +msgid "" +"An error status doesn't always mean the credit request\n" " failed.
Before trying again to credit the wallet,\n" " please check on the transactions database that the request\n" " has not successed." @@ -79,37 +87,97 @@ msgid "Activate top up on Comchain without Admin validation." msgstr "" #. module: lcc_lokavaluto_app_connection +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule__active +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__active +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_reconversion_rule__active #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__active -#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_backend_view_search -#: selection:res.partner.backend,status:0 +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__res_partner_backend__status__active +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.commission_rule_view_search +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.reconversion_rule_view_search +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_view_search msgid "Active" msgstr "" #. module: lcc_lokavaluto_app_connection #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_create_credit_request__amount #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__amount +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__amount msgid "Amount" msgstr "" +#. module: lcc_lokavaluto_app_connection +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.commission_rule_view_form +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.commission_rule_view_search +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.reconversion_rule_view_form +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.reconversion_rule_view_search +msgid "Archived" +msgstr "" + +#. module: lcc_lokavaluto_app_connection +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.reconversion_rule_view_form +msgid "Authorisation" +msgstr "" + #. module: lcc_lokavaluto_app_connection #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.res_config_settings_view_form_digital_currency msgid "Automatic Top Up" msgstr "" #. module: lcc_lokavaluto_app_connection -#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_backend_view_search -#: selection:res.partner.backend,status:0 +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__res_partner_backend__status__blocked +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_view_search msgid "Blocked" msgstr "" +#. module: lcc_lokavaluto_app_connection +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule__calculation_rule +msgid "Calculation Rule" +msgstr "" + +#. module: lcc_lokavaluto_app_connection +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.commission_rule_view_form +msgid "Calculation process" +msgstr "" + #. module: lcc_lokavaluto_app_connection #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.create_credit_request_wizard_view_form msgid "Cancel" msgstr "" #. module: lcc_lokavaluto_app_connection -#: selection:res.partner.backend,type:0 -msgid "Comchain" +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__commission_move_state__cancelled +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__debit_move_state__cancelled +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__state__cancelled +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_search +msgid "Cancelled" +msgstr "" + +#. module: lcc_lokavaluto_app_connection +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__commission_move_id +msgid "Commission Invoice" +msgstr "" + +#. module: lcc_lokavaluto_app_connection +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__commission_move_state +msgid "Commission Invoice State" +msgstr "" + +#. module: lcc_lokavaluto_app_connection +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_company__commission_product_id +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_config_settings__commission_product_id +msgid "Commission Product" +msgstr "" + +#. module: lcc_lokavaluto_app_connection +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.commission_rule_view_form +msgid "Commission Rule" +msgstr "" + +#. module: lcc_lokavaluto_app_connection +#: model:ir.actions.act_window,name:lcc_lokavaluto_app_connection.action_commission_rule +#: model:ir.ui.menu,name:lcc_lokavaluto_app_connection.commission_rule_menu +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.commission_rule_view_tree +msgid "Commission Rules" msgstr "" #. module: lcc_lokavaluto_app_connection @@ -117,19 +185,31 @@ msgstr "" msgid "Companies" msgstr "" +#. module: lcc_lokavaluto_app_connection +#: model:ir.actions.server,name:lcc_lokavaluto_app_connection.ir_cron_import_new_digital_currency_debit_requests_ir_actions_server +#: model:ir.cron,cron_name:lcc_lokavaluto_app_connection.ir_cron_import_new_digital_currency_debit_requests +msgid "Company: import new digital currency debit requests" +msgstr "" + #. module: lcc_lokavaluto_app_connection #: model:ir.model,name:lcc_lokavaluto_app_connection.model_res_config_settings msgid "Config Settings" msgstr "" +#. module: lcc_lokavaluto_app_connection +#: model:ir.ui.menu,name:lcc_lokavaluto_app_connection.menu_config_digital_currency +msgid "Configuration" +msgstr "" + #. module: lcc_lokavaluto_app_connection #: model:ir.model,name:lcc_lokavaluto_app_connection.model_res_partner -#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_backend_view_search +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_view_search msgid "Contact" msgstr "" #. module: lcc_lokavaluto_app_connection #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.credit_request_view_form +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_form msgid "Content" msgstr "" @@ -143,21 +223,57 @@ msgstr "" msgid "Create Credit Request" msgstr "" +#. module: lcc_lokavaluto_app_connection +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_form +msgid "Create Invoices" +msgstr "" + #. module: lcc_lokavaluto_app_connection #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.create_credit_request_wizard_view_form msgid "Create a credit request" msgstr "" #. module: lcc_lokavaluto_app_connection +#: model_terms:ir.actions.act_window,help:lcc_lokavaluto_app_connection.action_commission_rule +msgid "Create a new commission rule." +msgstr "" + +#. module: lcc_lokavaluto_app_connection +#: model_terms:ir.actions.act_window,help:lcc_lokavaluto_app_connection.action_credit_request +msgid "Create a new credit request." +msgstr "" + +#. module: lcc_lokavaluto_app_connection +#: model_terms:ir.actions.act_window,help:lcc_lokavaluto_app_connection.action_debit_request +msgid "Create a new debit request." +msgstr "" + +#. module: lcc_lokavaluto_app_connection +#: model_terms:ir.actions.act_window,help:lcc_lokavaluto_app_connection.action_reconversion_rule +msgid "Create a new reconversion rule." +msgstr "" + +#. module: lcc_lokavaluto_app_connection +#: model_terms:ir.actions.act_window,help:lcc_lokavaluto_app_connection.action_wallet_view +msgid "Create a new wallets." +msgstr "" + +#. module: lcc_lokavaluto_app_connection +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule__create_uid #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_create_credit_request__create_uid #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__create_uid +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__create_uid +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_reconversion_rule__create_uid #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__create_uid msgid "Created by" msgstr "" #. module: lcc_lokavaluto_app_connection +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule__create_date #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_create_credit_request__create_date #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__create_date +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__create_date +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_reconversion_rule__create_date #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__create_date msgid "Created on" msgstr "" @@ -171,16 +287,38 @@ msgstr "" #. module: lcc_lokavaluto_app_connection #: model:ir.actions.act_window,name:lcc_lokavaluto_app_connection.action_credit_request -#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_invoice__credit_request_ids +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_bank_statement_line__credit_request_ids +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_move__credit_request_ids +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_payment__credit_request_ids #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_sale_order__credit_request_ids -#: model:ir.ui.menu,name:lcc_lokavaluto_app_connection.credit_request_tree_menu +#: model:ir.ui.menu,name:lcc_lokavaluto_app_connection.credit_requests_menu #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.credit_request_view_tree msgid "Credit Requests" msgstr "" #. module: lcc_lokavaluto_app_connection -#: selection:res.partner.backend,type:0 -msgid "Cyclos" +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__debit_move_id +msgid "Debit Invoice" +msgstr "" + +#. module: lcc_lokavaluto_app_connection +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__debit_move_state +msgid "Debit Invoice State" +msgstr "" + +#. module: lcc_lokavaluto_app_connection +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_form +msgid "Debit Request" +msgstr "" + +#. module: lcc_lokavaluto_app_connection +#: model:ir.actions.act_window,name:lcc_lokavaluto_app_connection.action_debit_request +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_bank_statement_line__debit_request_ids +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_move__debit_request_ids +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_payment__debit_request_ids +#: model:ir.ui.menu,name:lcc_lokavaluto_app_connection.debit_requests_menu +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_tree +msgid "Debit Requests" msgstr "" #. module: lcc_lokavaluto_app_connection @@ -188,28 +326,60 @@ msgstr "" msgid "Digital Currency" msgstr "" +#. module: lcc_lokavaluto_app_connection +#: model:product.template,name:lcc_lokavaluto_app_connection.product_product_reconversion_product_template +msgid "Digital Currency Reconversion" +msgstr "" + +#. module: lcc_lokavaluto_app_connection +#: model:product.template,name:lcc_lokavaluto_app_connection.product_product_reconversion_commission_product_template +msgid "Digital Currency Reconversion Commission" +msgstr "" + +#. module: lcc_lokavaluto_app_connection +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_form_view +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_view_tree +msgid "Digital Currency Wallet" +msgstr "" + +#. module: lcc_lokavaluto_app_connection +#: model:ir.ui.menu,name:lcc_lokavaluto_app_connection.menu_digital_currencies +msgid "Digital currencies" +msgstr "" + #. module: lcc_lokavaluto_app_connection #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.res_config_settings_view_form_digital_currency msgid "Digital currency application configuration" msgstr "" #. module: lcc_lokavaluto_app_connection +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule__display_name #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_create_credit_request__display_name #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__display_name +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__display_name +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_reconversion_rule__display_name #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__display_name msgid "Display Name" msgstr "" #. module: lcc_lokavaluto_app_connection -#: selection:account.invoice,global_credit_status:0 -#: selection:credit.request,state:0 +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__account_move__global_credit_status__done +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__credit_request__state__done +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__sale_order__global_credit_status__done #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.credit_request_view_search -#: selection:sale.order,global_credit_status:0 msgid "Done" msgstr "" #. module: lcc_lokavaluto_app_connection -#: selection:credit.request,state:0 +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__commission_move_state__draft +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__debit_move_state__draft +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__state__draft +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_search +msgid "Draft" +msgstr "" + +#. module: lcc_lokavaluto_app_connection +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__credit_request__state__error #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.credit_request_view_search msgid "Error" msgstr "" @@ -225,111 +395,126 @@ msgid "Financial backend general configuration" msgstr "" #. module: lcc_lokavaluto_app_connection -#: model:product.product,name:lcc_lokavaluto_app_connection.product_product_numeric_lcc +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__commission_rule__calculation_rule__fix +msgid "Fix amount" +msgstr "" + +#. module: lcc_lokavaluto_app_connection +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.commission_rule_view_search +msgid "Fix rules" +msgstr "" + +#. module: lcc_lokavaluto_app_connection #: model:product.template,name:lcc_lokavaluto_app_connection.product_product_numeric_lcc_product_template msgid "Generic Numeric LCC" msgstr "" #. module: lcc_lokavaluto_app_connection -#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_invoice__global_credit_status +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_bank_statement_line__global_credit_status +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_move__global_credit_status +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_payment__global_credit_status #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_sale_order__global_credit_status msgid "Global Credit Status" msgstr "" #. module: lcc_lokavaluto_app_connection -#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_invoice__has_numeric_lcc_products +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_bank_statement_line__has_numeric_lcc_products +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_move__has_numeric_lcc_products +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_payment__has_numeric_lcc_products #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_sale_order__has_numeric_lcc_products msgid "Has lcc numeric products" msgstr "" #. module: lcc_lokavaluto_app_connection +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule__id #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_create_credit_request__id #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__id +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__id +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_reconversion_rule__id #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__id msgid "ID" msgstr "" #. module: lcc_lokavaluto_app_connection -#: code:addons/lcc_lokavaluto_app_connection/controllers/portal.py:49 -#, python-format -msgid "If we store your payment information on our server, subscription payments will be made automatically." -msgstr "" - -#. module: lcc_lokavaluto_app_connection -#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_backend_view_search -#: selection:res.partner.backend,status:0 +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__res_partner_backend__status__inactive +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_view_search msgid "Inactive" msgstr "" #. module: lcc_lokavaluto_app_connection -#: model:ir.model,name:lcc_lokavaluto_app_connection.model_account_invoice -msgid "Invoice" +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__state__invoiced +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_search +msgid "Invoiced" msgstr "" #. module: lcc_lokavaluto_app_connection -#: model:ir.model,name:lcc_lokavaluto_app_connection.model_account_invoice_line -msgid "Invoice Line" +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__is_reconversion_allowed +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_reconversion_rule__is_reconversion_allowed +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__is_reconversion_allowed +msgid "Is Reconversion Allowed?" msgstr "" #. module: lcc_lokavaluto_app_connection -#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_auth_api_key__key -msgid "Key" +#: model:ir.model,name:lcc_lokavaluto_app_connection.model_account_move +msgid "Journal Entry" msgstr "" #. module: lcc_lokavaluto_app_connection -#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_backend_form_view -msgid "LCC Backend" +#: model:ir.model,name:lcc_lokavaluto_app_connection.model_account_move_line +msgid "Journal Item" msgstr "" #. module: lcc_lokavaluto_app_connection -#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_backend_view_tree -msgid "LCC Backends" +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_auth_api_key__key +msgid "Key" msgstr "" #. module: lcc_lokavaluto_app_connection -#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_invoice__global_lcc_amount_credited +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_bank_statement_line__global_lcc_amount_credited +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_move__global_lcc_amount_credited +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_payment__global_lcc_amount_credited #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_sale_order__global_lcc_amount_credited msgid "LCC amount credited" msgstr "" #. module: lcc_lokavaluto_app_connection -#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_invoice__global_lcc_amount_to_credit +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_bank_statement_line__global_lcc_amount_to_credit +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_move__global_lcc_amount_to_credit +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_payment__global_lcc_amount_to_credit #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_sale_order__global_lcc_amount_to_credit msgid "LCC amount to credit" msgstr "" #. module: lcc_lokavaluto_app_connection -#: model:ir.actions.act_window,name:lcc_lokavaluto_app_connection.action_lcc_backends_tree_view -#: model:ir.ui.menu,name:lcc_lokavaluto_app_connection.lcc_backends_tree_menu -msgid "LCC backends" -msgstr "" - -#. module: lcc_lokavaluto_app_connection +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule____last_update #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_create_credit_request____last_update #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request____last_update +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request____last_update +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_reconversion_rule____last_update #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend____last_update msgid "Last Modified on" msgstr "" #. module: lcc_lokavaluto_app_connection +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule__write_uid #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_create_credit_request__write_uid #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__write_uid +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__write_uid +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_reconversion_rule__write_uid #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__write_uid msgid "Last Updated by" msgstr "" #. module: lcc_lokavaluto_app_connection +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule__write_date #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_create_credit_request__write_date #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__write_date +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__write_date +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_reconversion_rule__write_date #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__write_date msgid "Last Updated on" msgstr "" -#. module: lcc_lokavaluto_app_connection -#: model:ir.model,name:lcc_lokavaluto_app_connection.model_crm_lead -msgid "Lead/Opportunity" -msgstr "" - #. module: lcc_lokavaluto_app_connection #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__invoice_id msgid "Linked Invoice" @@ -342,6 +527,7 @@ msgstr "" #. module: lcc_lokavaluto_app_connection #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.credit_request_view_form +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_form msgid "Linked documents" msgstr "" @@ -372,8 +558,10 @@ msgstr "" #. module: lcc_lokavaluto_app_connection #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_auth_api_key__name +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule__name +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_reconversion_rule__name #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__name -#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_backend_view_search +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_view_search msgid "Name" msgstr "" @@ -402,35 +590,38 @@ msgid "Nb Wallets to confirm" msgstr "" #. module: lcc_lokavaluto_app_connection -#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_backend_form_view +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_form_view msgid "New Credit Request" msgstr "" #. module: lcc_lokavaluto_app_connection -#: code:addons/lcc_lokavaluto_app_connection/services/partner_images_services.py:38 -#, python-format -msgid "No image found for partner %s" -msgstr "" - -#. module: lcc_lokavaluto_app_connection -#: model:product.category,name:lcc_lokavaluto_app_connection.product_category_numeric_lcc -msgid "Numeric LCC" +#: model:ir.module.category,name:lcc_lokavaluto_app_connection.module_category_administration_wallets +msgid "Numeric Wallets" msgstr "" #. module: lcc_lokavaluto_app_connection -#: selection:account.invoice,global_credit_status:0 -#: selection:sale.order,global_credit_status:0 +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__account_move__global_credit_status__ongoing +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__sale_order__global_credit_status__ongoing msgid "On going" msgstr "" #. module: lcc_lokavaluto_app_connection -#: selection:credit.request,state:0 +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__credit_request__state__open #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.credit_request_view_search msgid "Open" msgstr "" +#. module: lcc_lokavaluto_app_connection +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__commission_move_state__paid +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__debit_move_state__paid +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__state__paid +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_search +msgid "Paid" +msgstr "" + #. module: lcc_lokavaluto_app_connection #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__partner_id +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__partner_id #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__partner_id msgid "Partner" msgstr "" @@ -441,15 +632,19 @@ msgid "Partner Public Name" msgstr "" #. module: lcc_lokavaluto_app_connection -#: code:addons/lcc_lokavaluto_app_connection/controllers/portal.py:46 -#, python-format -msgid "Pay & Confirm" +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__credit_request__state__pending +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.credit_request_view_search +msgid "Pending" msgstr "" #. module: lcc_lokavaluto_app_connection -#: selection:credit.request,state:0 -#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.credit_request_view_search -msgid "Pending" +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__commission_rule__calculation_rule__percentage +msgid "Percentage" +msgstr "" + +#. module: lcc_lokavaluto_app_connection +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.commission_rule_view_search +msgid "Percentage rules" msgstr "" #. module: lcc_lokavaluto_app_connection @@ -458,21 +653,54 @@ msgid "Portefeuille numérique" msgstr "" #. module: lcc_lokavaluto_app_connection -#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.portal_organization_registration_wallet -#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.portal_private_registration_wallet -#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.website_organization_registration_wallet -msgid "Refuse numeric wallet creation" +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__commission_move_state__posted +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__debit_move_state__posted +msgid "Posted" +msgstr "" + +#. module: lcc_lokavaluto_app_connection +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__state__received +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_search +msgid "Received" +msgstr "" + +#. module: lcc_lokavaluto_app_connection +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.reconversion_rule_view_search +msgid "Reconversion OFF" +msgstr "" + +#. module: lcc_lokavaluto_app_connection +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.reconversion_rule_view_search +msgid "Reconversion ON" +msgstr "" + +#. module: lcc_lokavaluto_app_connection +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.reconversion_rule_view_form +msgid "Reconversion Rule" +msgstr "" + +#. module: lcc_lokavaluto_app_connection +#: model:ir.actions.act_window,name:lcc_lokavaluto_app_connection.action_reconversion_rule +#: model:ir.ui.menu,name:lcc_lokavaluto_app_connection.reconversion_rule_menu +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.reconversion_rule_view_tree +msgid "Reconversion Rules" +msgstr "" + +#. module: lcc_lokavaluto_app_connection +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_form +msgid "" +"Reconversion rules indicate that reconversions are presumed NOT ALLOWED on\n" +" the selected wallet." msgstr "" #. module: lcc_lokavaluto_app_connection -#: code:addons/lcc_lokavaluto_app_connection/models/crm_lead.py:11 -#, python-format -msgid "Refuse the creation of a numeric wallet." +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_form_view +msgid "Reconversions are NOT allowed on this wallet." msgstr "" #. module: lcc_lokavaluto_app_connection -#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_crm_lead__refuse_numeric_wallet_creation -msgid "Refuser la création d'un portefeuille numérique." +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_form_view +msgid "Reconversions are allowed on this wallet." msgstr "" #. module: lcc_lokavaluto_app_connection @@ -482,7 +710,12 @@ msgstr "" #. module: lcc_lokavaluto_app_connection #: model:ir.model,name:lcc_lokavaluto_app_connection.model_sale_order -msgid "Sale Order" +msgid "Sales Order" +msgstr "" + +#. module: lcc_lokavaluto_app_connection +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.commission_rule_view_search +msgid "Search commission rules" msgstr "" #. module: lcc_lokavaluto_app_connection @@ -491,12 +724,23 @@ msgid "Search credit requests" msgstr "" #. module: lcc_lokavaluto_app_connection -#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_backend_view_search +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_search +msgid "Search debit requests" +msgstr "" + +#. module: lcc_lokavaluto_app_connection +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.reconversion_rule_view_search +msgid "Search reconversion rules" +msgstr "" + +#. module: lcc_lokavaluto_app_connection +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_view_search msgid "Search wallets" msgstr "" #. module: lcc_lokavaluto_app_connection #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__state +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__state msgid "State" msgstr "" @@ -507,31 +751,49 @@ msgstr "" #. module: lcc_lokavaluto_app_connection #: model:ir.model.fields,help:lcc_lokavaluto_app_connection.field_auth_api_key__key -msgid "The API key. Keep the default value in this field if it is\n" +msgid "" +"The API key. Enter a dummy value in this field if it is\n" " obtained from the server environment configuration." msgstr "" #. module: lcc_lokavaluto_app_connection -#: selection:res.partner.backend,status:0 +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__res_partner_backend__status__to_confirm msgid "To Confirm" msgstr "" #. module: lcc_lokavaluto_app_connection -#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_backend_view_search +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_view_search msgid "To confirm" msgstr "" #. module: lcc_lokavaluto_app_connection -#: selection:account.invoice,global_credit_status:0 -#: selection:sale.order,global_credit_status:0 +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__account_move__global_credit_status__todo +#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__sale_order__global_credit_status__todo msgid "To do" msgstr "" +#. module: lcc_lokavaluto_app_connection +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__transaction_id +msgid "Transaction ID" +msgstr "" + +#. module: lcc_lokavaluto_app_connection +#: model:ir.model.constraint,message:lcc_lokavaluto_app_connection.constraint_debit_request_transaction_id_uniq +msgid "" +"Transaction ID must be unique, a request already exists with this " +"transaction ID!" +msgstr "" + #. module: lcc_lokavaluto_app_connection #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__transaction_data msgid "Transaction Message" msgstr "" +#. module: lcc_lokavaluto_app_connection +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__transaction_timestamp +msgid "Transaction Timestamp" +msgstr "" + #. module: lcc_lokavaluto_app_connection #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.credit_request_view_form msgid "Try again" @@ -539,22 +801,30 @@ msgstr "" #. module: lcc_lokavaluto_app_connection #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__type -#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_backend_view_search +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_view_search msgid "Type" msgstr "" #. module: lcc_lokavaluto_app_connection -#: model:product.product,uom_name:lcc_lokavaluto_app_connection.product_product_numeric_lcc -#: model:product.template,uom_name:lcc_lokavaluto_app_connection.product_product_numeric_lcc_product_template -msgid "Unit(s)" +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule__calculation_value +msgid "Value" msgstr "" #. module: lcc_lokavaluto_app_connection #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_create_credit_request__wallet_id #: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__wallet_id +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__wallet_id msgid "Wallet" msgstr "" +#. module: lcc_lokavaluto_app_connection +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule__wallet_domain +#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_reconversion_rule__wallet_domain +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.commission_rule_view_form +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.reconversion_rule_view_form +msgid "Wallet Domain" +msgstr "" + #. module: lcc_lokavaluto_app_connection #: model:res.groups,name:lcc_lokavaluto_app_connection.group_wallet_accounts_manager msgid "Wallet accounts manager" @@ -562,7 +832,13 @@ msgstr "" #. module: lcc_lokavaluto_app_connection #: model:res.groups,name:lcc_lokavaluto_app_connection.group_wallet_full_manager -msgid "Wallet_full_manager" +msgid "Wallet full manager" +msgstr "" + +#. module: lcc_lokavaluto_app_connection +#: model:ir.actions.act_window,name:lcc_lokavaluto_app_connection.action_wallet_view +#: model:ir.ui.menu,name:lcc_lokavaluto_app_connection.wallets_menu +msgid "Wallets" msgstr "" #. module: lcc_lokavaluto_app_connection @@ -570,6 +846,11 @@ msgstr "" msgid "blocked wallet(s)" msgstr "" +#. module: lcc_lokavaluto_app_connection +#: model:ir.model,name:lcc_lokavaluto_app_connection.model_commission_rule +msgid "commission.rule" +msgstr "" + #. module: lcc_lokavaluto_app_connection #: model:ir.model,name:lcc_lokavaluto_app_connection.model_create_credit_request msgid "create Credit Request" @@ -580,6 +861,11 @@ msgstr "" msgid "credit.request" msgstr "" +#. module: lcc_lokavaluto_app_connection +#: model:ir.model,name:lcc_lokavaluto_app_connection.model_debit_request +msgid "debit.request" +msgstr "" + #. module: lcc_lokavaluto_app_connection #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_partner_app msgid "has" @@ -591,15 +877,15 @@ msgid "inactive wallet(s)." msgstr "" #. module: lcc_lokavaluto_app_connection -#: model:product.product,weight_uom_name:lcc_lokavaluto_app_connection.product_product_numeric_lcc -#: model:product.template,weight_uom_name:lcc_lokavaluto_app_connection.product_product_numeric_lcc_product_template -msgid "kg" +#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_partner_app +msgid "" +"pending for\n" +" activation." msgstr "" #. module: lcc_lokavaluto_app_connection -#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_partner_app -msgid "pending for\n" -" activation." +#: model:ir.model,name:lcc_lokavaluto_app_connection.model_reconversion_rule +msgid "reconversion.rule" msgstr "" #. module: lcc_lokavaluto_app_connection @@ -610,14 +896,16 @@ msgstr "" #. module: lcc_lokavaluto_app_connection #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.view_account_invoice_customer_lcc_form #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.view_order_lcc_form -msgid "units have been\n" +msgid "" +"units have been\n" " credited on" msgstr "" #. module: lcc_lokavaluto_app_connection #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.view_account_invoice_customer_lcc_form #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.view_order_lcc_form -msgid "units still to\n" +msgid "" +"units still to\n" " credit on" msgstr "" @@ -625,4 +913,3 @@ msgstr "" #: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_partner_app msgid "wallet(s)" msgstr "" - diff --git a/lcc_lokavaluto_app_connection/views/menu.xml b/lcc_lokavaluto_app_connection/views/menu.xml index 7e0a9cd1..5fd8123c 100644 --- a/lcc_lokavaluto_app_connection/views/menu.xml +++ b/lcc_lokavaluto_app_connection/views/menu.xml @@ -9,7 +9,7 @@

- Create a new wallets. + Create a new wallet.

From 45712859c455105f64b8d186de84f25568253679 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phan=20Sainl=C3=A9ger?= Date: Thu, 27 Jun 2024 10:19:34 +0200 Subject: [PATCH 18/24] [I18N] lcc_comchain_base: update french translations --- lcc_comchain_base/i18n/fr.po | 71 ++++++++++---------- lcc_comchain_base/i18n/lcc_comchain_base.pot | 57 ++++++---------- 2 files changed, 56 insertions(+), 72 deletions(-) diff --git a/lcc_comchain_base/i18n/fr.po b/lcc_comchain_base/i18n/fr.po index 2112b47b..794e5350 100644 --- a/lcc_comchain_base/i18n/fr.po +++ b/lcc_comchain_base/i18n/fr.po @@ -1,20 +1,25 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * lcc_comchain_base +# * lcc_comchain_base # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 12.0\n" +"Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-12-11 21:24+0000\n" -"PO-Revision-Date: 2023-12-11 21:24+0000\n" -"Last-Translator: <>\n" +"POT-Creation-Date: 2024-06-27 08:13+0000\n" +"PO-Revision-Date: 2024-06-27 08:13+0000\n" +"Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" +#. module: lcc_comchain_base +#: model_terms:ir.ui.view,arch_db:lcc_comchain_base.res_config_settings_view_form_comchain +msgid "Comchain Last block checked" +msgstr "Dernier bloc Comchain vérifié" + #. module: lcc_comchain_base #: model_terms:ir.ui.view,arch_db:lcc_comchain_base.res_config_settings_view_form_comchain msgid "Comchain currency name" @@ -26,12 +31,12 @@ msgid "Address" msgstr "Adresse" #. module: lcc_comchain_base -#: selection:res.partner.backend,comchain_type:0 +#: model:ir.model.fields.selection,name:lcc_comchain_base.selection__res_partner_backend__comchain_type__2 msgid "Admin" msgstr "" #. module: lcc_comchain_base -#: selection:res.partner.backend,type:0 +#: model:ir.model.fields.selection,name:lcc_comchain_base.selection__res_partner_backend__type__comchain msgid "Comchain" msgstr "" @@ -46,7 +51,7 @@ msgid "Comchain service configuration" msgstr "Configuration de Comchain" #. module: lcc_comchain_base -#: model_terms:ir.ui.view,arch_db:lcc_comchain_base.lcc_backend_comchain_form_view +#: model_terms:ir.ui.view,arch_db:lcc_comchain_base.wallet_comchain_form_view msgid "Comchain specific" msgstr "Spécifique Comchain" @@ -56,14 +61,14 @@ msgid "Companies" msgstr "Sociétés" #. module: lcc_comchain_base -#: selection:res.partner.backend,comchain_type:0 +#: model:ir.model.fields.selection,name:lcc_comchain_base.selection__res_partner_backend__comchain_type__1 msgid "Company" msgstr "Société" #. module: lcc_comchain_base #: model:ir.model,name:lcc_comchain_base.model_res_config_settings msgid "Config Settings" -msgstr "Paramètres de config" +msgstr "Paramètres de configuration" #. module: lcc_comchain_base #: model:ir.model,name:lcc_comchain_base.model_res_partner @@ -86,27 +91,39 @@ msgid "Currency name" msgstr "Nom de la monnaie" #. module: lcc_comchain_base -#: model:ir.model,name:lcc_comchain_base.model_account_invoice -msgid "Invoice" -msgstr "Facture" +#: model:ir.model.fields,field_description:lcc_comchain_base.field_res_company__last_block_checked_nb +#: model:ir.model.fields,field_description:lcc_comchain_base.field_res_config_settings__last_block_checked_nb +msgid "Last Block Checked Nb" +msgstr "Nb dernier bloc vérifié" #. module: lcc_comchain_base #: model:ir.model.fields,field_description:lcc_comchain_base.field_res_partner_backend__comchain_credit_max msgid "Max Credit limit" msgstr "Crédit max" +#. module: lcc_comchain_base +#: model:ir.model.fields,field_description:lcc_comchain_base.field_res_company__message_from +#: model:ir.model.fields,field_description:lcc_comchain_base.field_res_config_settings__message_from +msgid "Message from" +msgstr "Message de" + #. module: lcc_comchain_base #: model:ir.model.fields,field_description:lcc_comchain_base.field_res_partner_backend__comchain_message_key msgid "Message keys" msgstr "Clés de message" +#. module: lcc_comchain_base +#: model:ir.model.fields,field_description:lcc_comchain_base.field_res_company__message_to +#: model:ir.model.fields,field_description:lcc_comchain_base.field_res_config_settings__message_to +msgid "Message to" +msgstr "Message à" + #. module: lcc_comchain_base #: model:ir.model.fields,field_description:lcc_comchain_base.field_res_partner_backend__comchain_credit_min msgid "Min Credit limit" msgstr "Crédit min" #. module: lcc_comchain_base -#: model:product.product,name:lcc_comchain_base.product_product_comchain #: model:product.template,name:lcc_comchain_base.product_product_comchain_product_template msgid "Numeric LCC (comchain)" msgstr "MLC Numérique (comchain)" @@ -124,7 +141,7 @@ msgid "Odoo wallet password" msgstr "Mot de pass du portefeuille Odoo" #. module: lcc_comchain_base -#: selection:res.partner.backend,comchain_type:0 +#: model:ir.model.fields.selection,name:lcc_comchain_base.selection__res_partner_backend__comchain_type__0 msgid "Personal" msgstr "Personnel" @@ -146,10 +163,12 @@ msgstr "Sélectionner le contact lié au portefeuille Coffre-fort" #. module: lcc_comchain_base #: model_terms:ir.ui.view,arch_db:lcc_comchain_base.res_config_settings_view_form_comchain -msgid "Select the partners linked to the Safe and Odoo wallets. The\n" +msgid "" +"Select the partners linked to the Safe and Odoo wallets. The\n" " name of these partners will be displayed as the sender of the\n" " top-up." -msgstr "Sélectionner les contacts liés aux portefeuilles Coffre-fort et Odoo. Les\n" +msgstr "" +"Sélectionner les contacts liés aux portefeuilles Coffre-fort et Odoo. Les\n" " noms de ces contacts seront affichés comme source des\n" " chargements." @@ -159,25 +178,7 @@ msgstr "Sélectionner les contacts liés aux portefeuilles Coffre-fort et Odoo. msgid "Type" msgstr "" -#. module: lcc_comchain_base -#: model:product.product,uom_name:lcc_comchain_base.product_product_comchain -#: model:product.template,uom_name:lcc_comchain_base.product_product_comchain_product_template -msgid "Unit(s)" -msgstr "Unité(s)" - -#. module: lcc_comchain_base -#: model:product.category,name:lcc_comchain_base.product_category_comchain -msgid "comchain" -msgstr "" - -#. module: lcc_comchain_base -#: model:product.product,weight_uom_name:lcc_comchain_base.product_product_comchain -#: model:product.template,weight_uom_name:lcc_comchain_base.product_product_comchain_product_template -msgid "kg" -msgstr "" - #. module: lcc_comchain_base #: model:ir.model,name:lcc_comchain_base.model_res_partner_backend msgid "res.partner.backend" msgstr "" - diff --git a/lcc_comchain_base/i18n/lcc_comchain_base.pot b/lcc_comchain_base/i18n/lcc_comchain_base.pot index 360db9fe..1f77cffb 100644 --- a/lcc_comchain_base/i18n/lcc_comchain_base.pot +++ b/lcc_comchain_base/i18n/lcc_comchain_base.pot @@ -1,20 +1,25 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * lcc_comchain_base +# * lcc_comchain_base # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 12.0\n" +"Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-12-11 21:23+0000\n" -"PO-Revision-Date: 2023-12-11 21:23+0000\n" -"Last-Translator: <>\n" +"POT-Creation-Date: 2024-06-27 08:13+0000\n" +"PO-Revision-Date: 2024-06-27 08:13+0000\n" +"Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" +#. module: lcc_comchain_base +#: model_terms:ir.ui.view,arch_db:lcc_comchain_base.res_config_settings_view_form_comchain +msgid "Comchain Last block checked" +msgstr "" + #. module: lcc_comchain_base #: model_terms:ir.ui.view,arch_db:lcc_comchain_base.res_config_settings_view_form_comchain msgid "Comchain currency name" @@ -26,12 +31,12 @@ msgid "Address" msgstr "" #. module: lcc_comchain_base -#: selection:res.partner.backend,comchain_type:0 +#: model:ir.model.fields.selection,name:lcc_comchain_base.selection__res_partner_backend__comchain_type__2 msgid "Admin" msgstr "" #. module: lcc_comchain_base -#: selection:res.partner.backend,type:0 +#: model:ir.model.fields.selection,name:lcc_comchain_base.selection__res_partner_backend__type__comchain msgid "Comchain" msgstr "" @@ -46,7 +51,7 @@ msgid "Comchain service configuration" msgstr "" #. module: lcc_comchain_base -#: model_terms:ir.ui.view,arch_db:lcc_comchain_base.lcc_backend_comchain_form_view +#: model_terms:ir.ui.view,arch_db:lcc_comchain_base.wallet_comchain_form_view msgid "Comchain specific" msgstr "" @@ -56,7 +61,7 @@ msgid "Companies" msgstr "" #. module: lcc_comchain_base -#: selection:res.partner.backend,comchain_type:0 +#: model:ir.model.fields.selection,name:lcc_comchain_base.selection__res_partner_backend__comchain_type__1 msgid "Company" msgstr "" @@ -86,8 +91,9 @@ msgid "Currency name" msgstr "" #. module: lcc_comchain_base -#: model:ir.model,name:lcc_comchain_base.model_account_invoice -msgid "Invoice" +#: model:ir.model.fields,field_description:lcc_comchain_base.field_res_company__last_block_checked_nb +#: model:ir.model.fields,field_description:lcc_comchain_base.field_res_config_settings__last_block_checked_nb +msgid "Last Block Checked Nb" msgstr "" #. module: lcc_comchain_base @@ -118,7 +124,6 @@ msgid "Min Credit limit" msgstr "" #. module: lcc_comchain_base -#: model:product.product,name:lcc_comchain_base.product_product_comchain #: model:product.template,name:lcc_comchain_base.product_product_comchain_product_template msgid "Numeric LCC (comchain)" msgstr "" @@ -136,7 +141,7 @@ msgid "Odoo wallet password" msgstr "" #. module: lcc_comchain_base -#: selection:res.partner.backend,comchain_type:0 +#: model:ir.model.fields.selection,name:lcc_comchain_base.selection__res_partner_backend__comchain_type__0 msgid "Personal" msgstr "" @@ -146,11 +151,6 @@ msgstr "" msgid "Safe Wallet Partner" msgstr "" -#. module: lcc_comchain_base -#: model:ir.model,name:lcc_comchain_base.model_sale_order -msgid "Sale Order" -msgstr "" - #. module: lcc_comchain_base #: model_terms:ir.ui.view,arch_db:lcc_comchain_base.res_config_settings_view_form_comchain msgid "Select partner linked to Odoo wallet." @@ -163,7 +163,8 @@ msgstr "" #. module: lcc_comchain_base #: model_terms:ir.ui.view,arch_db:lcc_comchain_base.res_config_settings_view_form_comchain -msgid "Select the partners linked to the Safe and Odoo wallets. The\n" +msgid "" +"Select the partners linked to the Safe and Odoo wallets. The\n" " name of these partners will be displayed as the sender of the\n" " top-up." msgstr "" @@ -174,25 +175,7 @@ msgstr "" msgid "Type" msgstr "" -#. module: lcc_comchain_base -#: model:product.product,uom_name:lcc_comchain_base.product_product_comchain -#: model:product.template,uom_name:lcc_comchain_base.product_product_comchain_product_template -msgid "Unit(s)" -msgstr "" - -#. module: lcc_comchain_base -#: model:product.category,name:lcc_comchain_base.product_category_comchain -msgid "comchain" -msgstr "" - -#. module: lcc_comchain_base -#: model:product.product,weight_uom_name:lcc_comchain_base.product_product_comchain -#: model:product.template,weight_uom_name:lcc_comchain_base.product_product_comchain_product_template -msgid "kg" -msgstr "" - #. module: lcc_comchain_base #: model:ir.model,name:lcc_comchain_base.model_res_partner_backend msgid "res.partner.backend" msgstr "" - From 962b02885c17a30005235d071b553af2f97c4c21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phan=20Sainl=C3=A9ger?= Date: Thu, 27 Jun 2024 10:24:43 +0200 Subject: [PATCH 19/24] [I18N] lcc_cyclos_base: update french translations --- lcc_cyclos_base/i18n/fr.po | 78 ++++++++++++------------ lcc_cyclos_base/i18n/lcc_cyclos_base.pot | 72 +++++++++++----------- 2 files changed, 75 insertions(+), 75 deletions(-) diff --git a/lcc_cyclos_base/i18n/fr.po b/lcc_cyclos_base/i18n/fr.po index 03a78326..1772a9bc 100644 --- a/lcc_cyclos_base/i18n/fr.po +++ b/lcc_cyclos_base/i18n/fr.po @@ -1,20 +1,25 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * lcc_cyclos_base +# * lcc_cyclos_base # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 12.0\n" +"Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-12-11 21:22+0000\n" -"PO-Revision-Date: 2023-12-11 21:22+0000\n" -"Last-Translator: <>\n" +"POT-Creation-Date: 2024-06-27 08:21+0000\n" +"PO-Revision-Date: 2024-06-27 08:21+0000\n" +"Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" +#. module: lcc_cyclos_base +#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.res_config_settings_view_form_cyclos +msgid "Cyclos Debit Wallet Partner" +msgstr "Contact du portefeuille de débit Cyclos" + #. module: lcc_cyclos_base #: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.res_config_settings_view_form_cyclos msgid "Cyclos server Login" @@ -31,12 +36,17 @@ msgid "Cyclos server URL" msgstr "URL Cyclos serveur" #. module: lcc_cyclos_base -#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.lcc_backend_cyclos_form_view +#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.res_config_settings_view_form_cyclos +msgid "Date of last reconversion check" +msgstr "Date de la dernière vérification des reconversions" + +#. module: lcc_cyclos_base +#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.wallet_cyclos_form_view msgid "Activate Cyclos Wallet" msgstr "Activer le portefeuille" #. module: lcc_cyclos_base -#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.lcc_backend_cyclos_form_view +#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.wallet_cyclos_form_view msgid "Block Cyclos Wallet" msgstr "Bloquer le portefeuille" @@ -53,7 +63,7 @@ msgstr "Sociétés" #. module: lcc_cyclos_base #: model:ir.model,name:lcc_cyclos_base.model_res_config_settings msgid "Config Settings" -msgstr "Paramètres de config" +msgstr "Paramètres de configuration" #. module: lcc_cyclos_base #: model:ir.model,name:lcc_cyclos_base.model_res_partner @@ -66,11 +76,16 @@ msgid "Create new Cyclos Wallet" msgstr "Créer un portefeuille Cyclos" #. module: lcc_cyclos_base -#: model:product.category,name:lcc_cyclos_base.product_category_cyclos -#: selection:res.partner.backend,type:0 +#: model:ir.model.fields.selection,name:lcc_cyclos_base.selection__res_partner_backend__type__cyclos msgid "Cyclos" msgstr "" +#. module: lcc_cyclos_base +#: model:ir.model.fields,field_description:lcc_cyclos_base.field_res_company__cyclos_debit_wallet_partner +#: model:ir.model.fields,field_description:lcc_cyclos_base.field_res_config_settings__cyclos_debit_wallet_partner +msgid "Cyclos Debit Wallet Partner" +msgstr "Contact portefeuille de débit Cyclos" + #. module: lcc_cyclos_base #: model:ir.model.fields,field_description:lcc_cyclos_base.field_res_partner_backend__cyclos_status msgid "Cyclos Status" @@ -92,19 +107,20 @@ msgid "Cyclos service configuration" msgstr "Configuration de Cyclos" #. module: lcc_cyclos_base -#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.lcc_backend_cyclos_form_view +#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.wallet_cyclos_form_view msgid "Cyclos specific" msgstr "Spécifique Cyclos" #. module: lcc_cyclos_base -#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.lcc_backend_cyclos_form_view +#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.wallet_cyclos_form_view msgid "Disable Cyclos Wallet" msgstr "Désactiver le portefeuille" #. module: lcc_cyclos_base -#: model:ir.model,name:lcc_cyclos_base.model_account_invoice -msgid "Invoice" -msgstr "Facture" +#: model:ir.model.fields,field_description:lcc_cyclos_base.field_res_company__cyclos_date_last_reconversion_check +#: model:ir.model.fields,field_description:lcc_cyclos_base.field_res_config_settings__cyclos_date_last_reconversion_check +msgid "Last reconversion date on Cyclos" +msgstr "Dernière date de reconversion sur Cyclos" #. module: lcc_cyclos_base #: model:ir.model.fields,field_description:lcc_cyclos_base.field_res_company__cyclos_server_login @@ -113,7 +129,6 @@ msgid "Login for cyclos server" msgstr "Login pour le serveur Cyclos" #. module: lcc_cyclos_base -#: model:product.product,name:lcc_cyclos_base.product_product_cyclos #: model:product.template,name:lcc_cyclos_base.product_product_cyclos_product_template msgid "Numeric LCC (Cyclos)" msgstr "MLC Numérique (Cyclos)" @@ -125,28 +140,20 @@ msgid "Password for cyclos server" msgstr "Mot de passe pour le serveur Cyclos" #. module: lcc_cyclos_base -#: code:addons/lcc_cyclos_base/models/res_users.py:26 -#: code:addons/lcc_cyclos_base/models/res_users.py:37 +#. odoo-python +#: code:addons/lcc_cyclos_base/models/res_users.py:0 +#: code:addons/lcc_cyclos_base/models/res_users.py:0 +#: code:addons/lcc_cyclos_base/models/res_users.py:0 +#: code:addons/lcc_cyclos_base/models/res_users.py:0 #, python-format msgid "Password must contain only the following characters: %s" msgstr "Le mot de passe doit contenir seulement les caractères suivants : %s" -#. module: lcc_cyclos_base -#: model:ir.model,name:lcc_cyclos_base.model_sale_order -msgid "Sale Order" -msgstr "Bon de commande" - #. module: lcc_cyclos_base #: model:ir.model.fields,field_description:lcc_cyclos_base.field_res_partner_backend__type msgid "Type" msgstr "" -#. module: lcc_cyclos_base -#: model:product.product,uom_name:lcc_cyclos_base.product_product_cyclos -#: model:product.template,uom_name:lcc_cyclos_base.product_product_cyclos_product_template -msgid "Unit(s)" -msgstr "Unité(s)" - #. module: lcc_cyclos_base #: model:ir.model.fields,field_description:lcc_cyclos_base.field_res_company__cyclos_server_url msgid "Url for cyclos server" @@ -159,22 +166,15 @@ msgstr "URL pour le serveur Cyclos" #. module: lcc_cyclos_base #: model:ir.model,name:lcc_cyclos_base.model_res_users -msgid "Users" -msgstr "Utilisateurs" +msgid "User" +msgstr "Utilisateur" #. module: lcc_cyclos_base -#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.lcc_backend_cyclos_form_view +#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.wallet_cyclos_form_view msgid "Validate Cyclos Wallet" msgstr "Activer le portefeuille" -#. module: lcc_cyclos_base -#: model:product.product,weight_uom_name:lcc_cyclos_base.product_product_cyclos -#: model:product.template,weight_uom_name:lcc_cyclos_base.product_product_cyclos_product_template -msgid "kg" -msgstr "" - #. module: lcc_cyclos_base #: model:ir.model,name:lcc_cyclos_base.model_res_partner_backend msgid "res.partner.backend" msgstr "" - diff --git a/lcc_cyclos_base/i18n/lcc_cyclos_base.pot b/lcc_cyclos_base/i18n/lcc_cyclos_base.pot index dbabb07c..9ded3104 100644 --- a/lcc_cyclos_base/i18n/lcc_cyclos_base.pot +++ b/lcc_cyclos_base/i18n/lcc_cyclos_base.pot @@ -1,20 +1,25 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * lcc_cyclos_base +# * lcc_cyclos_base # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 12.0\n" +"Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-12-11 21:20+0000\n" -"PO-Revision-Date: 2023-12-11 21:20+0000\n" -"Last-Translator: <>\n" +"POT-Creation-Date: 2024-06-27 08:20+0000\n" +"PO-Revision-Date: 2024-06-27 08:20+0000\n" +"Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" +#. module: lcc_cyclos_base +#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.res_config_settings_view_form_cyclos +msgid "Cyclos Debit Wallet Partner" +msgstr "" + #. module: lcc_cyclos_base #: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.res_config_settings_view_form_cyclos msgid "Cyclos server Login" @@ -31,12 +36,17 @@ msgid "Cyclos server URL" msgstr "" #. module: lcc_cyclos_base -#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.lcc_backend_cyclos_form_view +#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.res_config_settings_view_form_cyclos +msgid "Date of last reconversion check" +msgstr "" + +#. module: lcc_cyclos_base +#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.wallet_cyclos_form_view msgid "Activate Cyclos Wallet" msgstr "" #. module: lcc_cyclos_base -#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.lcc_backend_cyclos_form_view +#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.wallet_cyclos_form_view msgid "Block Cyclos Wallet" msgstr "" @@ -66,11 +76,16 @@ msgid "Create new Cyclos Wallet" msgstr "" #. module: lcc_cyclos_base -#: model:product.category,name:lcc_cyclos_base.product_category_cyclos -#: selection:res.partner.backend,type:0 +#: model:ir.model.fields.selection,name:lcc_cyclos_base.selection__res_partner_backend__type__cyclos msgid "Cyclos" msgstr "" +#. module: lcc_cyclos_base +#: model:ir.model.fields,field_description:lcc_cyclos_base.field_res_company__cyclos_debit_wallet_partner +#: model:ir.model.fields,field_description:lcc_cyclos_base.field_res_config_settings__cyclos_debit_wallet_partner +msgid "Cyclos Debit Wallet Partner" +msgstr "" + #. module: lcc_cyclos_base #: model:ir.model.fields,field_description:lcc_cyclos_base.field_res_partner_backend__cyclos_status msgid "Cyclos Status" @@ -92,18 +107,19 @@ msgid "Cyclos service configuration" msgstr "" #. module: lcc_cyclos_base -#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.lcc_backend_cyclos_form_view +#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.wallet_cyclos_form_view msgid "Cyclos specific" msgstr "" #. module: lcc_cyclos_base -#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.lcc_backend_cyclos_form_view +#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.wallet_cyclos_form_view msgid "Disable Cyclos Wallet" msgstr "" #. module: lcc_cyclos_base -#: model:ir.model,name:lcc_cyclos_base.model_account_invoice -msgid "Invoice" +#: model:ir.model.fields,field_description:lcc_cyclos_base.field_res_company__cyclos_date_last_reconversion_check +#: model:ir.model.fields,field_description:lcc_cyclos_base.field_res_config_settings__cyclos_date_last_reconversion_check +msgid "Last reconversion date on Cyclos" msgstr "" #. module: lcc_cyclos_base @@ -113,7 +129,6 @@ msgid "Login for cyclos server" msgstr "" #. module: lcc_cyclos_base -#: model:product.product,name:lcc_cyclos_base.product_product_cyclos #: model:product.template,name:lcc_cyclos_base.product_product_cyclos_product_template msgid "Numeric LCC (Cyclos)" msgstr "" @@ -125,28 +140,20 @@ msgid "Password for cyclos server" msgstr "" #. module: lcc_cyclos_base -#: code:addons/lcc_cyclos_base/models/res_users.py:26 -#: code:addons/lcc_cyclos_base/models/res_users.py:37 +#. odoo-python +#: code:addons/lcc_cyclos_base/models/res_users.py:0 +#: code:addons/lcc_cyclos_base/models/res_users.py:0 +#: code:addons/lcc_cyclos_base/models/res_users.py:0 +#: code:addons/lcc_cyclos_base/models/res_users.py:0 #, python-format msgid "Password must contain only the following characters: %s" msgstr "" -#. module: lcc_cyclos_base -#: model:ir.model,name:lcc_cyclos_base.model_sale_order -msgid "Sale Order" -msgstr "" - #. module: lcc_cyclos_base #: model:ir.model.fields,field_description:lcc_cyclos_base.field_res_partner_backend__type msgid "Type" msgstr "" -#. module: lcc_cyclos_base -#: model:product.product,uom_name:lcc_cyclos_base.product_product_cyclos -#: model:product.template,uom_name:lcc_cyclos_base.product_product_cyclos_product_template -msgid "Unit(s)" -msgstr "" - #. module: lcc_cyclos_base #: model:ir.model.fields,field_description:lcc_cyclos_base.field_res_company__cyclos_server_url msgid "Url for cyclos server" @@ -159,22 +166,15 @@ msgstr "" #. module: lcc_cyclos_base #: model:ir.model,name:lcc_cyclos_base.model_res_users -msgid "Users" +msgid "User" msgstr "" #. module: lcc_cyclos_base -#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.lcc_backend_cyclos_form_view +#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.wallet_cyclos_form_view msgid "Validate Cyclos Wallet" msgstr "" -#. module: lcc_cyclos_base -#: model:product.product,weight_uom_name:lcc_cyclos_base.product_product_cyclos -#: model:product.template,weight_uom_name:lcc_cyclos_base.product_product_cyclos_product_template -msgid "kg" -msgstr "" - #. module: lcc_cyclos_base #: model:ir.model,name:lcc_cyclos_base.model_res_partner_backend msgid "res.partner.backend" msgstr "" - From 2384064c899b1cd2f5833662f33ae4cba2c8ffb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phan=20Sainl=C3=A9ger?= Date: Thu, 27 Jun 2024 11:03:26 +0200 Subject: [PATCH 20/24] [IMP] lcc_comchain_base: refactor comchain settings view --- lcc_comchain_base/i18n/fr.po | 39 +++++++++++--- lcc_comchain_base/i18n/lcc_comchain_base.pot | 32 +++++++++-- .../views/res_config_settings_view.xml | 54 +++++++++++++------ 3 files changed, 95 insertions(+), 30 deletions(-) diff --git a/lcc_comchain_base/i18n/fr.po b/lcc_comchain_base/i18n/fr.po index 794e5350..6f683a43 100644 --- a/lcc_comchain_base/i18n/fr.po +++ b/lcc_comchain_base/i18n/fr.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-06-27 08:13+0000\n" -"PO-Revision-Date: 2024-06-27 08:13+0000\n" +"POT-Creation-Date: 2024-06-27 08:59+0000\n" +"PO-Revision-Date: 2024-06-27 08:59+0000\n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -20,11 +20,26 @@ msgstr "" msgid "Comchain Last block checked" msgstr "Dernier bloc Comchain vérifié" +#. module: lcc_comchain_base +#: model_terms:ir.ui.view,arch_db:lcc_comchain_base.res_config_settings_view_form_comchain +msgid "Comchain Odoo wallet" +msgstr "PPortefeuille Comchain Odoo" + +#. module: lcc_comchain_base +#: model_terms:ir.ui.view,arch_db:lcc_comchain_base.res_config_settings_view_form_comchain +msgid "Comchain Safe wallet" +msgstr "Portefeuille Comchain Coffre-Fort" + #. module: lcc_comchain_base #: model_terms:ir.ui.view,arch_db:lcc_comchain_base.res_config_settings_view_form_comchain msgid "Comchain currency name" msgstr "Nom de la monnaie Comchain" +#. module: lcc_comchain_base +#: model_terms:ir.ui.view,arch_db:lcc_comchain_base.res_config_settings_view_form_comchain +msgid "Comchain top-up messages" +msgstr "Messages de recharge Comchain" + #. module: lcc_comchain_base #: model:ir.model.fields,field_description:lcc_comchain_base.field_res_partner_backend__comchain_id msgid "Address" @@ -164,13 +179,21 @@ msgstr "Sélectionner le contact lié au portefeuille Coffre-fort" #. module: lcc_comchain_base #: model_terms:ir.ui.view,arch_db:lcc_comchain_base.res_config_settings_view_form_comchain msgid "" -"Select the partners linked to the Safe and Odoo wallets. The\n" -" name of these partners will be displayed as the sender of the\n" -" top-up." +"Select the partner linked to the Safe wallet.\n" +" This wallet will be used for top up and reconversion\n" +" processes." +msgstr "" +"Sélectionner le contact lié au portefeuille Coffre-Fort.\n" +" Ce porteeuille sera utilisé pour les chargements et les reconversions." + +#. module: lcc_comchain_base +#: model_terms:ir.ui.view,arch_db:lcc_comchain_base.res_config_settings_view_form_comchain +msgid "" +"Select the partners linked to the Odoo wallet, that has the\n" +" delegation to perform top-ups from the safe wallet." msgstr "" -"Sélectionner les contacts liés aux portefeuilles Coffre-fort et Odoo. Les\n" -" noms de ces contacts seront affichés comme source des\n" -" chargements." +"Sélectionner le contact lié au portefeuille de Odoo, qui a la\n" +" procuration pour réaliser des chargements depuis le portefeuille Coffre-fort." #. module: lcc_comchain_base #: model:ir.model.fields,field_description:lcc_comchain_base.field_res_partner_backend__comchain_type diff --git a/lcc_comchain_base/i18n/lcc_comchain_base.pot b/lcc_comchain_base/i18n/lcc_comchain_base.pot index 1f77cffb..1258f40a 100644 --- a/lcc_comchain_base/i18n/lcc_comchain_base.pot +++ b/lcc_comchain_base/i18n/lcc_comchain_base.pot @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-06-27 08:13+0000\n" -"PO-Revision-Date: 2024-06-27 08:13+0000\n" +"POT-Creation-Date: 2024-06-27 08:56+0000\n" +"PO-Revision-Date: 2024-06-27 08:56+0000\n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -20,11 +20,26 @@ msgstr "" msgid "Comchain Last block checked" msgstr "" +#. module: lcc_comchain_base +#: model_terms:ir.ui.view,arch_db:lcc_comchain_base.res_config_settings_view_form_comchain +msgid "Comchain Odoo wallet" +msgstr "" + +#. module: lcc_comchain_base +#: model_terms:ir.ui.view,arch_db:lcc_comchain_base.res_config_settings_view_form_comchain +msgid "Comchain Safe wallet" +msgstr "" + #. module: lcc_comchain_base #: model_terms:ir.ui.view,arch_db:lcc_comchain_base.res_config_settings_view_form_comchain msgid "Comchain currency name" msgstr "" +#. module: lcc_comchain_base +#: model_terms:ir.ui.view,arch_db:lcc_comchain_base.res_config_settings_view_form_comchain +msgid "Comchain top-up messages" +msgstr "" + #. module: lcc_comchain_base #: model:ir.model.fields,field_description:lcc_comchain_base.field_res_partner_backend__comchain_id msgid "Address" @@ -164,9 +179,16 @@ msgstr "" #. module: lcc_comchain_base #: model_terms:ir.ui.view,arch_db:lcc_comchain_base.res_config_settings_view_form_comchain msgid "" -"Select the partners linked to the Safe and Odoo wallets. The\n" -" name of these partners will be displayed as the sender of the\n" -" top-up." +"Select the partner linked to the Safe wallet.\n" +" This wallet will be used for top up and reconversion\n" +" processes." +msgstr "" + +#. module: lcc_comchain_base +#: model_terms:ir.ui.view,arch_db:lcc_comchain_base.res_config_settings_view_form_comchain +msgid "" +"Select the partners linked to the Odoo wallet, that has the\n" +" delegation to perform top-ups from the safe wallet." msgstr "" #. module: lcc_comchain_base diff --git a/lcc_comchain_base/views/res_config_settings_view.xml b/lcc_comchain_base/views/res_config_settings_view.xml index 28248cba..ced7f648 100644 --- a/lcc_comchain_base/views/res_config_settings_view.xml +++ b/lcc_comchain_base/views/res_config_settings_view.xml @@ -10,7 +10,7 @@

Comchain service configuration

-
+
Comchain currency name @@ -18,6 +18,9 @@
+
+
+
Comchain Last block checked
@@ -25,40 +28,57 @@
-
+
-
-
-
-
+ Comchain Safe wallet
- Select the partners linked to the Safe and Odoo wallets. The - name of these partners will be displayed as the sender of the - top-up. + Select the partner linked to the Safe wallet. + This wallet will be used for top up and reconversion + processes.
-
+
+
+
+
+
+ Comchain Odoo wallet +
+ Select the partners linked to the Odoo wallet, that has the + delegation to perform top-ups from the safe wallet. +
-
+
+
+
+ Comchain top-up messages +
+
+
+
+
+
From 75028d3d8ce2c8c09fb964b31b5ab14781bc6f60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phan=20Sainl=C3=A9ger?= Date: Thu, 18 Jul 2024 10:34:43 +0200 Subject: [PATCH 21/24] [IMP] lcc_members: remove user types display in user form functionnality move to new add-on user_types_displayed_in_user_form https://github.com/elabore-coop/ux-tools/tree/16.0/user_types_displayed_in_user_form --- lcc_members/__manifest__.py | 1 - lcc_members/views/res_users_views.xml | 18 ------------------ 2 files changed, 19 deletions(-) delete mode 100644 lcc_members/views/res_users_views.xml diff --git a/lcc_members/__manifest__.py b/lcc_members/__manifest__.py index 9fc96159..aec05da4 100644 --- a/lcc_members/__manifest__.py +++ b/lcc_members/__manifest__.py @@ -53,7 +53,6 @@ "views/portal_my_home.xml", "views/portal_structure_profile.xml", "views/res_partner_view.xml", - "views/res_users_views.xml", "views/website_partner_view.xml", "wizard/membership_invoice_views.xml", ], diff --git a/lcc_members/views/res_users_views.xml b/lcc_members/views/res_users_views.xml deleted file mode 100644 index 0ac2302b..00000000 --- a/lcc_members/views/res_users_views.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - res.users.groups - res.users - - 99 - - - - - - - - \ No newline at end of file From 0dcb23d3e457ad6196ac386806fe2802beec120a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phan=20Sainl=C3=A9ger?= Date: Fri, 19 Jul 2024 11:45:32 +0200 Subject: [PATCH 22/24] [FIX] lcc_lokavaluto_app_connection: corrects typo --- lcc_lokavaluto_app_connection/services/partner_services.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lcc_lokavaluto_app_connection/services/partner_services.py b/lcc_lokavaluto_app_connection/services/partner_services.py index 97d4f59a..dc08067c 100644 --- a/lcc_lokavaluto_app_connection/services/partner_services.py +++ b/lcc_lokavaluto_app_connection/services/partner_services.py @@ -276,7 +276,7 @@ def search_recipients(self, recipients_search_info): if not lcc_profile_info: continue row = lcc_profile_info[0] - row["monujo_backends"] = partner.lcc_backends_ids._update_search_data( + row["monujo_backends"] = partner.lcc_backend_ids._update_search_data( [k for k in backend_keys if k.startswith("%s:" % recipient.type)], ) rows.append(row) From 65d68b7d9e7d5b5f2efab611dd274036aefb5852 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phan=20Sainl=C3=A9ger?= Date: Fri, 19 Jul 2024 16:06:37 +0200 Subject: [PATCH 23/24] [MIG] pkg: make 'demo, test, dev1, dev2, dev3' branches deploy code --- .github/README.md | 129 +++++++++++++++++++++++++++++++++++ .github/workflows/deploy.yml | 54 +++++++++++++++ 2 files changed, 183 insertions(+) create mode 100644 .github/README.md create mode 100644 .github/workflows/deploy.yml diff --git a/.github/README.md b/.github/README.md new file mode 100644 index 00000000..6c3f28d1 --- /dev/null +++ b/.github/README.md @@ -0,0 +1,129 @@ +# Continuous integration + +## Global picture + +Hosts are available through sftp (sftp is using ssh). The +authentication is the SSH one through a private key on the github side +(managed in github secrets) and accessible through +`secrets.sftp_private_key` in the yaml workflow definition. + +All content of the workdir is sent to the hosts (ideally mirrored and +only difference should be sent), but this is not yet the case for +`lftp` limitation over using `sftp` and setting dates +correctly. `rclone` should be able to handle this better but is not +yet used. A simple git push could be studied also. + +To trigger the restart of odoo on the host, we set up a inotify +watcher through `incron`. + +## Host setup + +### odoo + +To add `odoo` services to a compose read host, add this section to +your `compose.yml`: + +```yaml +odoo: + charm: odoo-tecnativa + docker-compose: + command: + - "--dev=xml,qweb,werkzeug" + - "--log-level=debug" + - "--limit-time-cpu=500" + - "--limit-time-real=500" + - "--limit-memory-soft=25273917440" + - "--limit-memory-hard=25273917440" + - "--addons-path=/opt/odoo/auto/lokavaluto,/opt/odoo/auto/addons" + volumes: + - /srv/datastore/data/odoo/opt/odoo/auto/lokavaluto:/opt/odoo/auto/lokavaluto:rw + image: docker.0k.io/mirror/odoo:rc_12.0-MYC-INIT-3.7 + options: + workers: 4 + modules: + - lcc_lokavaluto_app_connection + - lcc_comchain_base + - lcc_cyclos_base + relations: + web-proxy: + frontend: + domain: odoo.mydomain.org +``` + +Notice: + +- the `--addons` path correlates with the `volumes` section. +- the `modules` section list the current modules + +### sftp + +To add `sftp` services to a compose ready host, add this section to +your `compose.yml`: + +```yaml +sftp: + docker-compose: + ports: + - "10322:22" + volumes: + - /srv/datastore/data/odoo/opt/odoo/auto/lokavaluto:/home/monujo/lokavaluto-addons:rw + options: + users: + monujo: + groups: + - monujo-rw:3000 + password: yLzTieeTwJmMlFZG + keys: + - "ssh-rsa AAAAB3N...PUBLICKEYGOESHERE... odoo@example.org" +``` + +The volumes section allows to `publish` and give access to the place +where odoo reads the module's code. + +The public key is the public key part corresponding to the private key +that needs to be sent by the client (in github secrets). + +Note that group `monujo-rw` is important. You should give the right of +all files that are to be modified the group `3000` from the host: + +``` +chown 1000:3000 /srv/datastore/data/odoo/opt/odoo/auto/lokavaluto -R +``` + +### incron + +Incron is the tool used for the github deployement to signal the end +of the upload of the new files. It should trigger a restart of the +odoo docker. + +Directory that allows triggering the event must be created and +permissions should be set so sftp user can write in it: + +```bash +mkdir -p /srv/datastore/data/sftp/home/monujo/lokavaluto-addons.updated +cd /srv/datastore/data/sftp/home/monujo/lokavaluto-addons.updated +chown 1000:3000 -R . +``` + +To install `incron`: + +```bash +apt-get install incron +echo "root" > /etc/incron.allow +``` + +To edit: + +```bash +EDITOR=vim incrontab -e +``` + +Line to create in current installation + +``` +/srv/datastore/data/sftp/home/monujo/lokavaluto-addons.updated IN_CREATE,IN_MODIFY docker restart myc_odoo_1 +``` + +It is expected that the client will delete and add a file in folder: +`lokavaluto-addons.updated` to trigger the reload. + diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 00000000..c309004a --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,54 @@ +name: "🚀 deploy CI" +on: + push: + branches: + - demo + - test + - dev1 + - dev2 + - dev3 + paths-ignore: + - 'README*' + +jobs: + deploy: + name: Deploy + runs-on: ubuntu-latest + steps: + - name: 🚚 Get code + uses: actions/checkout@v2 + + ## XXXvlab: contrary two what was expected from ltfp in mirror + ## mode, this setup is highly inefficient: because through sftp, + ## lftp is not able to set correctly dates so it just delete and + ## rewrite everything on the other end. We need to change that + ## with ``rclone`` solution I guess if we don't want to change + ## ``sftp`` protocol. + - name: "📂 SFTP Sync files" + uses: swillner/sftp-sync-action@v1.0 + with: + server: ${{ github.ref_name }}.lokavaluto.fr + port: 10322 + user: monujo + user_private_key: ${{ secrets.sftp_private_key }} + host_public_key: + local: ./ + remote: /lokavaluto-addons + mirror_options: "--exclude-glob=.git*/ --verbose" + ## This part is to ensure that we can trigger actions after + ## the sync occured on the destination host. + - name: 🔨 Prepare last-updated + run: | + mkdir last-updated + date > last-updated/done + - name: "📂 SFTP Send last-updated" + uses: swillner/sftp-sync-action@v1.0 + with: + server: ${{ github.ref_name }}.lokavaluto.fr + port: 10322 + user: monujo + user_private_key: ${{ secrets.sftp_private_key }} + host_public_key: + local: ./last-updated + remote: /lokavaluto-addons.updated + mirror_options: "--verbose" From 578b384e62bcd8a6c348608ef95a8b103cbe4702 Mon Sep 17 00:00:00 2001 From: Laetitia Da Costa Date: Fri, 13 Sep 2024 12:01:17 +0200 Subject: [PATCH 24/24] [IMP]lcc_lokavaluto_app_connection:allow or not sending allocation to individuals --- lcc_lokavaluto_app_connection/README.rst | 6 ++++++ lcc_lokavaluto_app_connection/__manifest__.py | 2 +- lcc_lokavaluto_app_connection/models/company.py | 2 +- .../models/res_config_settings.py | 6 ++++++ lcc_lokavaluto_app_connection/models/wallet.py | 1 + .../services/partner_services.py | 4 ++++ .../views/res_config_settings_view.xml | 13 +++++++++++++ 7 files changed, 32 insertions(+), 2 deletions(-) diff --git a/lcc_lokavaluto_app_connection/README.rst b/lcc_lokavaluto_app_connection/README.rst index 35ef0f62..155e253c 100644 --- a/lcc_lokavaluto_app_connection/README.rst +++ b/lcc_lokavaluto_app_connection/README.rst @@ -12,6 +12,12 @@ Installation Just install lcc_lokavaluto_app_connection, all dependencies will be installed by default. +Utilisation +============ + +You can choose to allow sending allocation to individuals or not +Go to "Settings">"Digital Currency">"allow credit request only to company" + Known issues / Roadmap ====================== diff --git a/lcc_lokavaluto_app_connection/__manifest__.py b/lcc_lokavaluto_app_connection/__manifest__.py index bc5f630a..e19fbc79 100644 --- a/lcc_lokavaluto_app_connection/__manifest__.py +++ b/lcc_lokavaluto_app_connection/__manifest__.py @@ -4,7 +4,7 @@ "author": "Lokavaluto", "website": "https://lokavaluto.fr", "category": "Website", - "version": "16.0.1.0.0", + "version": "16.0.1.0.1", # any module necessary for this one to work correctly "depends": [ "auth_api_key", diff --git a/lcc_lokavaluto_app_connection/models/company.py b/lcc_lokavaluto_app_connection/models/company.py index b07aee18..3759f86d 100644 --- a/lcc_lokavaluto_app_connection/models/company.py +++ b/lcc_lokavaluto_app_connection/models/company.py @@ -11,7 +11,7 @@ class Company(models.Model): monujo_ios_app_url = fields.Char(string="Monujo iOS app URL") activate_automatic_topup = fields.Boolean("Activate Automatic Topup") commission_product_id = fields.Many2one("product.product", string="Commission Product") - + allow_payments_only_to_companies = fields.Boolean(string="Allow payments only to companies") def _cron_import_new_digital_currency_debit_requests(self): """Create the debit requests in Odoo for all the debit diff --git a/lcc_lokavaluto_app_connection/models/res_config_settings.py b/lcc_lokavaluto_app_connection/models/res_config_settings.py index adadb28f..3bdeac51 100644 --- a/lcc_lokavaluto_app_connection/models/res_config_settings.py +++ b/lcc_lokavaluto_app_connection/models/res_config_settings.py @@ -33,3 +33,9 @@ class ResConfigSettings(models.TransientModel): related="company_id.commission_product_id", readonly=False, string="Commission Product") + + allow_payments_only_to_companies = fields.Boolean( + related="company_id.allow_payments_only_to_companies", + readonly=False, + string="Allow payments only to companies", + ) diff --git a/lcc_lokavaluto_app_connection/models/wallet.py b/lcc_lokavaluto_app_connection/models/wallet.py index 55306051..e9bfe54f 100644 --- a/lcc_lokavaluto_app_connection/models/wallet.py +++ b/lcc_lokavaluto_app_connection/models/wallet.py @@ -65,6 +65,7 @@ def translate_backend_key_in_wallet_name(self, backend_key): def get_wallets(self, backend_keys): """Returns wallet objects list matching the backend_keys contents""" Wallet = self.env["res.partner.backend"] + return Wallet.search( [ ( diff --git a/lcc_lokavaluto_app_connection/services/partner_services.py b/lcc_lokavaluto_app_connection/services/partner_services.py index dc08067c..fdc71580 100644 --- a/lcc_lokavaluto_app_connection/services/partner_services.py +++ b/lcc_lokavaluto_app_connection/services/partner_services.py @@ -192,6 +192,10 @@ def search_recipients(self, recipients_search_info): ) order = _recipient_order_normalize(order) website_url = recipients_search_info.website_url + + if self.env.company.allow_payments_only_to_companies == True: + domain.extend([('partner_id.is_company','=',True)]) + if value: domain.extend( [ diff --git a/lcc_lokavaluto_app_connection/views/res_config_settings_view.xml b/lcc_lokavaluto_app_connection/views/res_config_settings_view.xml index e9168fd8..404f228c 100644 --- a/lcc_lokavaluto_app_connection/views/res_config_settings_view.xml +++ b/lcc_lokavaluto_app_connection/views/res_config_settings_view.xml @@ -63,6 +63,19 @@
+
+
+ +
+
+
+