Skip to content

Commit

Permalink
Merge PR #179 into 16.0
Browse files Browse the repository at this point in the history
Signed-off-by legalsylvain
  • Loading branch information
github-grap-bot committed Jan 24, 2025
2 parents 30cca1f + b024d97 commit 900e43e
Show file tree
Hide file tree
Showing 67 changed files with 1,305 additions and 0 deletions.
84 changes: 84 additions & 0 deletions product_food_certification/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
==========================================
Products - Food Certification Informations
==========================================

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:61710efb246069e25a77c25588e6efe4da5b9a92aa25591fc58f837f307b1c86
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-grap%2Fgrap--odoo--business-lightgray.png?logo=github
:target: https://github.com/grap/grap-odoo-business/tree/12.0/product_food_certification
:alt: grap/grap-odoo-business

|badge1| |badge2| |badge3|

* Add a Selection field ``ingredient_origin_type`` on product model,
that mention if the ingredients of the product come from EU and / or not
from EU.

* Provides a new model ``certifier.organization``.

* It also adds many fiels on product models. (templates and variants)
* ``certifier_organization_id``
* ``is_uncertifiable`` for alimentary products that can not be certifiable.
(like products that come from the sea)

**Table of contents**

.. contents::
:local:

Configuration
=============

* Go to 'Sale > Configuration > Certifier Organizations' and create new items.

.. figure:: https://raw.githubusercontent.com/grap/grap-odoo-business/12.0/product_food_certification/static/description/certifier_organization_form.png

Known issues / Roadmap
======================

* make the field ``ingredient_origin_type`` mandatory if the label 'Euroleaf'
is used and the unit of the product is weighable, in compliance with current legislation.

* Remove the post_init_hook, onced installed on grap / caap instances.

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/grap/grap-odoo-business/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/grap/grap-odoo-business/issues/new?body=module:%20product_food_certification%0Aversion:%2012.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
~~~~~~~

* GRAP

Contributors
~~~~~~~~~~~~

