From 2085eb3348f1e0bd9e88d0761d0f1736711461c4 Mon Sep 17 00:00:00 2001 From: Flectra Community Bot Date: Sun, 12 Dec 2021 03:14:11 +0000 Subject: [PATCH] Automatic Update form OCA2FC Migrator --- .gitlab-ci.yml | 60 +- README.md | 1 + animal/i18n/fr.po | 595 ++++++++++++++++++ animal_owner/COPYRIGHT | 15 + animal_owner/LICENSE | 663 +++++++++++++++++++++ animal_owner/README.rst | 90 +++ animal_owner/__init__.py | 1 + animal_owner/__manifest__.py | 15 + animal_owner/i18n/animal_owner.pot | 65 ++ animal_owner/i18n/es.po | 68 +++ animal_owner/i18n/fr.po | 68 +++ animal_owner/models/__init__.py | 3 + animal_owner/models/animal.py | 11 + animal_owner/models/res_partner.py | 26 + animal_owner/static/description/icon.png | Bin 0 -> 28332 bytes animal_owner/static/description/index.html | 433 ++++++++++++++ animal_owner/views/animal.xml | 62 ++ animal_owner/views/res_partner.xml | 25 + base_partner_sequence/i18n/it.po | 9 +- partner_contact_gender/i18n/it.po | 11 +- partner_manual_rank/i18n/it.po | 49 ++ 21 files changed, 2260 insertions(+), 10 deletions(-) create mode 100644 animal/i18n/fr.po create mode 100644 animal_owner/COPYRIGHT create mode 100644 animal_owner/LICENSE create mode 100644 animal_owner/README.rst create mode 100644 animal_owner/__init__.py create mode 100644 animal_owner/__manifest__.py create mode 100644 animal_owner/i18n/animal_owner.pot create mode 100644 animal_owner/i18n/es.po create mode 100644 animal_owner/i18n/fr.po create mode 100644 animal_owner/models/__init__.py create mode 100644 animal_owner/models/animal.py create mode 100644 animal_owner/models/res_partner.py create mode 100644 animal_owner/static/description/icon.png create mode 100644 animal_owner/static/description/index.html create mode 100644 animal_owner/views/animal.xml create mode 100644 animal_owner/views/res_partner.xml create mode 100644 partner_manual_rank/i18n/it.po diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 25ce1ef..45ff868 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -68,7 +68,7 @@ test_all_modules: --db_password flectra --database test_all --test-enable - --init partner_tz,partner_contact_nationality,portal_partner_select_all,base_location_geonames_import,base_location_nuts,partner_industry_secondary,partner_contact_gender,animal,partner_title_order,partner_priority,partner_disable_gravatar,partner_external_map,partner_email_check,base_location,partner_phone_secondary,partner_contact_lang,partner_manual_rank,partner_bank_code,partner_firstname,partner_contact_job_position,partner_phone_extension,partner_deduplicate_filter,partner_contact_department,partner_affiliate,partner_ref_unique,base_country_state_translatable,partner_identification_unique_by_category,partner_company_group,partner_address_street3,partner_company_type,partner_vat_unique,partner_contact_address_default,partner_contact_personal_information_page,partner_second_lastname,partner_employee_quantity,partner_contact_in_several_companies,partner_identification_notification,partner_identification_gln,partner_contact_birthdate,partner_tier_validation,partner_label,partner_helper,partner_phonecall_schedule,partner_capital,partner_fax,partner_contact_access_link,partner_deduplicate_acl,partner_pricelist_search,partner_multi_relation,partner_identification,partner_address_version,base_partner_sequence,partner_iterative_archive,partner_contact_age_range + --init partner_tz,partner_contact_nationality,portal_partner_select_all,base_location_geonames_import,base_location_nuts,partner_industry_secondary,partner_contact_gender,animal,partner_title_order,partner_priority,partner_disable_gravatar,partner_external_map,partner_email_check,base_location,partner_phone_secondary,partner_contact_lang,partner_manual_rank,partner_bank_code,partner_firstname,partner_contact_job_position,partner_phone_extension,partner_deduplicate_filter,partner_contact_department,partner_affiliate,partner_ref_unique,base_country_state_translatable,partner_identification_unique_by_category,partner_company_group,partner_address_street3,partner_company_type,partner_vat_unique,partner_contact_address_default,partner_contact_personal_information_page,partner_second_lastname,partner_employee_quantity,partner_contact_in_several_companies,partner_identification_notification,partner_identification_gln,partner_contact_birthdate,partner_tier_validation,partner_label,partner_helper,partner_phonecall_schedule,partner_capital,partner_fax,partner_contact_access_link,partner_deduplicate_acl,partner_pricelist_search,partner_multi_relation,partner_identification,partner_address_version,base_partner_sequence,animal_owner,partner_iterative_archive,partner_contact_age_range --stop-after-init --log-level error --log-handler flectra.addons.partner_tz:TEST @@ -123,6 +123,7 @@ test_all_modules: --log-handler flectra.addons.partner_identification:TEST --log-handler flectra.addons.partner_address_version:TEST --log-handler flectra.addons.base_partner_sequence:TEST + --log-handler flectra.addons.animal_owner:TEST --log-handler flectra.addons.partner_iterative_archive:TEST --log-handler flectra.addons.partner_contact_age_range:TEST " @@ -3092,6 +3093,63 @@ test_module_base_partner_sequence: --log-level error --log-handler flectra.addons.base_partner_sequence:TEST" +test_module_animal_owner: + stage: testsingle + when: on_failure + image: + name: registry.gitlab.com/jamotion/flectra/ubuntudev:2-latest + entrypoint: ["/bin/sh", "-c"] + script: + - apt-get install -y p7zip-full + - apt install -y expect-dev + - pip3 install -r ${CI_PROJECT_DIR}/requirements.txt + - su - flectra -c "mkdir ~/others" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/account-closing.git ~/others/account-closing" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/account-invoicing.git ~/others/account-invoicing" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/account-payment.git ~/others/account-payment" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/bank-payment.git ~/others/bank-payment" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/brand.git ~/others/brand" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/community-data-files.git ~/others/community-data-files" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/connector.git ~/others/connector" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/edi.git ~/others/edi" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/product-attribute.git ~/others/product-attribute" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/queue.git ~/others/queue" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/report-print-send.git ~/others/report-print-send" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/rest-framework.git ~/others/rest-framework" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/sale-workflow.git ~/others/sale-workflow" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/server-auth.git ~/others/server-auth" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/server-env.git ~/others/server-env" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/server-tools.git ~/others/server-tools" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/server-ux.git ~/others/server-ux" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/social.git ~/others/social" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/stock-logistics-transport.git ~/others/stock-logistics-transport" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/stock-logistics-warehouse.git ~/others/stock-logistics-warehouse" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/stock-logistics-workflow.git ~/others/stock-logistics-workflow" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/storage.git ~/others/storage" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/web.git ~/others/web" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/wms.git ~/others/wms" + - sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && dpkg-reconfigure --frontend=noninteractive locales && update-locale LANG=en_US.UTF-8 + - mkdir ${CI_PROJECT_DIR}/ci_data + - wget -O ${CI_PROJECT_DIR}/ci_data/test_base.zip https://gitlab.com/flectra-community/devops/oca2fc/raw/master/ci_data/test_base.zip + - 7z x -o ${CI_PROJECT_DIR}/ci_data/ ${CI_PROJECT_DIR}/ci_data/test_base.zip + - export PGPASSWORD="flectra" + - createdb -h psql -U flectra -O flectra -T template1 test_animal_owner + - psql -h psql -U flectra -d test_animal_owner -f ${CI_PROJECT_DIR}/ci_data/dump.sql + - su - flectra -c "mkdir -p ~/.local/share/filestore" + - mv ${CI_PROJECT_DIR}/ci_data/filestore /opt/flectra/.local/share/filestore/test_animal_owner + - chown -R flectra.flectra /opt/flectra/.local/share/filestore/test_animal_owner + - su - flectra -c "/opt/flectra/flectra-bin + --addons-path ${CI_PROJECT_DIR},~/others/account-closing,~/others/account-invoicing,~/others/account-payment,~/others/bank-payment,~/others/brand,~/others/community-data-files,~/others/connector,~/others/edi,~/others/product-attribute,~/others/queue,~/others/report-print-send,~/others/rest-framework,~/others/sale-workflow,~/others/server-auth,~/others/server-env,~/others/server-tools,~/others/server-ux,~/others/social,~/others/stock-logistics-transport,~/others/stock-logistics-warehouse,~/others/stock-logistics-workflow,~/others/storage,~/others/web,~/others/wms + --db_host psql + --db_port 5432 + --db_user flectra + --db_password flectra + --database test_animal_owner + --test-enable -i animal_owner + --stop-after-init + --log-level error + --log-handler flectra.addons.animal_owner:TEST" + test_module_partner_iterative_archive: stage: testsingle when: on_failure diff --git a/README.md b/README.md index 65898e0..1e98c0b 100644 --- a/README.md +++ b/README.md @@ -61,6 +61,7 @@ addon | version | summary [partner_identification](partner_identification/) | 2.0.1.3.0| Partner Identification Numbers [partner_address_version](partner_address_version/) | 2.0.1.0.0| Partner Address Version [base_partner_sequence](base_partner_sequence/) | 2.0.1.0.1| Sets customer's code from a sequence +[animal_owner](animal_owner/) | 2.0.1.0.0| Add owner to the animal [partner_iterative_archive](partner_iterative_archive/) | 2.0.1.0.1| Archive all contacts when parent is archived [partner_contact_age_range](partner_contact_age_range/) | 2.0.1.0.1| Age Range for Contact's diff --git a/animal/i18n/fr.po b/animal/i18n/fr.po new file mode 100644 index 0000000..0a61e58 --- /dev/null +++ b/animal/i18n/fr.po @@ -0,0 +1,595 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * animal +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2021-12-09 13:39+0000\n" +"Last-Translator: David Beal \n" +"Language-Team: none\n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 4.3.2\n" + +#. module: animal +#: model:ir.model.fields,field_description:animal.field_animal__message_needaction +msgid "Action Needed" +msgstr "" + +#. module: animal +#: model:ir.model.fields,field_description:animal.field_animal__active +msgid "Active" +msgstr "" + +#. module: animal +#: model:ir.model.fields,field_description:animal.field_animal__activity_ids +msgid "Activities" +msgstr "" + +#. module: animal +#: model:ir.model.fields,field_description:animal.field_animal__activity_exception_decoration +msgid "Activity Exception Decoration" +msgstr "" + +#. module: animal +#: model:ir.model.fields,field_description:animal.field_animal__activity_state +msgid "Activity State" +msgstr "" + +#. module: animal +#: model:ir.model.fields,field_description:animal.field_animal__activity_type_icon +msgid "Activity Type Icon" +msgstr "" + +#. module: animal +#: model:ir.model,name:animal.model_animal +#: model_terms:ir.ui.view,arch_db:animal.view_animal_form +msgid "Animal" +msgstr "" + +#. module: animal +#: model:ir.model,name:animal.model_animal_breed +msgid "Animal Breeds" +msgstr "Races Animaux" + +#. module: animal +#: model:ir.model,name:animal.model_animal_color +msgid "Animal Colors" +msgstr "" + +#. module: animal +#: model:ir.model,name:animal.model_animal_species +msgid "Animal Species" +msgstr "Espèces Animal" + +#. module: animal +#: model:ir.actions.act_window,name:animal.action_animal +#: model:ir.ui.menu,name:animal.animal model:ir.ui.menu,name:animal.root +#: model_terms:ir.ui.view,arch_db:animal.view_animal_search +#: model_terms:ir.ui.view,arch_db:animal.view_animal_tree +msgid "Animals" +msgstr "Animaux" + +#. module: animal +#: model_terms:ir.ui.view,arch_db:animal.view_animal_form +#: model_terms:ir.ui.view,arch_db:animal.view_animal_search +msgid "Archived" +msgstr "" + +#. module: animal +#: model:ir.model.fields,field_description:animal.field_animal__message_attachment_count +msgid "Attachment Count" +msgstr "" + +#. module: animal +#: model_terms:ir.ui.view,arch_db:animal.view_animal_kanban +msgid "Avatar" +msgstr "" + +#. module: animal +#: model:animal.breed,name:animal.beagle +msgid "Beagle" +msgstr "" + +#. module: animal +#: model:animal.species,name:animal.bird +msgid "Bird" +msgstr "" + +#. module: animal +#: model:ir.model.fields,field_description:animal.field_animal__birth_date +msgid "Birth Date" +msgstr "" + +#. module: animal +#: model:animal.breed,name:animal.boxer +msgid "Boxer" +msgstr "" + +#. module: animal +#: model:ir.model.fields,field_description:animal.field_animal__breed_id +#: model:ir.model.fields,field_description:animal.field_animal_color__breed_id +#: model_terms:ir.ui.view,arch_db:animal.view_animal_breed_form +#: model_terms:ir.ui.view,arch_db:animal.view_animal_search +msgid "Breed" +msgstr "Race" + +#. module: animal +#: model:ir.actions.act_window,name:animal.action_animal_breed +#: model:ir.model.fields,field_description:animal.field_animal_species__breed_ids +#: model:ir.ui.menu,name:animal.breed +#: model_terms:ir.ui.view,arch_db:animal.view_animal_breed_tree +#: model_terms:ir.ui.view,arch_db:animal.view_animal_species_form +msgid "Breeds" +msgstr "Races" + +#. module: animal +#: model:animal.breed,name:animal.bull_terrier +msgid "Bull Terrier" +msgstr "" + +#. module: animal +#: model:animal.breed,name:animal.bulldog +msgid "Bulldog" +msgstr "" + +#. module: animal +#: model:animal.species,name:animal.cat +msgid "Cat" +msgstr "Chat" + +#. module: animal +#: model:animal.breed,name:animal.chihuahua +msgid "Chihuahua" +msgstr "" + +#. module: animal +#: model:animal.breed,name:animal.cocker +msgid "Cocker" +msgstr "" + +#. module: animal +#: model:animal.breed,name:animal.collie +msgid "Collie" +msgstr "" + +#. module: animal +#: model:ir.model.fields,field_description:animal.field_animal__color_id +#: model_terms:ir.ui.view,arch_db:animal.view_animal_color_form +#: model_terms:ir.ui.view,arch_db:animal.view_animal_search +msgid "Color" +msgstr "" + +#. module: animal +#: model:ir.actions.act_window,name:animal.action_animal_color +#: model:ir.ui.menu,name:animal.color +msgid "Colors" +msgstr "" + +#. module: animal +#: model:ir.ui.menu,name:animal.config +msgid "Configuration" +msgstr "" + +#. module: animal +#: model_terms:ir.actions.act_window,help:animal.action_animal_breed +msgid "Create a breed." +msgstr "" + +#. module: animal +#: model_terms:ir.actions.act_window,help:animal.action_animal_color +msgid "Create a color." +msgstr "" + +#. module: animal +#: model_terms:ir.actions.act_window,help:animal.action_animal_species +msgid "Create a species." +msgstr "" + +#. module: animal +#: model_terms:ir.actions.act_window,help:animal.action_animal +msgid "Create an animal" +msgstr "" + +#. module: animal +#: model:ir.model.fields,field_description:animal.field_animal__create_uid +#: model:ir.model.fields,field_description:animal.field_animal_breed__create_uid +#: model:ir.model.fields,field_description:animal.field_animal_color__create_uid +#: model:ir.model.fields,field_description:animal.field_animal_species__create_uid +msgid "Created by" +msgstr "" + +#. module: animal +#: model:ir.model.fields,field_description:animal.field_animal__create_date +#: model:ir.model.fields,field_description:animal.field_animal_breed__create_date +#: model:ir.model.fields,field_description:animal.field_animal_color__create_date +#: model:ir.model.fields,field_description:animal.field_animal_species__create_date +msgid "Created on" +msgstr "" + +#. module: animal +#: model:animal.breed,name:animal.dachshund +msgid "Dachshund" +msgstr "" + +#. module: animal +#: model:animal.breed,name:animal.dalmatian +msgid "Dalmatian" +msgstr "" + +#. module: animal +#: model:ir.model.fields,field_description:animal.field_animal__display_name +#: model:ir.model.fields,field_description:animal.field_animal_breed__display_name +#: model:ir.model.fields,field_description:animal.field_animal_color__display_name +#: model:ir.model.fields,field_description:animal.field_animal_species__display_name +msgid "Display Name" +msgstr "" + +#. module: animal +#: model:animal.breed,name:animal.doberman +msgid "Doberman" +msgstr "" + +#. module: animal +#: model:animal.species,name:animal.dog +msgid "Dog" +msgstr "" + +#. module: animal +#: model:animal.breed,name:animal.english_cocker_spaniel +msgid "English Cocker Spaniel" +msgstr "" + +#. module: animal +#: model:ir.model.fields.selection,name:animal.selection__animal__gender__female +#: model_terms:ir.ui.view,arch_db:animal.view_animal_search +msgid "Female" +msgstr "" + +#. module: animal +#: model:ir.model.fields,field_description:animal.field_animal__message_follower_ids +msgid "Followers" +msgstr "" + +#. module: animal +#: model:ir.model.fields,field_description:animal.field_animal__message_channel_ids +msgid "Followers (Channels)" +msgstr "" + +#. module: animal +#: model:ir.model.fields,field_description:animal.field_animal__message_partner_ids +msgid "Followers (Partners)" +msgstr "" + +#. module: animal +#: model:ir.model.fields,help:animal.field_animal__activity_type_icon +msgid "Font awesome icon e.g. fa-tasks" +msgstr "" + +#. module: animal +#: model:animal.breed,name:animal.french_bulldog +msgid "French Bulldog" +msgstr "" + +#. module: animal +#: model:ir.model.fields,field_description:animal.field_animal__gender +#: model_terms:ir.ui.view,arch_db:animal.view_animal_search +msgid "Gender" +msgstr "" + +#. module: animal +#: model:animal.breed,name:animal.german_shepard +msgid "German Shepard" +msgstr "" + +#. module: animal +#: model:animal.breed,name:animal.golden_retriever +msgid "Golden Retriever" +msgstr "" + +#. module: animal +#: model:animal.breed,name:animal.great_dane +msgid "Great Dane" +msgstr "" + +#. module: animal +#: model_terms:ir.ui.view,arch_db:animal.view_animal_search +msgid "Group By" +msgstr "" + +#. module: animal +#: model:ir.model.fields.selection,name:animal.selection__animal__gender__hermaphrodite +#: model_terms:ir.ui.view,arch_db:animal.view_animal_search +msgid "Hermaphrodite" +msgstr "" + +#. module: animal +#: model:ir.model.fields,field_description:animal.field_animal__id +#: model:ir.model.fields,field_description:animal.field_animal_breed__id +#: model:ir.model.fields,field_description:animal.field_animal_color__id +#: model:ir.model.fields,field_description:animal.field_animal_species__id +msgid "ID" +msgstr "" + +#. module: animal +#: model:ir.model.fields,field_description:animal.field_animal__activity_exception_icon +msgid "Icon" +msgstr "" + +#. module: animal +#: model:ir.model.fields,help:animal.field_animal__activity_exception_icon +msgid "Icon to indicate an exception activity." +msgstr "" + +#. module: animal +#: model:ir.model.fields,help:animal.field_animal__message_needaction +#: model:ir.model.fields,help:animal.field_animal__message_unread +msgid "If checked, new messages require your attention." +msgstr "" + +#. module: animal +#: model:ir.model.fields,help:animal.field_animal__message_has_error +#: model:ir.model.fields,help:animal.field_animal__message_has_sms_error +msgid "If checked, some messages have a delivery error." +msgstr "" + +#. module: animal +#: model:ir.model.fields,field_description:animal.field_animal__image +msgid "Image" +msgstr "" + +#. module: animal +#: model:ir.model.fields,field_description:animal.field_animal__message_is_follower +msgid "Is Follower" +msgstr "" + +#. module: animal +#: model:animal.breed,name:animal.jack_russell +msgid "Jack Russell" +msgstr "" + +#. module: animal +#: model:animal.breed,name:animal.labrador +msgid "Labrador" +msgstr "" + +#. module: animal +#: model:ir.model.fields,field_description:animal.field_animal____last_update +#: model:ir.model.fields,field_description:animal.field_animal_breed____last_update +#: model:ir.model.fields,field_description:animal.field_animal_color____last_update +#: model:ir.model.fields,field_description:animal.field_animal_species____last_update +msgid "Last Modified on" +msgstr "" + +#. module: animal +#: model:ir.model.fields,field_description:animal.field_animal__write_uid +#: model:ir.model.fields,field_description:animal.field_animal_breed__write_uid +#: model:ir.model.fields,field_description:animal.field_animal_color__write_uid +#: model:ir.model.fields,field_description:animal.field_animal_species__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: animal +#: model:ir.model.fields,field_description:animal.field_animal__write_date +#: model:ir.model.fields,field_description:animal.field_animal_breed__write_date +#: model:ir.model.fields,field_description:animal.field_animal_color__write_date +#: model:ir.model.fields,field_description:animal.field_animal_species__write_date +msgid "Last Updated on" +msgstr "" + +#. module: animal +#: model:ir.model.fields,field_description:animal.field_animal__message_main_attachment_id +msgid "Main Attachment" +msgstr "" + +#. module: animal +#: model:ir.model.fields.selection,name:animal.selection__animal__gender__male +#: model_terms:ir.ui.view,arch_db:animal.view_animal_search +msgid "Male" +msgstr "" + +#. module: animal +#: model:res.groups,name:animal.group_animal_manager +msgid "Manager" +msgstr "" + +#. module: animal +#: model:ir.model.fields,field_description:animal.field_animal__message_has_error +msgid "Message Delivery error" +msgstr "" + +#. module: animal +#: model:ir.model.fields,field_description:animal.field_animal__message_ids +msgid "Messages" +msgstr "" + +#. module: animal +#: model:ir.model.fields,field_description:animal.field_animal__my_activity_date_deadline +msgid "My Activity Deadline" +msgstr "" + +#. module: animal +#: model:ir.model.fields,field_description:animal.field_animal__name +#: model:ir.model.fields,field_description:animal.field_animal_breed__name +#: model:ir.model.fields,field_description:animal.field_animal_color__name +#: model:ir.model.fields,field_description:animal.field_animal_species__name +#: model_terms:ir.ui.view,arch_db:animal.view_animal_search +msgid "Name" +msgstr "Nom" + +#. module: animal +#: model:ir.model.fields.selection,name:animal.selection__animal__gender__neutered +#: model_terms:ir.ui.view,arch_db:animal.view_animal_search +msgid "Neutered" +msgstr "" + +#. module: animal +#: model:ir.model.fields,field_description:animal.field_animal__activity_date_deadline +msgid "Next Activity Deadline" +msgstr "" + +#. module: animal +#: model:ir.model.fields,field_description:animal.field_animal__activity_summary +msgid "Next Activity Summary" +msgstr "" + +#. module: animal +#: model:ir.model.fields,field_description:animal.field_animal__activity_type_id +msgid "Next Activity Type" +msgstr "" + +#. module: animal +#: model:ir.model.fields,field_description:animal.field_animal__message_needaction_counter +msgid "Number of Actions" +msgstr "" + +#. module: animal +#: model:ir.model.fields,field_description:animal.field_animal__message_has_error_counter +msgid "Number of errors" +msgstr "" + +#. module: animal +#: model:ir.model.fields,help:animal.field_animal__message_needaction_counter +msgid "Number of messages which requires an action" +msgstr "" + +#. module: animal +#: model:ir.model.fields,help:animal.field_animal__message_has_error_counter +msgid "Number of messages with delivery error" +msgstr "" + +#. module: animal +#: model:ir.model.fields,help:animal.field_animal__message_unread_counter +msgid "Number of unread messages" +msgstr "" + +#. module: animal +#: model:animal.breed,name:animal.pomeranian +msgid "Pomeranian" +msgstr "" + +#. module: animal +#: model:animal.breed,name:animal.pug +msgid "Pug" +msgstr "" + +#. module: animal +#: model:ir.model.fields,field_description:animal.field_animal__ref +msgid "Reference" +msgstr "" + +#. module: animal +#: model:ir.model.fields,field_description:animal.field_animal__activity_user_id +msgid "Responsible User" +msgstr "" + +#. module: animal +#: model:animal.breed,name:animal.rottweiler +msgid "Rottweiler" +msgstr "" + +#. module: animal +#: model:ir.model.fields,field_description:animal.field_animal__message_has_sms_error +msgid "SMS Delivery error" +msgstr "" + +#. module: animal +#: model:animal.color,name:animal.salt +msgid "Salt and pepper" +msgstr "" + +#. module: animal +#: model:animal.breed,name:animal.schnauzer +msgid "Schnauzer" +msgstr "" + +#. module: animal +#: model:ir.ui.menu,name:animal.settings +msgid "Settings" +msgstr "" + +#. module: animal +#: model:animal.breed,name:animal.shih_tzu +msgid "Shih Tzu" +msgstr "" + +#. module: animal +#: model:animal.breed,name:animal.siberian_husky +msgid "Siberian Husky" +msgstr "" + +#. module: animal +#: model:ir.model.fields,field_description:animal.field_animal__size +msgid "Size" +msgstr "Taille" + +#. module: animal +#: model:ir.actions.act_window,name:animal.action_animal_species +#: model:ir.model.fields,field_description:animal.field_animal__species_id +#: model:ir.model.fields,field_description:animal.field_animal_breed__species_id +#: model:ir.model.fields,field_description:animal.field_animal_color__species_id +#: model:ir.ui.menu,name:animal.species +#: model_terms:ir.ui.view,arch_db:animal.view_animal_search +#: model_terms:ir.ui.view,arch_db:animal.view_animal_species_form +#: model_terms:ir.ui.view,arch_db:animal.view_animal_species_tree +msgid "Species" +msgstr "Espèces" + +#. module: animal +#: model:ir.model.fields,help:animal.field_animal__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: animal +#: model:ir.model.fields,help:animal.field_animal__image +msgid "This field holds the photo of the animal." +msgstr "" + +#. module: animal +#: model:ir.model.fields,help:animal.field_animal__activity_exception_decoration +msgid "Type of the exception activity on record." +msgstr "" + +#. module: animal +#: model:ir.model.fields,field_description:animal.field_animal__message_unread +msgid "Unread Messages" +msgstr "" + +#. module: animal +#: model:ir.model.fields,field_description:animal.field_animal__message_unread_counter +msgid "Unread Messages Counter" +msgstr "" + +#. module: animal +#: model:ir.model.fields,field_description:animal.field_animal__website_message_ids +msgid "Website Messages" +msgstr "" + +#. module: animal +#: model:ir.model.fields,help:animal.field_animal__website_message_ids +msgid "Website communication history" +msgstr "" + +#. module: animal +#: model:ir.model.fields,field_description:animal.field_animal__weight +msgid "Weight (in kg)" +msgstr "" + +#. module: animal +#: model:animal.breed,name:animal.yorkshire_terrier +msgid "Yorkshire Terrier" +msgstr "" + +#. module: animal +#: model_terms:ir.ui.view,arch_db:animal.view_animal_color_tree +msgid "colors" +msgstr "" diff --git a/animal_owner/COPYRIGHT b/animal_owner/COPYRIGHT new file mode 100644 index 0000000..15fdde7 --- /dev/null +++ b/animal_owner/COPYRIGHT @@ -0,0 +1,15 @@ +Most of the files are + + :Copyright: This stylesheet has been placed in the public domain. + Copyright (C) 2020 Open Source Integrators + Copyright 2018 Flectra Community + +Many files also contain contributions from third +parties. In this case the original copyright of +the contributions can be traced through the +history of the source version control system. + +When that is not the case, the files contain a prominent +notice stating the original copyright and applicable +license, or come with their own dedicated COPYRIGHT +and/or LICENSE file. \ No newline at end of file diff --git a/animal_owner/LICENSE b/animal_owner/LICENSE new file mode 100644 index 0000000..3939cd9 --- /dev/null +++ b/animal_owner/LICENSE @@ -0,0 +1,663 @@ +For copyright information, please see the COPYRIGHT file. + +GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU Affero General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU Affero General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU Affero General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU Affero General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer +network, you should also make sure that it provides a way for users to +get its source. For example, if your program is a web application, its +interface could display a "Source" link that leads users to an archive +of the code. There are many ways you could offer source, and different +solutions will be better for different programs; see section 13 for the +specific requirements. + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU AGPL, see +. \ No newline at end of file diff --git a/animal_owner/README.rst b/animal_owner/README.rst new file mode 100644 index 0000000..79be88e --- /dev/null +++ b/animal_owner/README.rst @@ -0,0 +1,90 @@ +============ +Animal Owner +============ + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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-OCA%2Fpartner--contact-lightgray.png?logo=github + :target: https://github.com/OCA/partner-contact/tree/14.0/animal_owner + :alt: OCA/partner-contact +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/partner-contact-14-0/partner-contact-14-0-animal_owner + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/134/14.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module allows you to store the owner of a pet. + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +* Go to Animals +* Create or select an animal +* Select his owner + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Open Source Integrators + +Contributors +~~~~~~~~~~~~ + +* Open Source Integrators + + * Maxime Chambreuil + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +.. |maintainer-max3903| image:: https://github.com/max3903.png?size=40px + :target: https://github.com/max3903 + :alt: max3903 + +Current `maintainer `__: + +|maintainer-max3903| + +This module is part of the `OCA/partner-contact `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. \ No newline at end of file diff --git a/animal_owner/__init__.py b/animal_owner/__init__.py new file mode 100644 index 0000000..0650744 --- /dev/null +++ b/animal_owner/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/animal_owner/__manifest__.py b/animal_owner/__manifest__.py new file mode 100644 index 0000000..2d57b32 --- /dev/null +++ b/animal_owner/__manifest__.py @@ -0,0 +1,15 @@ +# Copyright (C) 2020 Open Source Integrators +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +{ + "name": "Animal Owner", + "version": "2.0.1.0.0", + "license": "AGPL-3", + "summary": "Add owner to the animal", + "author": "Open Source Integrators, Odoo Community Association (OCA)", + "maintainer": "Open Source Integrators", + "website": "https://gitlab.com/flectra-community/partner-contact", + "depends": ["animal"], + "data": ["views/animal.xml", "views/res_partner.xml"], + "development_status": "Beta", + "maintainers": ["max3903"], +} diff --git a/animal_owner/i18n/animal_owner.pot b/animal_owner/i18n/animal_owner.pot new file mode 100644 index 0000000..48c8081 --- /dev/null +++ b/animal_owner/i18n/animal_owner.pot @@ -0,0 +1,65 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * animal_owner +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \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: animal_owner +#: model_terms:ir.ui.view,arch_db:animal_owner.view_partner_animal_owner_form +msgid " Animals" +msgstr "" + +#. module: animal_owner +#: model:ir.model,name:animal_owner.model_animal +msgid "Animal" +msgstr "" + +#. module: animal_owner +#: model:ir.model.fields,field_description:animal_owner.field_res_partner__animal_ids +#: model:ir.model.fields,field_description:animal_owner.field_res_users__animal_ids +msgid "Animals" +msgstr "" + +#. module: animal_owner +#: model:ir.model,name:animal_owner.model_res_partner +msgid "Contact" +msgstr "" + +#. module: animal_owner +#: model:ir.model.fields,field_description:animal_owner.field_animal__display_name +#: model:ir.model.fields,field_description:animal_owner.field_res_partner__display_name +msgid "Display Name" +msgstr "" + +#. module: animal_owner +#: model:ir.model.fields,field_description:animal_owner.field_animal__id +#: model:ir.model.fields,field_description:animal_owner.field_res_partner__id +msgid "ID" +msgstr "" + +#. module: animal_owner +#: model:ir.model.fields,field_description:animal_owner.field_animal____last_update +#: model:ir.model.fields,field_description:animal_owner.field_res_partner____last_update +msgid "Last Modified on" +msgstr "" + +#. module: animal_owner +#: model:ir.model.fields,field_description:animal_owner.field_res_partner__animal_count +#: model:ir.model.fields,field_description:animal_owner.field_res_users__animal_count +msgid "Number of Animals" +msgstr "" + +#. module: animal_owner +#: model:ir.model.fields,field_description:animal_owner.field_animal__partner_id +#: model_terms:ir.ui.view,arch_db:animal_owner.view_animal_owner_search +msgid "Owner" +msgstr "" diff --git a/animal_owner/i18n/es.po b/animal_owner/i18n/es.po new file mode 100644 index 0000000..4071870 --- /dev/null +++ b/animal_owner/i18n/es.po @@ -0,0 +1,68 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * animal_owner +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2020-10-20 04:08+0000\n" +"Last-Translator: Maxime Chambreuil \n" +"Language-Team: none\n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 3.10\n" + +#. module: animal_owner +#: model_terms:ir.ui.view,arch_db:animal_owner.view_partner_animal_owner_form +msgid " Animals" +msgstr " Animales" + +#. module: animal_owner +#: model:ir.model,name:animal_owner.model_animal +msgid "Animal" +msgstr "" + +#. module: animal_owner +#: model:ir.model.fields,field_description:animal_owner.field_res_partner__animal_ids +#: model:ir.model.fields,field_description:animal_owner.field_res_users__animal_ids +msgid "Animals" +msgstr "Animales" + +#. module: animal_owner +#: model:ir.model,name:animal_owner.model_res_partner +msgid "Contact" +msgstr "Contacto" + +#. module: animal_owner +#: model:ir.model.fields,field_description:animal_owner.field_animal__display_name +#: model:ir.model.fields,field_description:animal_owner.field_res_partner__display_name +msgid "Display Name" +msgstr "" + +#. module: animal_owner +#: model:ir.model.fields,field_description:animal_owner.field_animal__id +#: model:ir.model.fields,field_description:animal_owner.field_res_partner__id +msgid "ID" +msgstr "" + +#. module: animal_owner +#: model:ir.model.fields,field_description:animal_owner.field_animal____last_update +#: model:ir.model.fields,field_description:animal_owner.field_res_partner____last_update +msgid "Last Modified on" +msgstr "" + +#. module: animal_owner +#: model:ir.model.fields,field_description:animal_owner.field_res_partner__animal_count +#: model:ir.model.fields,field_description:animal_owner.field_res_users__animal_count +msgid "Number of Animals" +msgstr "Numero de animales" + +#. module: animal_owner +#: model:ir.model.fields,field_description:animal_owner.field_animal__partner_id +#: model_terms:ir.ui.view,arch_db:animal_owner.view_animal_owner_search +msgid "Owner" +msgstr "Dueño" diff --git a/animal_owner/i18n/fr.po b/animal_owner/i18n/fr.po new file mode 100644 index 0000000..3dca4e0 --- /dev/null +++ b/animal_owner/i18n/fr.po @@ -0,0 +1,68 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * animal_owner +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2021-12-09 13:39+0000\n" +"Last-Translator: David Beal \n" +"Language-Team: none\n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 4.3.2\n" + +#. module: animal_owner +#: model_terms:ir.ui.view,arch_db:animal_owner.view_partner_animal_owner_form +msgid " Animals" +msgstr "" + +#. module: animal_owner +#: model:ir.model,name:animal_owner.model_animal +msgid "Animal" +msgstr "" + +#. module: animal_owner +#: model:ir.model.fields,field_description:animal_owner.field_res_partner__animal_ids +#: model:ir.model.fields,field_description:animal_owner.field_res_users__animal_ids +msgid "Animals" +msgstr "Animaux" + +#. module: animal_owner +#: model:ir.model,name:animal_owner.model_res_partner +msgid "Contact" +msgstr "" + +#. module: animal_owner +#: model:ir.model.fields,field_description:animal_owner.field_animal__display_name +#: model:ir.model.fields,field_description:animal_owner.field_res_partner__display_name +msgid "Display Name" +msgstr "" + +#. module: animal_owner +#: model:ir.model.fields,field_description:animal_owner.field_animal__id +#: model:ir.model.fields,field_description:animal_owner.field_res_partner__id +msgid "ID" +msgstr "" + +#. module: animal_owner +#: model:ir.model.fields,field_description:animal_owner.field_animal____last_update +#: model:ir.model.fields,field_description:animal_owner.field_res_partner____last_update +msgid "Last Modified on" +msgstr "" + +#. module: animal_owner +#: model:ir.model.fields,field_description:animal_owner.field_res_partner__animal_count +#: model:ir.model.fields,field_description:animal_owner.field_res_users__animal_count +msgid "Number of Animals" +msgstr "" + +#. module: animal_owner +#: model:ir.model.fields,field_description:animal_owner.field_animal__partner_id +#: model_terms:ir.ui.view,arch_db:animal_owner.view_animal_owner_search +msgid "Owner" +msgstr "Propriétaire" diff --git a/animal_owner/models/__init__.py b/animal_owner/models/__init__.py new file mode 100644 index 0000000..e84a5c2 --- /dev/null +++ b/animal_owner/models/__init__.py @@ -0,0 +1,3 @@ +# Copyright (C) 2020 Open Source Integrators +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from . import animal, res_partner diff --git a/animal_owner/models/animal.py b/animal_owner/models/animal.py new file mode 100644 index 0000000..a05d6a6 --- /dev/null +++ b/animal_owner/models/animal.py @@ -0,0 +1,11 @@ +# Copyright (C) 2020 Open Source Integrators +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from flectra import fields, models + + +class Animal(models.Model): + _inherit = "animal" + + partner_id = fields.Many2one( + "res.partner", string="Owner", index=True, track_visibility="onchange" + ) diff --git a/animal_owner/models/res_partner.py b/animal_owner/models/res_partner.py new file mode 100644 index 0000000..d7d927d --- /dev/null +++ b/animal_owner/models/res_partner.py @@ -0,0 +1,26 @@ +# Copyright (C) 2020 Open Source Integrators +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from flectra import api, fields, models + + +class ResPartner(models.Model): + _inherit = "res.partner" + + @api.depends("animal_ids") + def _compute_animal_count(self): + for rec in self: + rec.animal_count = len(rec.animal_ids) + + animal_ids = fields.One2many("animal", "partner_id", string="Animals") + animal_count = fields.Integer( + compute=_compute_animal_count, string="Number of Animals", store=True + ) + + def action_view_animals(self): + action = self.env.ref("animal.action_animal").read()[0] + if self.animal_count > 1: + action["domain"] = [("id", "in", self.animal_ids.ids)] + else: + action["views"] = [(self.env.ref("animal.view_animal_form").id, "form")] + action["res_id"] = self.animal_ids and self.animal_ids.ids[0] or False + return action diff --git a/animal_owner/static/description/icon.png b/animal_owner/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..85d01763f361c30600d58dc27612405c1827fa00 GIT binary patch literal 28332 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 + + + + + +Animal Owner + + + +
+

