intrastat_product: Add xml_attachment_id field

intrastat_product: add mail.activity.mixin and widget in form view
product_harmonized_system: remove archive button (use Action menu)
All modules:
- use super() instead of super(class, self)
- Update domain_force in multi-company ir.rule to v13 standard
This commit is contained in:
Alexis de Lattre
2020-06-08 22:39:46 +02:00
parent 98cfd6d1be
commit 9043fe4bbc
9 changed files with 214 additions and 34 deletions

View File

@@ -7,7 +7,7 @@
{
"name": "Intrastat Product",
"version": "13.0.1.0.2",
"version": "13.0.1.0.3",
"category": "Intrastat",
"license": "AGPL-3",
"summary": "Base module for Intrastat Product",

View File

@@ -79,7 +79,6 @@ msgstr "12"
#. module: intrastat_product
#: model_terms:ir.ui.view,arch_db:intrastat_product.intrastat_product_declaration_view_form
#, fuzzy
#| msgid "Intrastat Product Declarations"
msgid "<span>Intrastat Product Declaration </span>"
msgstr "DEBs"
@@ -108,7 +107,6 @@ msgstr "Action"
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__message_needaction
#, fuzzy
#| msgid "Action"
msgid "Action Needed"
msgstr "Action"
@@ -117,6 +115,23 @@ msgstr "Action"
msgid "Active"
msgstr "Actif"
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__activity_ids
#, fuzzy
msgid "Activities"
msgstr "Actif"
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__activity_exception_decoration
msgid "Activity Exception Decoration"
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__activity_state
#, fuzzy
msgid "Activity State"
msgstr "Actif"
#. module: intrastat_product
#: model:intrastat.transport_mode,name:intrastat_product.intrastat_transport_4
msgid "Air"
@@ -150,6 +165,14 @@ msgstr ""
"société = montant dans la devise de la facture converti à la date de la "
"facture."
#. module: intrastat_product
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:0
#, python-format
msgid ""
"An XML Export already exists for %s. To re-generate it, you must first "
"delete it."
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:0
#, python-format
@@ -171,7 +194,6 @@ msgstr "Introductions"
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__message_attachment_count
#, fuzzy
#| msgid "Intrastat Country"
msgid "Attachment Count"
msgstr "Pays pour la DEB"
@@ -219,6 +241,12 @@ msgstr "Société"
msgid "Company Country Code"
msgstr "Code pays de la société"
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_res_config_settings__country_code
#, fuzzy
msgid "Company Country code"
msgstr "Code pays de la société"
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_computation_line__company_currency_id
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration_line__company_currency_id
@@ -235,7 +263,6 @@ msgstr "Lignes de transaction"
#. module: intrastat_product
#: model:ir.model,name:intrastat_product.model_res_config_settings
#, fuzzy
#| msgid "res.config.settings"
msgid "Config Settings"
msgstr "res.config.settings"
@@ -274,13 +301,6 @@ msgstr ""
msgid "Country"
msgstr "Pays"
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_res_config_settings__country_code
#, fuzzy
#| msgid "Company Country Code"
msgid "Country Code"
msgstr "Code pays de la société"
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_computation_line__product_origin_country_id
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration_line__product_origin_country_id
@@ -524,7 +544,6 @@ msgstr "Génération des lignes à partir des factures: résultats"
#. module: intrastat_product
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:0
#, fuzzy, python-format
#| msgid "Go to company configuration screen"
msgid "Go to Accounting Configuration Settings screen"
msgstr "Aller à la page de configuration"
@@ -557,6 +576,16 @@ msgstr "Codes S.H."
msgid "ID"
msgstr "ID"
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__activity_exception_icon
msgid "Icon"
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,help:intrastat_product.field_intrastat_product_declaration__activity_exception_icon
msgid "Icon to indicate an exception activity."
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,help:intrastat_product.field_intrastat_product_declaration__message_needaction
#: model:ir.model.fields,help:intrastat_product.field_intrastat_product_declaration__message_unread
@@ -654,7 +683,6 @@ msgstr "DEB"
#. module: intrastat_product
#: model:ir.model,name:intrastat_product.model_intrastat_product_computation_line
#, fuzzy
#| msgid "Intrastat Product Computation Lines"
msgid "Intrastat Product Computataion Lines"
msgstr "Lignes de calcul de la DEB"
@@ -754,7 +782,6 @@ msgstr "Modes de transport pour la DEB"
#. module: intrastat_product
#: model:ir.model,name:intrastat_product.model_report_intrastat_product_product_declaration_xls
#, fuzzy
#| msgid "Intrastat Declaration"
msgid "Intrastat declaration"
msgstr "DEB"
@@ -902,6 +929,21 @@ msgstr "Nom, code ou description"
msgid "Net weight in Kg"
msgstr "Poids net en Kg"
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__activity_date_deadline
msgid "Next Activity Deadline"
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__activity_summary
msgid "Next Activity Summary"
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__activity_type_id
msgid "Next Activity Type"
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:0
#, python-format
@@ -935,7 +977,6 @@ msgstr "Notes"
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__message_needaction_counter
#, fuzzy
#| msgid "Number of Declaration Lines"
msgid "Number of Actions"
msgstr "Nombre de lignes de déclaration"
@@ -947,7 +988,6 @@ msgstr "Nombre de lignes de déclaration"
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__message_has_error_counter
#, fuzzy
#| msgid "Number of Declaration Lines"
msgid "Number of errors"
msgstr "Nombre de lignes de déclaration"
@@ -1106,6 +1146,11 @@ msgstr ""
msgid "Reporting Level"
msgstr "Niveau d'obligation"
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__activity_user_id
msgid "Responsible User"
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__revision
msgid "Revision"
@@ -1199,6 +1244,15 @@ msgstr ""
"État de la déclaration. Quand l'état est à 'Terminé', les paramètres passent "
"en lecture seule."
#. module: intrastat_product
#: model:ir.model.fields,help:intrastat_product.field_intrastat_product_declaration__activity_state
msgid ""
"Status based on activities\n"
"Overdue: Due date is already passed\n"
"Today: Activity date is today\n"
"Planned: Future activities."
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/report/intrastat_product_report_xls.py:0
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_computation_line__intrastat_unit_id
@@ -1272,7 +1326,6 @@ msgstr "Cette donnée est utilisée pour la DEB"
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__total_amount
#, fuzzy
#| msgid "Total Amount"
msgid "Total Fiscal Amount"
msgstr "Montant total"
@@ -1284,7 +1337,6 @@ msgstr "Montant total"
#. module: intrastat_product
#: model:ir.model.fields,help:intrastat_product.field_intrastat_product_declaration__total_amount
#, fuzzy
#| msgid "Year and month of the declaration."
msgid "Total fiscal amount in company currency of the declaration."
msgstr "Année et mois de la DEB."
@@ -1328,6 +1380,11 @@ msgstr "Modes de transport"
msgid "Type"
msgstr "Type"
#. module: intrastat_product
#: model:ir.model.fields,help:intrastat_product.field_intrastat_product_declaration__activity_exception_decoration
msgid "Type of the exception activity on record."
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__message_unread
msgid "Unread Messages"
@@ -1336,7 +1393,6 @@ msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__message_unread_counter
#, fuzzy
#| msgid "Intrastat Country"
msgid "Unread Messages Counter"
msgstr "Pays pour la DEB"
@@ -1379,6 +1435,11 @@ msgstr ""
msgid "Weight"
msgstr "Poids"
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__xml_attachment_id
msgid "XML Export"
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__year
msgid "Year"
@@ -1397,7 +1458,6 @@ msgstr "Vous pouvez ajouter des commentaires ici si vous le voulez."
#. module: intrastat_product
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:0
#, fuzzy, python-format
#| msgid "You must set the country of the company!"
msgid "You must set company's country !"
msgstr "Vous devez configurer le pays de la société !"
@@ -1407,6 +1467,11 @@ msgstr "Vous devez configurer le pays de la société !"
msgid "for period %s"
msgstr ""
#, fuzzy
#~| msgid "Company Country Code"
#~ msgid "Country Code"
#~ msgstr "Code pays de la société"
#~ msgid "Default Incoterm for Intrastat"
#~ msgstr "Incoterm par défaut pour la DEB"

View File

@@ -107,6 +107,21 @@ msgstr ""
msgid "Active"
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__activity_ids
msgid "Activities"
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__activity_exception_decoration
msgid "Activity Exception Decoration"
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__activity_state
msgid "Activity State"
msgstr ""
#. module: intrastat_product
#: model:intrastat.transport_mode,name:intrastat_product.intrastat_transport_4
msgid "Air"
@@ -134,6 +149,14 @@ msgid ""
" rate of the invoice date."
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:0
#, python-format
msgid ""
"An XML Export already exists for %s. To re-generate it, you must first "
"delete it."
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:0
#, python-format
@@ -201,6 +224,11 @@ msgstr ""
msgid "Company Country Code"
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_res_config_settings__country_code
msgid "Company Country code"
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_computation_line__company_currency_id
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration_line__company_currency_id
@@ -250,11 +278,6 @@ msgstr ""
msgid "Country"
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_res_config_settings__country_code
msgid "Country Code"
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_computation_line__product_origin_country_id
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration_line__product_origin_country_id
@@ -529,6 +552,16 @@ msgstr ""
msgid "ID"
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__activity_exception_icon
msgid "Icon"
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,help:intrastat_product.field_intrastat_product_declaration__activity_exception_icon
msgid "Icon to indicate an exception activity."
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,help:intrastat_product.field_intrastat_product_declaration__message_needaction
#: model:ir.model.fields,help:intrastat_product.field_intrastat_product_declaration__message_unread
@@ -863,6 +896,21 @@ msgstr ""
msgid "Net weight in Kg"
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__activity_date_deadline
msgid "Next Activity Deadline"
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__activity_summary
msgid "Next Activity Summary"
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__activity_type_id
msgid "Next Activity Type"
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:0
#, python-format
@@ -1052,6 +1100,11 @@ msgstr ""
msgid "Reporting Level"
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__activity_user_id
msgid "Responsible User"
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__revision
msgid "Revision"
@@ -1141,6 +1194,15 @@ msgid ""
"become read-only."
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,help:intrastat_product.field_intrastat_product_declaration__activity_state
msgid ""
"Status based on activities\n"
"Overdue: Due date is already passed\n"
"Today: Activity date is today\n"
"Planned: Future activities."
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/report/intrastat_product_report_xls.py:0
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_computation_line__intrastat_unit_id
@@ -1262,6 +1324,11 @@ msgstr ""
msgid "Type"
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,help:intrastat_product.field_intrastat_product_declaration__activity_exception_decoration
msgid "Type of the exception activity on record."
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__message_unread
msgid "Unread Messages"
@@ -1311,6 +1378,11 @@ msgstr ""
msgid "Weight"
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__xml_attachment_id
msgid "XML Export"
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__year
msgid "Year"

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="intrastat_transaction_company_rule" model="ir.rule">
<field
name="domain_force"
>['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
</record>
<record id="intrastat_region_company_rule" model="ir.rule">
<field
name="domain_force"
>['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
</record>
<record id="intrastat_product_declaration_company_rule" model="ir.rule">
<field
name="domain_force"
>['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
</record>
</odoo>

View File

@@ -0,0 +1,10 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openupgradelib import openupgrade # pylint: disable=W7936
@openupgrade.migrate()
def migrate(env, version):
openupgrade.load_data(
env.cr, "intrastat_product", "migrations/13.0.1.0.3/noupdate_changes.xml"
)

View File

@@ -18,7 +18,7 @@ class IntrastatProductDeclaration(models.Model):
_name = "intrastat.product.declaration"
_description = "Intrastat Product Report Base Object"
_rec_name = "year_month"
_inherit = ["mail.thread", "intrastat.common"]
_inherit = ["mail.thread", "mail.activity.mixin", "intrastat.common"]
_order = "year_month desc, type, revision"
_sql_constraints = [
(
@@ -32,7 +32,7 @@ class IntrastatProductDeclaration(models.Model):
@api.model
def default_get(self, fields_list):
res = super(IntrastatProductDeclaration, self).default_get(fields_list)
res = super().default_get(fields_list)
decl_date = fields.Date.context_today(self) - relativedelta(months=1)
res.update(
{"year": str(decl_date.year), "month": str(decl_date.month).rjust(2, "0")}
@@ -150,6 +150,7 @@ class IntrastatProductDeclaration(models.Model):
states={"done": [("readonly", True)]},
)
valid = fields.Boolean(compute="_compute_check_validity", string="Valid")
xml_attachment_id = fields.Many2one("ir.attachment", string="XML Export")
@api.model
def _default_company_id(self):
@@ -225,7 +226,7 @@ class IntrastatProductDeclaration(models.Model):
self.ensure_one()
default = default or {}
default["revision"] = self.revision + 1
return super(IntrastatProductDeclaration, self).copy(default)
return super().copy(default)
def _account_config_warning(self, msg):
action = self.env.ref("account.action_account_config")
@@ -805,6 +806,14 @@ class IntrastatProductDeclaration(models.Model):
def generate_xml(self):
""" generate the INTRASTAT Declaration XML file """
self.ensure_one()
if self.xml_attachment_id:
raise UserError(
_(
"An XML Export already exists for %s. "
"To re-generate it, you must first delete it."
)
% self.display_name
)
self.message_post(body=_("Generate XML Declaration File"))
self._check_generate_xml()
self._unlink_attachments()
@@ -813,6 +822,7 @@ class IntrastatProductDeclaration(models.Model):
attach_id = self._attach_xml_file(
xml_string, "{}_{}".format(self.type, self.revision)
)
self.write({"xml_attachment_id": attach_id})
return self._open_attach_view(attach_id)
else:
raise UserError(_("No XML File has been generated."))

View File

@@ -19,7 +19,7 @@ class SaleOrder(models.Model):
def _prepare_invoice(self):
"""Copy destination country to invoice"""
vals = super(SaleOrder, self)._prepare_invoice()
vals = super()._prepare_invoice()
if self.intrastat_transport_id:
vals["intrastat_transport_id"] = self.intrastat_transport_id.id
if self.warehouse_id.region_id:

View File

@@ -5,20 +5,20 @@
<field name="model_id" ref="model_intrastat_transaction" />
<field
name="domain_force"
>['|', ('company_id', '=', False), ('company_id', 'child_of', [user.company_id.id])]</field>
>['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
</record>
<record id="intrastat_region_company_rule" model="ir.rule">
<field name="name">Intrastat Region Company rule</field>
<field name="model_id" ref="model_intrastat_region" />
<field
name="domain_force"
>['|', ('company_id', '=', False), ('company_id', 'child_of', [user.company_id.id])]</field>
>['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
</record>
<record id="intrastat_product_declaration_company_rule" model="ir.rule">
<field name="name">Intrastat Product Declaration Company rule</field>
<field name="model_id" ref="model_intrastat_product_declaration" />
<field
name="domain_force"
>['|', ('company_id', '=', False), ('company_id', 'child_of', [user.company_id.id])]</field>
>['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
</record>
</odoo>

View File

@@ -23,7 +23,7 @@
name="generate_xml"
string="Generate XML Declaration File"
type="object"
attrs="{'invisible': [('state', '!=', 'draft')]}"
attrs="{'invisible': [('xml_attachment_id', '!=', False)]}"
invisible="context.get('generic_intrastat_product_declaration')"
/>
<button
@@ -53,6 +53,10 @@
<field name="year" />
<field name="month" />
<field name="type" />
<field
name="xml_attachment_id"
invisible="context.get('generic_intrastat_product_declaration')"
/>
<field name="reporting_level" invisible="1" />
</group>
<group name="properties-2">
@@ -115,6 +119,7 @@
</sheet>
<div class="oe_chatter">
<field name="message_follower_ids" widget="mail_followers" />
<field name="activity_ids" widget="mail_activity" />
<field name="message_ids" widget="mail_thread" />
</div>
</form>