* Sylvain LE GAL (https://www.twitter.com/legalsylvain)

Maintainers
~~~~~~~~~~~

This module is part of the `grap/grap-odoo-business <https://github.com/grap/grap-odoo-business/tree/12.0/product_food_certification>`_ project on GitHub.

You are welcome to contribute.
1 change: 1 addition & 0 deletions product_food_certification/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import models
29 changes: 29 additions & 0 deletions product_food_certification/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Copyright (C) 2024 - Today: GRAP (http://www.grap.coop)
# @author: Sylvain LE GAL (https://twitter.com/legalsylvain)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
{
"name": "Products - Food Certification Informations",
"version": "16.0.1.0.0",
"category": "Sales",
"author": "GRAP",
"website": "https://github.com/grap/grap-odoo-business",
"license": "AGPL-3",
"depends": [
"product_food",
],
"data": [
"security/res_groups.xml",
"security/ir.model.access.csv",
"views/view_certifier_organization.xml",
"views/view_product_product.xml",
"views/view_product_template.xml",
"views/view_res_company.xml",
"views/view_product_label.xml",
],
"demo": [
"demo/certifier_organization.xml",
"demo/product_label.xml",
"demo/res_company.xml",
],
"installable": True,
}
21 changes: 21 additions & 0 deletions product_food_certification/demo/certifier_organization.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2018 - Today: GRAP (http://www.grap.coop)
@author: Sylvain LE GAL (https://twitter.com/legalsylvain)
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
-->
<odoo>

<record id="fr_bio_01" model="certifier.organization">
<field name="name">ECOCERT</field>
<field name="code">FR-BIO-01</field>
<field name="website">http://www.ecocert.fr/</field>
</record>

<record id="fr_bio_15" model="certifier.organization">
<field name="name">Alpes Contrôle</field>
<field name="code">FR-BIO-15</field>
<field name="website">https://www.alpes-controles.fr/</field>
</record>

</odoo>
18 changes: 18 additions & 0 deletions product_food_certification/demo/product_label.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2012 - Today: GRAP (http://www.grap.coop)
@author: Sylvain LE GAL (https://twitter.com/legalsylvain)
@author Julien WESTE
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
-->
<odoo>

<record id="product_label.label_agriculture_biologique" model="product.label">
<field name="organic_type">01_organic</field>
</record>

<record id="product_food.label_demeter" model="product.label">
<field name="organic_type">02_agroecological</field>
</record>

</odoo>
14 changes: 14 additions & 0 deletions product_food_certification/demo/res_company.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2024 - Today: GRAP (http://www.grap.coop)
@author: Sylvain LE GAL (https://twitter.com/legalsylvain)
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
-->
<odoo>

<record id="base.main_company" model="res.company">
<field name="certifier_organization_id" ref="fr_bio_15"/>
</record>


</odoo>
225 changes: 225 additions & 0 deletions product_food_certification/i18n/fr.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,225 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * product_food_certification
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-01-20 11:26+0000\n"
"PO-Revision-Date: 2025-01-20 11:26+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: product_food_certification
#: model:ir.model.fields,field_description:product_food_certification.field_certifier_organization__active
msgid "Active"
msgstr "Actif"

#. module: product_food_certification
#: model:ir.model.fields.selection,name:product_food_certification.selection__product_label__organic_type__02_agroecological
#: model:ir.model.fields.selection,name:product_food_certification.selection__product_product__organic_type__02_agroecological
msgid "Agroecological"
msgstr "Agro-écologique"

#. module: product_food_certification
#: model:ir.model.fields.selection,name:product_food_certification.selection__product_product__organic_type__04_uncertified
msgid "Aliment Not Certified"
msgstr "Aliment non certifié"

#. module: product_food_certification
#: model:ir.model.fields.selection,name:product_food_certification.selection__product_product__organic_type__03_uncertifiable
msgid "Aliment Uncertifiable"
msgstr "Aliment non certifiable"

#. module: product_food_certification
#: model_terms:ir.ui.view,arch_db:product_food_certification.view_certifier_organization_form
msgid "Archived"
msgstr "Archivée"

#. module: product_food_certification
#: model:ir.model,name:product_food_certification.model_certifier_organization
#: model:ir.model.fields,field_description:product_food_certification.field_res_company__certifier_organization_id
msgid "Certifier Organization"
msgstr "Organisation certificatrice"

#. module: product_food_certification
#: model:ir.actions.act_window,name:product_food_certification.action_certifier_organization
#: model:ir.ui.menu,name:product_food_certification.menu_certifier_organization
msgid "Certifier Organizations"
msgstr "Organisations certificatrices"

#. module: product_food_certification
#: model:res.groups,name:product_food_certification.group_certifier_manager
msgid "Certifier Organizations Creation"
msgstr "Création d'organisations certificatrices"

#. module: product_food_certification
#: model:ir.model.fields,help:product_food_certification.field_product_product__is_uncertifiable
#: model:ir.model.fields,help:product_food_certification.field_product_template__is_uncertifiable
msgid ""
"Check this box for alimentary products that are uncertifiable by definition."
" For exemple: Products that comes from the sea"
msgstr ""
"cocher cette case pour les articles alimentaires qui sont non certifiable "
"par définition. par exemple, les produits issues de la mer."

#. module: product_food_certification
#: model:ir.model.fields,field_description:product_food_certification.field_certifier_organization__code
msgid "Code"
msgstr ""

#. module: product_food_certification
#: model:ir.model,name:product_food_certification.model_res_company
msgid "Companies"
msgstr "Sociétés"

#. module: product_food_certification
#: model:ir.model.fields,field_description:product_food_certification.field_certifier_organization__create_uid
msgid "Created by"
msgstr "Créé par"

#. module: product_food_certification
#: model:ir.model.fields,field_description:product_food_certification.field_certifier_organization__create_date
msgid "Created on"
msgstr "Créé le"

#. module: product_food_certification
#: model:ir.model.fields,field_description:product_food_certification.field_certifier_organization__display_name
msgid "Display Name"
msgstr "Nom affiché"

#. module: product_food_certification
#: model:ir.model.fields.selection,name:product_food_certification.selection__product_product__ingredient_origin_type__eu
msgid "EU"
msgstr "UE"

#. module: product_food_certification
#: model:ir.model.fields.selection,name:product_food_certification.selection__product_product__ingredient_origin_type__eu_no_eu
msgid "EU / No EU"
msgstr "UE / Non UE"

#. module: product_food_certification
#: model:ir.model.fields.selection,name:product_food_certification.selection__product_product__ingredient_origin_type__fr
msgid "France"
msgstr ""

#. module: product_food_certification
#: model:ir.model.fields,field_description:product_food_certification.field_certifier_organization__id
msgid "ID"
msgstr ""

#. module: product_food_certification
#: model_terms:ir.ui.view,arch_db:product_food_certification.view_certifier_organization_form
msgid "Information"
msgstr ""

#. module: product_food_certification
#: model:ir.model.fields,field_description:product_food_certification.field_certifier_organization____last_update
msgid "Last Modified on"
msgstr "Dernière modification le"

#. module: product_food_certification
#: model:ir.model.fields,field_description:product_food_certification.field_certifier_organization__write_uid
msgid "Last Updated by"
msgstr "Dernière mise à jour par"

#. module: product_food_certification
#: model:ir.model.fields,field_description:product_food_certification.field_certifier_organization__write_date
msgid "Last Updated on"
msgstr "Dernière mise à jour le"

#. module: product_food_certification
#: model:ir.model.fields,field_description:product_food_certification.field_certifier_organization__name
msgid "Name"
msgstr "Nom"

#. module: product_food_certification
#: model:ir.model.fields.selection,name:product_food_certification.selection__product_product__ingredient_origin_type__no_eu
msgid "No EU"
msgstr "Non UE"

#. module: product_food_certification
#: model:ir.model.fields.selection,name:product_food_certification.selection__product_product__organic_type__05_not_alimentary
msgid "Not Alimentary"
msgstr "Non alimentaire"

#. module: product_food_certification
#: model:ir.model.fields,field_description:product_food_certification.field_product_product__is_uncertifiable
#: model:ir.model.fields,field_description:product_food_certification.field_product_template__is_uncertifiable
msgid "Not Certifiable"
msgstr "Non certifiable"

#. module: product_food_certification
#: model:ir.model.fields,field_description:product_food_certification.field_certifier_organization__note
#: model_terms:ir.ui.view,arch_db:product_food_certification.view_certifier_organization_form
msgid "Note"
msgstr ""

#. module: product_food_certification
#: model:ir.model.fields.selection,name:product_food_certification.selection__product_label__organic_type__01_organic
#: model:ir.model.fields.selection,name:product_food_certification.selection__product_product__organic_type__01_organic
msgid "Organic"
msgstr "Biologique"

#. module: product_food_certification
#: model:ir.model.fields,field_description:product_food_certification.field_product_label__organic_type
#: model:ir.model.fields,field_description:product_food_certification.field_product_product__organic_type
#: model:ir.model.fields,field_description:product_food_certification.field_product_template__organic_type
msgid "Organic Category"
msgstr "Catégorie biologique"

#. module: product_food_certification
#: model:ir.model.fields,field_description:product_food_certification.field_product_product__ingredient_origin_type
#: model:ir.model.fields,field_description:product_food_certification.field_product_template__ingredient_origin_type
msgid "Origin of Ingredients"
msgstr "Origine des ingrédients"

#. module: product_food_certification
#: model:ir.model,name:product_food_certification.model_product_template
msgid "Product"
msgstr "Produit"

#. module: product_food_certification
#: model:ir.model,name:product_food_certification.model_product_label
msgid "Product Labels"
msgstr "Labels de produits"

#. module: product_food_certification
#: model:ir.model,name:product_food_certification.model_product_product
msgid "Product Variant"
msgstr "Variante de produit"

#. module: product_food_certification
#. odoo-python
#: code:addons/product_food_certification/models/res_company.py:0
#, python-format
msgid "Products marked as 'ORG' are certified by %(certifier_code)s."
msgstr "Les produits marqués comme 'BIO' sont certifiés par %(certifier_code)s."

#. module: product_food_certification
#: model:ir.model.fields,field_description:product_food_certification.field_res_company__report_certifier_text
msgid "Report Certifier Text"
msgstr "Texte concernant la certification pour les rapports"

#. module: product_food_certification
#: model:ir.model.fields,help:product_food_certification.field_product_product__ingredient_origin_type
#: model:ir.model.fields,help:product_food_certification.field_product_template__ingredient_origin_type
msgid ""
"The place of production of the agricultural raw materials making up the product. This information is mandatory if the 'Euro leaf' logo is used.\n"
"\n"
" More information : https://www.inao.gouv.fr/Les-signes-officiels-de-la-qualite-et-de-l-origine-SIQO/Agriculture-biologique#logosab"
msgstr ""
"Le lieu de production des matières premières agricoles composant l'article. Cette information est obligatoire si le logo 'Eurofeuille' est utilisé.\n"
"\n"
" Plus d'information : https://www.inao.gouv.fr/Les-signes-officiels-de-la-qualite-et-de-l-origine-SIQO/Agriculture-biologique#logosab"

#. module: product_food_certification
#: model:ir.model.fields,field_description:product_food_certification.field_certifier_organization__website
msgid "Website"
msgstr "Site Web"

Loading

0 comments on commit 900e43e

Please sign in to comment.