Animal Owner

+ + +

Beta License: AGPL-3 OCA/partner-contact Translate me on Weblate Try me on Runbot

+

This module allows you to store the owner of a pet.

+

Table of contents

+ +
+

Usage

+
    +
  • Go to Animals
  • +
  • Create or select an animal
  • +
  • Select his owner
  • +
+
+
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed +feedback.

+

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

+
+
+

Credits

+
+

Authors

+
    +
  • Open Source Integrators
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

Current maintainer:

+

max3903

+

This module is part of the OCA/partner-contact project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/animal_owner/views/animal.xml b/animal_owner/views/animal.xml new file mode 100644 index 0000000..1011dd3 --- /dev/null +++ b/animal_owner/views/animal.xml @@ -0,0 +1,62 @@ + + + + + view.animal.owner.tree + animal + + + + + + + + + + + view.animal.owner.form + animal + + + + + + + + + + + view.animal.owner.kanban + animal + + + + + + +
  • +
    +
    +
    + + + + view.animal.owner.search + animal + + + + + + + + + + + +
    diff --git a/animal_owner/views/res_partner.xml b/animal_owner/views/res_partner.xml new file mode 100644 index 0000000..dd1a631 --- /dev/null +++ b/animal_owner/views/res_partner.xml @@ -0,0 +1,25 @@ + + + + + res.partner + + +
    + +
    +
    +
    + +
    diff --git a/base_partner_sequence/i18n/it.po b/base_partner_sequence/i18n/it.po index 090f87e..75cde0c 100644 --- a/base_partner_sequence/i18n/it.po +++ b/base_partner_sequence/i18n/it.po @@ -9,14 +9,15 @@ msgstr "" "Project-Id-Version: Odoo Server 11.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-02-28 03:45+0000\n" -"PO-Revision-Date: 2018-02-28 03:45+0000\n" -"Last-Translator: OCA Transbot , 2018\n" +"PO-Revision-Date: 2021-12-10 17:39+0000\n" +"Last-Translator: Sergio Zanchetta \n" "Language-Team: Italian (https://www.transifex.com/oca/teams/23907/it/)\n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.3.2\n" #. module: base_partner_sequence #: model:ir.model,name:base_partner_sequence.model_res_partner @@ -27,4 +28,4 @@ msgstr "Contatto" #: code:addons/base_partner_sequence/models/partner.py:0 #, python-format msgid "Either field values or an id must be provided." -msgstr "Devono essere forniti i valori dei campi o un identificativo" +msgstr "Devono essere forniti i valori dei campi oppure un ID." diff --git a/partner_contact_gender/i18n/it.po b/partner_contact_gender/i18n/it.po index 96a3157..3501c63 100644 --- a/partner_contact_gender/i18n/it.po +++ b/partner_contact_gender/i18n/it.po @@ -9,19 +9,20 @@ msgstr "" "Project-Id-Version: Odoo Server 10.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-01 20:43+0000\n" -"PO-Revision-Date: 2017-05-01 20:43+0000\n" -"Last-Translator: OCA Transbot , 2016\n" +"PO-Revision-Date: 2021-12-10 17:39+0000\n" +"Last-Translator: Sergio Zanchetta \n" "Language-Team: Italian (https://www.transifex.com/oca/teams/23907/it/)\n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.3.2\n" #. module: partner_contact_gender #: model:ir.model,name:partner_contact_gender.model_res_partner msgid "Contact" -msgstr "" +msgstr "Contatto" #. module: partner_contact_gender #: model:ir.model.fields.selection,name:partner_contact_gender.selection__res_partner__gender__female @@ -32,7 +33,7 @@ msgstr "Femmina" #: model:ir.model.fields,field_description:partner_contact_gender.field_res_partner__gender #: model:ir.model.fields,field_description:partner_contact_gender.field_res_users__gender msgid "Gender" -msgstr "Genere" +msgstr "Sesso" #. module: partner_contact_gender #: model:ir.model.fields.selection,name:partner_contact_gender.selection__res_partner__gender__male diff --git a/partner_manual_rank/i18n/it.po b/partner_manual_rank/i18n/it.po new file mode 100644 index 0000000..a602ed3 --- /dev/null +++ b/partner_manual_rank/i18n/it.po @@ -0,0 +1,49 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * partner_manual_rank +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2021-12-07 18:41+0000\n" +"Last-Translator: Francesco Foresti \n" +"Language-Team: none\n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.3.2\n" + +#. module: partner_manual_rank +#: model:ir.model,name:partner_manual_rank.model_res_partner +msgid "Contact" +msgstr "Contatto" + +#. module: partner_manual_rank +#: model:ir.model.fields,field_description:partner_manual_rank.field_res_partner__display_name +msgid "Display Name" +msgstr "Nome visualizzato" + +#. module: partner_manual_rank +#: model:ir.model.fields,field_description:partner_manual_rank.field_res_partner__id +msgid "ID" +msgstr "ID" + +#. module: partner_manual_rank +#: model:ir.model.fields,field_description:partner_manual_rank.field_res_partner__is_customer +#: model:ir.model.fields,field_description:partner_manual_rank.field_res_users__is_customer +msgid "Is a Customer" +msgstr "E' un cliente" + +#. module: partner_manual_rank +#: model:ir.model.fields,field_description:partner_manual_rank.field_res_partner__is_supplier +#: model:ir.model.fields,field_description:partner_manual_rank.field_res_users__is_supplier +msgid "Is a Supplier" +msgstr "E' un fornitore" + +#. module: partner_manual_rank +#: model:ir.model.fields,field_description:partner_manual_rank.field_res_partner____last_update +msgid "Last Modified on" +msgstr "Ultima modifica il"