diff --git a/base_dns_infrastructure/README.rst b/base_dns_infrastructure/README.rst new file mode 100644 index 0000000..b0a49a7 --- /dev/null +++ b/base_dns_infrastructure/README.rst @@ -0,0 +1,107 @@ +================================== +Base module for DNS infrastructure +================================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:b8a51601cdaa0f1a0f2c598cbe56d3a6fbc60688098769e2a867cdfd449be6a6 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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%2Finfrastructure-lightgray.png?logo=github + :target: https://github.com/OCA/infrastructure/tree/18.0/base_dns_infrastructure + :alt: OCA/infrastructure +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/infrastructure-18-0/infrastructure-18-0-base_dns_infrastructure + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/infrastructure&target_branch=18.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module only introduces the main data model and can be used as is to +manually store DNS records. It provides the main objects. + +Additional modules for specific connectors need to be added to manage +the service provider connection. + +**Table of contents** + +.. contents:: + :local: + +Installation +============ + +Just install this module + +Configuration +============= + +No configuration required. + +Usage +===== + + + +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 to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +------- + +* Elico Corp +* LasLabs +* Mind And Go + +Contributors +------------ + +- Dave Lasley +- Eric Caudal +- Noah Wang +- Liu Lixia +- Augustin Cisterne-Kaas +- Florent THOMAS + +Other credits +------------- + + + +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. + +This module is part of the `OCA/infrastructure `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/base_dns_infrastructure/__init__.py b/base_dns_infrastructure/__init__.py new file mode 100644 index 0000000..69f7bab --- /dev/null +++ b/base_dns_infrastructure/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import models diff --git a/base_dns_infrastructure/__manifest__.py b/base_dns_infrastructure/__manifest__.py new file mode 100644 index 0000000..27fee16 --- /dev/null +++ b/base_dns_infrastructure/__manifest__.py @@ -0,0 +1,29 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +{ + "name": "Base module for DNS infrastructure", + "version": "18.0.1.0.0", + "category": "Services", + "application": True, + "external_dependencies": { + "python": ["validator-collection"], + }, + "depends": ["base", "mail"], + "author": "Elico Corp, " + "LasLabs, " + "Mind And Go, " + "Odoo Community Association (OCA)", + "license": "AGPL-3", + "website": "https://github.com/OCA/infrastructure", + "data": [ + "data/dns_record_type.xml", + "views/dns_record_type.xml", + "views/dns_record.xml", + "views/dns_domain_zone.xml", + "views/dns_menu.xml", + "security/dns.xml", + "security/ir.model.access.csv", + ], + "demo": ["demo/base_dns_infrastructure.xml"], + "installable": True, +} diff --git a/base_dns_infrastructure/data/dns_record_type.xml b/base_dns_infrastructure/data/dns_record_type.xml new file mode 100644 index 0000000..f2680d8 --- /dev/null +++ b/base_dns_infrastructure/data/dns_record_type.xml @@ -0,0 +1,157 @@ + + + + Infrastructure and DNS + 60 + + + + + IPv4 Address + A + IPv4 address. Enter multiple addresses + on separate lines. + Example: + 192.0.2.235 + 198.51.100.234 + + + + + + IPv6 Address + AAAA + IPv6 address. Enter multiple addresses + on separate lines. + Example: + 2001:0db8:85a3:0:0:8a2e:0370:7334 + fe80:0:0:0:202:b3ff:fe1e:8329 + + + + + + Canonical Name + CNAME + The domain name that you want to + resolve to instead of the value in the + Name field. + Example: + www.example.com + + + + + + Mail Exchange + MX + A priority and a domain name that + specifies a mail server. Enter multiple + values on separate lines. + Format: + [priority] [mail server host name] + Example: + 10 mailserver.example.com. + 20 mailserver2.example.com. + + + + + + Text + TXT + A text record. + Enter multiple values on separate lines. + Enclose text in quotation marks. + Example: + "Sample Text Entries" + "Enclose entries in quotation marks" + + + + + + Pointer + PTR + The domain name that you want to return. + Example: + www.example.com + + + + + + Service Locator + SRV + A SRV record. For information about SRV + record format, refer to the applicable + documentation. Enter multiple values + on separate lines. + Format: + [priority] [weight] [port] [server host name] + Example: + 1 10 5269 xmpp-server.example.com. + 2 12 5060 sip-server.example.com. + + + + + + Sender Policy Framework + SPF + An SPF record. For information about SPF + record format, refer to the applicable + documentation. Enter multiple values + on separate lines. Enclose values in + quotation marks. + Example: + "v=spf1 ip4:192.168.0.1/16-all" + + + + + + Name Authority Pointer + NAPTR + An NAPTR record. For information about NAPTR + record format, refer to the applicable + documentation. Enter multiple values + on separate lines. + Format: + [order] [preference] [flags] [services] [regexp] [replacement] + Example: + 100 100 "U" "" "!^.*$!sip:info@bar.example.com!" . + 10 100 "S" "SIP+D2U" "" foo.example.com. + + + + + + Name Server + A + The domain name of a name server. + Enter multiple name servers on + separate lines. + Example: + ns1.amazon.com + ns2.amazon.org + ns3.amazon.net + ns4.amazon.co.uk + + + + diff --git a/base_dns_infrastructure/demo/base_dns_infrastructure.xml b/base_dns_infrastructure/demo/base_dns_infrastructure.xml new file mode 100644 index 0000000..0f1031c --- /dev/null +++ b/base_dns_infrastructure/demo/base_dns_infrastructure.xml @@ -0,0 +1,24 @@ + + + + Odoo Community + OCA + + + + odoo-community.org + + + + + runboat + + + + + + + + 85.10.204.136 + + diff --git a/base_dns_infrastructure/i18n/base_dns_infrastructure.pot b/base_dns_infrastructure/i18n/base_dns_infrastructure.pot new file mode 100644 index 0000000..afddac7 --- /dev/null +++ b/base_dns_infrastructure/i18n/base_dns_infrastructure.pot @@ -0,0 +1,518 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * base_dns_infrastructure +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.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: base_dns_infrastructure +#: model:ir.model.fields,help:base_dns_infrastructure.field_dns_domain_zone__name +msgid "" +"\n" +" In case of a domain FQDN Hosted domain zone name, such as amazon.com\n" +" In case of a sub domain, the first key of the sub domain\n" +" " +msgstr "" + +#. module: base_dns_infrastructure +#. odoo-python +#: code:addons/base_dns_infrastructure/models/dns_domain_zone/common.py:0 +#, python-format +msgid "\"%s\" is not a valid FQDN" +msgstr "" + +#. module: base_dns_infrastructure +#. odoo-python +#: code:addons/base_dns_infrastructure/models/dns_record/common.py:0 +#, python-format +msgid "%(value)s does not match validation rule for a %(type)s record" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__message_needaction +msgid "Action Needed" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__active +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record__active +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record_type__active +msgid "Active" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__activity_ids +msgid "Activities" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__activity_exception_decoration +msgid "Activity Exception Decoration" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__activity_state +msgid "Activity State" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__activity_type_icon +msgid "Activity Type Icon" +msgstr "" + +#. module: base_dns_infrastructure +#: model_terms:ir.ui.view,arch_db:base_dns_infrastructure.dns_zone_form +msgid "Archived" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__message_attachment_count +msgid "Attachment Count" +msgstr "" + +#. module: base_dns_infrastructure +#: model_terms:ir.ui.view,arch_db:base_dns_infrastructure.dns_zone_form +msgid "Commercial Informations" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__complete_name +msgid "Complete Domain Name" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.ui.menu,name:base_dns_infrastructure.menu_dns_configuration +msgid "Configuration" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model,name:base_dns_infrastructure.model_res_partner +msgid "Contact" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__create_uid +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record__create_uid +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record_type__create_uid +msgid "Created by" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__create_date +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record__create_date +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record_type__create_date +msgid "Created on" +msgstr "" + +#. module: base_dns_infrastructure +#: model_terms:ir.ui.view,arch_db:base_dns_infrastructure.dns_zone_search +msgid "Customers" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model,name:base_dns_infrastructure.model_dns_domain_zone +msgid "DNS Domain Zone" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.actions.act_window,name:base_dns_infrastructure.dns_zone_action +msgid "DNS Domain Zones" +msgstr "" + +#. module: base_dns_infrastructure +#: model:res.groups,name:base_dns_infrastructure.group_dns_manager +msgid "DNS Manager" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model,name:base_dns_infrastructure.model_dns_record +msgid "DNS Record" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record__complete_name +msgid "DNS Record Name" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.actions.act_window,name:base_dns_infrastructure.dns_record_type_action +#: model:ir.model,name:base_dns_infrastructure.model_dns_record_type +#: model:ir.ui.menu,name:base_dns_infrastructure.menu_dns_record_type +#: model_terms:ir.ui.view,arch_db:base_dns_infrastructure.dns_record_type_form +msgid "DNS Record Type" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record_type__complete_name +msgid "DNS Record Type Complete Name" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record__value +msgid "DNS Record Value" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.actions.act_window,name:base_dns_infrastructure.dns_record_action +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__record_ids +#: model_terms:ir.ui.view,arch_db:base_dns_infrastructure.dns_zone_form +msgid "DNS Records" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record_type__code +msgid "DNS Type Code" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record_type__name +msgid "DNS Type Name" +msgstr "" + +#. module: base_dns_infrastructure +#: model:res.groups,name:base_dns_infrastructure.group_dns_user +msgid "DNS User" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__display_name +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record__display_name +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record_type__display_name +msgid "Display Name" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record__zone_id +#: model_terms:ir.ui.view,arch_db:base_dns_infrastructure.dns_record_search +#: model_terms:ir.ui.view,arch_db:base_dns_infrastructure.dns_zone_search +msgid "Domain" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__name +msgid "Domain Name" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.ui.menu,name:base_dns_infrastructure.menu_dns_records +msgid "Domain Records" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.ui.menu,name:base_dns_infrastructure.menu_dns_domain_zone +#: model_terms:ir.ui.view,arch_db:base_dns_infrastructure.dns_zone_form +msgid "Domain Zone" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_res_partner__domain_zone_ids +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_res_users__domain_zone_ids +msgid "Domain Zones" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,help:base_dns_infrastructure.field_dns_record__zone_id +msgid "Domain that this record is applied to." +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields.selection,name:base_dns_infrastructure.selection__dns_domain_zone__state__draft +msgid "Draft" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,help:base_dns_infrastructure.field_dns_record__value +msgid "" +"Enter multiple values on separate lines. Enclose text in quotation marks." +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields.selection,name:base_dns_infrastructure.selection__dns_domain_zone__state__exception +msgid "Exception" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__message_follower_ids +msgid "Followers" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__message_partner_ids +msgid "Followers (Partners)" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,help:base_dns_infrastructure.field_dns_domain_zone__activity_type_icon +msgid "Font awesome icon e.g. fa-tasks" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__has_message +msgid "Has Message" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record_type__help +msgid "Help" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__id +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record__id +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record_type__id +msgid "ID" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__activity_exception_icon +msgid "Icon" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,help:base_dns_infrastructure.field_dns_domain_zone__activity_exception_icon +msgid "Icon to indicate an exception activity." +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,help:base_dns_infrastructure.field_dns_domain_zone__message_needaction +msgid "If checked, new messages require your attention." +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,help:base_dns_infrastructure.field_dns_domain_zone__message_has_error +msgid "If checked, some messages have a delivery error." +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,help:base_dns_infrastructure.field_dns_domain_zone__state +msgid "In Production when active otherwise Exception" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields.selection,name:base_dns_infrastructure.selection__dns_domain_zone__state__inactive +msgid "Inactive" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.ui.menu,name:base_dns_infrastructure.menu_base_infrastructure_dns +msgid "Infrastructure DNS" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.module.category,name:base_dns_infrastructure.module_category_infrastructure_dns +msgid "Infrastructure and DNS" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__message_is_follower +msgid "Is Follower" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone____last_update +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record____last_update +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record_type____last_update +msgid "Last Modified on" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__write_uid +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record__write_uid +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record_type__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__write_date +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record__write_date +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record_type__write_date +msgid "Last Updated on" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__message_main_attachment_id +msgid "Main Attachment" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__message_has_error +msgid "Message Delivery error" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__message_ids +msgid "Messages" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__my_activity_date_deadline +msgid "My Activity Deadline" +msgstr "" + +#. module: base_dns_infrastructure +#: model_terms:ir.ui.view,arch_db:base_dns_infrastructure.dns_record_type_form +#: model_terms:ir.ui.view,arch_db:base_dns_infrastructure.dns_zone_form +msgid "Name" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,help:base_dns_infrastructure.field_dns_record_type__name +msgid "Name of DNS record type, such a \"A\" or \"CNAME\"." +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__activity_date_deadline +msgid "Next Activity Deadline" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__activity_summary +msgid "Next Activity Summary" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__activity_type_id +msgid "Next Activity Type" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__message_needaction_counter +msgid "Number of Actions" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__message_has_error_counter +msgid "Number of errors" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,help:base_dns_infrastructure.field_dns_domain_zone__message_needaction_counter +msgid "Number of messages requiring action" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,help:base_dns_infrastructure.field_dns_domain_zone__message_has_error_counter +msgid "Number of messages with delivery error" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__owner_partner_id +msgid "Owner" +msgstr "" + +#. module: base_dns_infrastructure +#: model_terms:ir.ui.view,arch_db:base_dns_infrastructure.dns_record_form +msgid "Parameters" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__parent_id +msgid "Parent Domain" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__parent_path +msgid "Parent Path" +msgstr "" + +#. module: base_dns_infrastructure +#: model_terms:ir.ui.view,arch_db:base_dns_infrastructure.dns_zone_form +msgid "Parent domain" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields.selection,name:base_dns_infrastructure.selection__dns_domain_zone__state__production +msgid "Production" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record__type_help +msgid "Record Help" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record__type_id +msgid "Record Type" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__renew_date +msgid "Renewal Date" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__activity_user_id +msgid "Responsible User" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__state +msgid "State" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,help:base_dns_infrastructure.field_dns_domain_zone__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: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record__ttl +msgid "TTL" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,help:base_dns_infrastructure.field_dns_record__type_help +#: model:ir.model.fields,help:base_dns_infrastructure.field_dns_record_type__help +msgid "" +"Text that will be displayed to user as a formatting guide for this record " +"type." +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,help:base_dns_infrastructure.field_dns_record_type__validate_regex +msgid "" +"This is a regex that is used for validation of the record value. Leave blank" +" for no validation." +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,help:base_dns_infrastructure.field_dns_record__ttl +msgid "Time to Live, in seconds. Scope: 1-604800" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,help:base_dns_infrastructure.field_dns_domain_zone__activity_exception_decoration +msgid "Type of the exception activity on record." +msgstr "" + +#. module: base_dns_infrastructure +#: model_terms:ir.ui.view,arch_db:base_dns_infrastructure.dns_record_search +msgid "Types" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record_type__validate_regex +msgid "Validate Regex" +msgstr "" + +#. module: base_dns_infrastructure +#: model_terms:ir.ui.view,arch_db:base_dns_infrastructure.dns_record_form +msgid "Values" +msgstr "" + +#. module: base_dns_infrastructure +#: model:ir.ui.menu,name:base_dns_infrastructure.menu_dns_and_type +msgid "Zones And Records" +msgstr "" diff --git a/base_dns_infrastructure/i18n/it.po b/base_dns_infrastructure/i18n/it.po new file mode 100644 index 0000000..ff06e60 --- /dev/null +++ b/base_dns_infrastructure/i18n/it.po @@ -0,0 +1,536 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * base_dns_infrastructure +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2024-08-30 10:06+0000\n" +"Last-Translator: mymage \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 5.6.2\n" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,help:base_dns_infrastructure.field_dns_domain_zone__name +msgid "" +"\n" +" In case of a domain FQDN Hosted domain zone name, such as amazon.com\n" +" In case of a sub domain, the first key of the sub domain\n" +" " +msgstr "" +"\n" +" Nel caso di dominio FQDN nome zona dominio ospitato, come amazon." +"com\n" +" Nel caso di un sotto dominio, la prima chiave del sotto dominio\n" +" " + +#. module: base_dns_infrastructure +#. odoo-python +#: code:addons/base_dns_infrastructure/models/dns_domain_zone/common.py:0 +#, python-format +msgid "\"%s\" is not a valid FQDN" +msgstr "\"%s\" non è un FQDN valido" + +#. module: base_dns_infrastructure +#. odoo-python +#: code:addons/base_dns_infrastructure/models/dns_record/common.py:0 +#, python-format +msgid "%(value)s does not match validation rule for a %(type)s record" +msgstr "" +"%(value)s non corrisponde alla regola di validazione per un record %(type)s" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__message_needaction +msgid "Action Needed" +msgstr "Azione richiesta" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__active +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record__active +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record_type__active +msgid "Active" +msgstr "Attivo" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__activity_ids +msgid "Activities" +msgstr "Attività" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__activity_exception_decoration +msgid "Activity Exception Decoration" +msgstr "Decorazione eccezione attività" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__activity_state +msgid "Activity State" +msgstr "Stato attività" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__activity_type_icon +msgid "Activity Type Icon" +msgstr "Icona tipo attività" + +#. module: base_dns_infrastructure +#: model_terms:ir.ui.view,arch_db:base_dns_infrastructure.dns_zone_form +msgid "Archived" +msgstr "In archivio" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__message_attachment_count +msgid "Attachment Count" +msgstr "Conteggio allegati" + +#. module: base_dns_infrastructure +#: model_terms:ir.ui.view,arch_db:base_dns_infrastructure.dns_zone_form +msgid "Commercial Informations" +msgstr "Informazioni commerciali" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__complete_name +msgid "Complete Domain Name" +msgstr "Nome dominio completo" + +#. module: base_dns_infrastructure +#: model:ir.ui.menu,name:base_dns_infrastructure.menu_dns_configuration +msgid "Configuration" +msgstr "Configurazione" + +#. module: base_dns_infrastructure +#: model:ir.model,name:base_dns_infrastructure.model_res_partner +msgid "Contact" +msgstr "Contatto" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__create_uid +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record__create_uid +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record_type__create_uid +msgid "Created by" +msgstr "Creato da" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__create_date +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record__create_date +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record_type__create_date +msgid "Created on" +msgstr "Creato il" + +#. module: base_dns_infrastructure +#: model_terms:ir.ui.view,arch_db:base_dns_infrastructure.dns_zone_search +msgid "Customers" +msgstr "Clienti" + +#. module: base_dns_infrastructure +#: model:ir.model,name:base_dns_infrastructure.model_dns_domain_zone +msgid "DNS Domain Zone" +msgstr "Zona dominio DNS" + +#. module: base_dns_infrastructure +#: model:ir.actions.act_window,name:base_dns_infrastructure.dns_zone_action +msgid "DNS Domain Zones" +msgstr "Zone dominio DNS" + +#. module: base_dns_infrastructure +#: model:res.groups,name:base_dns_infrastructure.group_dns_manager +msgid "DNS Manager" +msgstr "Responsabile DNS" + +#. module: base_dns_infrastructure +#: model:ir.model,name:base_dns_infrastructure.model_dns_record +msgid "DNS Record" +msgstr "Record DNS" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record__complete_name +msgid "DNS Record Name" +msgstr "Nome record DNS" + +#. module: base_dns_infrastructure +#: model:ir.actions.act_window,name:base_dns_infrastructure.dns_record_type_action +#: model:ir.model,name:base_dns_infrastructure.model_dns_record_type +#: model:ir.ui.menu,name:base_dns_infrastructure.menu_dns_record_type +#: model_terms:ir.ui.view,arch_db:base_dns_infrastructure.dns_record_type_form +msgid "DNS Record Type" +msgstr "Tipo record DNS" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record_type__complete_name +msgid "DNS Record Type Complete Name" +msgstr "Nome completo tipo record DNS" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record__value +msgid "DNS Record Value" +msgstr "Valore record DNS" + +#. module: base_dns_infrastructure +#: model:ir.actions.act_window,name:base_dns_infrastructure.dns_record_action +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__record_ids +#: model_terms:ir.ui.view,arch_db:base_dns_infrastructure.dns_zone_form +msgid "DNS Records" +msgstr "Record DNS" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record_type__code +msgid "DNS Type Code" +msgstr "Codice tipo DNS" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record_type__name +msgid "DNS Type Name" +msgstr "Nome tipo DNS" + +#. module: base_dns_infrastructure +#: model:res.groups,name:base_dns_infrastructure.group_dns_user +msgid "DNS User" +msgstr "Utente DNS" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__display_name +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record__display_name +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record_type__display_name +msgid "Display Name" +msgstr "Nome visualizzato" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record__zone_id +#: model_terms:ir.ui.view,arch_db:base_dns_infrastructure.dns_record_search +#: model_terms:ir.ui.view,arch_db:base_dns_infrastructure.dns_zone_search +msgid "Domain" +msgstr "Dominio" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__name +msgid "Domain Name" +msgstr "Nome dominio" + +#. module: base_dns_infrastructure +#: model:ir.ui.menu,name:base_dns_infrastructure.menu_dns_records +msgid "Domain Records" +msgstr "Record dominio" + +#. module: base_dns_infrastructure +#: model:ir.ui.menu,name:base_dns_infrastructure.menu_dns_domain_zone +#: model_terms:ir.ui.view,arch_db:base_dns_infrastructure.dns_zone_form +msgid "Domain Zone" +msgstr "Zona dominio" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_res_partner__domain_zone_ids +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_res_users__domain_zone_ids +msgid "Domain Zones" +msgstr "Zone dominio" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,help:base_dns_infrastructure.field_dns_record__zone_id +msgid "Domain that this record is applied to." +msgstr "Dominio a cui si applica questo record." + +#. module: base_dns_infrastructure +#: model:ir.model.fields.selection,name:base_dns_infrastructure.selection__dns_domain_zone__state__draft +msgid "Draft" +msgstr "Bozza" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,help:base_dns_infrastructure.field_dns_record__value +msgid "" +"Enter multiple values on separate lines. Enclose text in quotation marks." +msgstr "" +"Inserire valori multipli in righe separate. Inserire il testo tra apici." + +#. module: base_dns_infrastructure +#: model:ir.model.fields.selection,name:base_dns_infrastructure.selection__dns_domain_zone__state__exception +msgid "Exception" +msgstr "Eccezione" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__message_follower_ids +msgid "Followers" +msgstr "Seguito da" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__message_partner_ids +msgid "Followers (Partners)" +msgstr "Seguito da (partner)" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,help:base_dns_infrastructure.field_dns_domain_zone__activity_type_icon +msgid "Font awesome icon e.g. fa-tasks" +msgstr "Icona Font Awesome es. fa-tasks" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__has_message +msgid "Has Message" +msgstr "Ha un messaggio" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record_type__help +msgid "Help" +msgstr "Aiuto" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__id +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record__id +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record_type__id +msgid "ID" +msgstr "ID" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__activity_exception_icon +msgid "Icon" +msgstr "Icona" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,help:base_dns_infrastructure.field_dns_domain_zone__activity_exception_icon +msgid "Icon to indicate an exception activity." +msgstr "Icona per indicare un'attività eccezione." + +#. module: base_dns_infrastructure +#: model:ir.model.fields,help:base_dns_infrastructure.field_dns_domain_zone__message_needaction +msgid "If checked, new messages require your attention." +msgstr "Se selezionata, nuovi messaggi richiedono attenzione." + +#. module: base_dns_infrastructure +#: model:ir.model.fields,help:base_dns_infrastructure.field_dns_domain_zone__message_has_error +msgid "If checked, some messages have a delivery error." +msgstr "Se selezionata, alcuni messaggi hanno un errore di consegna." + +#. module: base_dns_infrastructure +#: model:ir.model.fields,help:base_dns_infrastructure.field_dns_domain_zone__state +msgid "In Production when active otherwise Exception" +msgstr "In produzione mentre attivo altrimenti eccezione" + +#. module: base_dns_infrastructure +#: model:ir.model.fields.selection,name:base_dns_infrastructure.selection__dns_domain_zone__state__inactive +msgid "Inactive" +msgstr "Inattivo" + +#. module: base_dns_infrastructure +#: model:ir.ui.menu,name:base_dns_infrastructure.menu_base_infrastructure_dns +msgid "Infrastructure DNS" +msgstr "Infrastruttura DNS" + +#. module: base_dns_infrastructure +#: model:ir.module.category,name:base_dns_infrastructure.module_category_infrastructure_dns +msgid "Infrastructure and DNS" +msgstr "Infrastruttura e DNS" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__message_is_follower +msgid "Is Follower" +msgstr "Segue" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone____last_update +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record____last_update +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record_type____last_update +msgid "Last Modified on" +msgstr "Ultima modifica il" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__write_uid +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record__write_uid +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record_type__write_uid +msgid "Last Updated by" +msgstr "Ultimo aggiornamento di" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__write_date +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record__write_date +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record_type__write_date +msgid "Last Updated on" +msgstr "Ultimo aggiornamento il" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__message_main_attachment_id +msgid "Main Attachment" +msgstr "Allegato principale" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__message_has_error +msgid "Message Delivery error" +msgstr "Errore di consegna messaggio" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__message_ids +msgid "Messages" +msgstr "Messaggi" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__my_activity_date_deadline +msgid "My Activity Deadline" +msgstr "Scadenza mia attività" + +#. module: base_dns_infrastructure +#: model_terms:ir.ui.view,arch_db:base_dns_infrastructure.dns_record_type_form +#: model_terms:ir.ui.view,arch_db:base_dns_infrastructure.dns_zone_form +msgid "Name" +msgstr "Nome" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,help:base_dns_infrastructure.field_dns_record_type__name +msgid "Name of DNS record type, such a \"A\" or \"CNAME\"." +msgstr "Nome del tipo record DNS, come un \"A\" o \"CNAME\"." + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__activity_date_deadline +msgid "Next Activity Deadline" +msgstr "Scadenza prossima attività" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__activity_summary +msgid "Next Activity Summary" +msgstr "Riepilogo prossima attività" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__activity_type_id +msgid "Next Activity Type" +msgstr "Tipo prossima attività" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__message_needaction_counter +msgid "Number of Actions" +msgstr "Numero di azioni" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__message_has_error_counter +msgid "Number of errors" +msgstr "Numero di errori" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,help:base_dns_infrastructure.field_dns_domain_zone__message_needaction_counter +msgid "Number of messages requiring action" +msgstr "Numero di messaggi che richiedono un'azione" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,help:base_dns_infrastructure.field_dns_domain_zone__message_has_error_counter +msgid "Number of messages with delivery error" +msgstr "Numero di messaggi con errore di consegna" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__owner_partner_id +msgid "Owner" +msgstr "Proprietario" + +#. module: base_dns_infrastructure +#: model_terms:ir.ui.view,arch_db:base_dns_infrastructure.dns_record_form +msgid "Parameters" +msgstr "Parametri" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__parent_id +msgid "Parent Domain" +msgstr "Dominio padre" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__parent_path +msgid "Parent Path" +msgstr "Percorso padre" + +#. module: base_dns_infrastructure +#: model_terms:ir.ui.view,arch_db:base_dns_infrastructure.dns_zone_form +msgid "Parent domain" +msgstr "Dominio padre" + +#. module: base_dns_infrastructure +#: model:ir.model.fields.selection,name:base_dns_infrastructure.selection__dns_domain_zone__state__production +msgid "Production" +msgstr "Produzione" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record__type_help +msgid "Record Help" +msgstr "Aiuto record" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record__type_id +msgid "Record Type" +msgstr "Tipo di record" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__renew_date +msgid "Renewal Date" +msgstr "Data rinnovo" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__activity_user_id +msgid "Responsible User" +msgstr "Utente responsabile" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_domain_zone__state +msgid "State" +msgstr "Stato" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,help:base_dns_infrastructure.field_dns_domain_zone__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 "" +"Stato in base alle attività\n" +"Scaduto: la data richiesta è trascorsa\n" +"Oggi: la data attività è oggi\n" +"Pianificato: attività future." + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record__ttl +msgid "TTL" +msgstr "TTL" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,help:base_dns_infrastructure.field_dns_record__type_help +#: model:ir.model.fields,help:base_dns_infrastructure.field_dns_record_type__help +msgid "" +"Text that will be displayed to user as a formatting guide for this record " +"type." +msgstr "" +"Testo che verrà mostrato all'utente come guida formattazione per questo tipo " +"di record." + +#. module: base_dns_infrastructure +#: model:ir.model.fields,help:base_dns_infrastructure.field_dns_record_type__validate_regex +msgid "" +"This is a regex that is used for validation of the record value. Leave blank" +" for no validation." +msgstr "" +"Questa è una espressione regolare utilizzata per la validazione del valore " +"del record. Lasciare buoto per non valutare." + +#. module: base_dns_infrastructure +#: model:ir.model.fields,help:base_dns_infrastructure.field_dns_record__ttl +msgid "Time to Live, in seconds. Scope: 1-604800" +msgstr "Tempo di vita, in secondi. Intervallo 1-604800" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,help:base_dns_infrastructure.field_dns_domain_zone__activity_exception_decoration +msgid "Type of the exception activity on record." +msgstr "Tipo di attività eccezione sul record." + +#. module: base_dns_infrastructure +#: model_terms:ir.ui.view,arch_db:base_dns_infrastructure.dns_record_search +msgid "Types" +msgstr "Tipi" + +#. module: base_dns_infrastructure +#: model:ir.model.fields,field_description:base_dns_infrastructure.field_dns_record_type__validate_regex +msgid "Validate Regex" +msgstr "Valida espressione regolare" + +#. module: base_dns_infrastructure +#: model_terms:ir.ui.view,arch_db:base_dns_infrastructure.dns_record_form +msgid "Values" +msgstr "Valori" + +#. module: base_dns_infrastructure +#: model:ir.ui.menu,name:base_dns_infrastructure.menu_dns_and_type +msgid "Zones And Records" +msgstr "Zona e record" diff --git a/base_dns_infrastructure/models/__init__.py b/base_dns_infrastructure/models/__init__.py new file mode 100644 index 0000000..4f34c2b --- /dev/null +++ b/base_dns_infrastructure/models/__init__.py @@ -0,0 +1,6 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import dns_record_type +from . import dns_domain_zone +from . import dns_record +from . import res_partner diff --git a/base_dns_infrastructure/models/dns_domain_zone/__init__.py b/base_dns_infrastructure/models/dns_domain_zone/__init__.py new file mode 100644 index 0000000..c81be2c --- /dev/null +++ b/base_dns_infrastructure/models/dns_domain_zone/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import common diff --git a/base_dns_infrastructure/models/dns_domain_zone/common.py b/base_dns_infrastructure/models/dns_domain_zone/common.py new file mode 100644 index 0000000..4db87d1 --- /dev/null +++ b/base_dns_infrastructure/models/dns_domain_zone/common.py @@ -0,0 +1,80 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from validator_collection import checkers + +from odoo import _, api, fields, models +from odoo.exceptions import ValidationError + + +class DNSDomainZone(models.Model): + _name = "dns.domain_zone" + _inherit = ["mail.thread", "mail.activity.mixin"] + _parent_store = True + _rec_name = "complete_name" + _order = "complete_name" + _description = "DNS Domain Zone" + + name = fields.Char( + string="Domain Name", + required=True, + help=""" + In case of a domain FQDN Hosted domain zone name, such as amazon.com + In case of a sub domain, the first key of the sub domain + """, + ) + active = fields.Boolean(default=True) + state = fields.Selection( + [ + ("draft", "Draft"), + ("production", "Production"), + ("exception", "Exception"), + ("inactive", "Inactive"), + ], + default="draft", + help="In Production when active otherwise Exception", + tracking=True, + ) + + owner_partner_id = fields.Many2one(string="Owner", comodel_name="res.partner") + renew_date = fields.Date(string="Renewal Date", tracking=True) + + record_ids = fields.One2many( + string="DNS Records", + comodel_name="dns.record", + inverse_name="zone_id", + ) + + parent_id = fields.Many2one( + comodel_name="dns.domain_zone", + string="Parent Domain", + index=True, + ondelete="restrict", + tracking=True, + ) + parent_path = fields.Char(index=True) + + complete_name = fields.Char( + string="Complete Domain Name", + compute="_compute_complete_name", + recursive=True, + store=True, + ) + + @api.constrains("complete_name") + def _check_valid_domain_name(self): + for record in self: + valid = checkers.is_domain( + record.complete_name, + ) + if not valid: + raise ValidationError( + _('"%s" is not a valid FQDN') % (record.complete_name,) + ) + + @api.depends("name", "parent_id") + def _compute_complete_name(self): + for record in self: + if record.parent_id: + record.complete_name = f"{record.name}.{record.parent_id.complete_name}" + else: + record.complete_name = record.name diff --git a/base_dns_infrastructure/models/dns_record/__init__.py b/base_dns_infrastructure/models/dns_record/__init__.py new file mode 100644 index 0000000..c81be2c --- /dev/null +++ b/base_dns_infrastructure/models/dns_record/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import common diff --git a/base_dns_infrastructure/models/dns_record/common.py b/base_dns_infrastructure/models/dns_record/common.py new file mode 100644 index 0000000..d00619a --- /dev/null +++ b/base_dns_infrastructure/models/dns_record/common.py @@ -0,0 +1,78 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +import re + +from odoo import _, api, fields, models +from odoo.exceptions import ValidationError + + +class DNSRecord(models.Model): + _name = "dns.record" + _rec_name = "complete_name" + _order = "complete_name" + _description = "DNS Record" + + complete_name = fields.Char( + string="DNS Record Name", + compute="_compute_complete_name", + recursive=True, + store=True, + ) + active = fields.Boolean(default=True) + zone_id = fields.Many2one( + string="Domain", + comodel_name="dns.domain_zone", + ondelete="restrict", + required=True, + help="Domain that this record is applied to.", + ) + type_id = fields.Many2one( + string="Record Type", + comodel_name="dns.record.type", + required=True, + ) + type_help = fields.Text( + string="Record Help", + related="type_id.help", + ) + value = fields.Char( + string="DNS Record Value", + help="Enter multiple values on separate lines. Enclose text in " + "quotation marks.", + required=True, + ) + ttl = fields.Integer( + default=60, + help="Time to Live, in seconds. Scope: 1-604800", + required=True, + string="TTL", + ) + + @api.depends( + "zone_id.complete_name", + "type_id.code", + ) + def _compute_complete_name(self): + for record in self: + record.complete_name = f"{record.zone_id.complete_name} \ + [{record.type_id.code}]: {record.value}" + + @api.constrains("type_id", "value") + def _check_value(self): + """It should raise ValidationError on invalid values""" + for rec_id in self: + if not rec_id.type_id.validate_regex: + continue + if not re.search( + rec_id.type_id.validate_regex.replace("\\\\", "\\"), + rec_id.value, + flags=re.MULTILINE | re.IGNORECASE, + ): + raise ValidationError( + _( + "%(value)s does not match " + "validation rule for a %(type)s record", + value=rec_id.value, + type=rec_id.type_id.display_name, + ) + ) diff --git a/base_dns_infrastructure/models/dns_record_type/__init__.py b/base_dns_infrastructure/models/dns_record_type/__init__.py new file mode 100644 index 0000000..c81be2c --- /dev/null +++ b/base_dns_infrastructure/models/dns_record_type/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import common diff --git a/base_dns_infrastructure/models/dns_record_type/common.py b/base_dns_infrastructure/models/dns_record_type/common.py new file mode 100644 index 0000000..7843629 --- /dev/null +++ b/base_dns_infrastructure/models/dns_record_type/common.py @@ -0,0 +1,41 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import api, fields, models + + +class DNSRecordType(models.Model): + _name = "dns.record.type" + _rec_name = "complete_name" + _rec_names_search = ["name", "code"] + _description = "DNS Record Type" + + name = fields.Char( + string="DNS Type Name", + required=True, + help='Name of DNS record type, such a "A" or "CNAME".', + ) + code = fields.Char( + string="DNS Type Code", + required=True, + ) + active = fields.Boolean(default=True) + help = fields.Text( + help="Text that will be displayed to user as a formatting guide " + "for this record type.", + ) + validate_regex = fields.Text( + help="This is a regex that is used for validation of the record " + "value. Leave blank for no validation.", + ) + + complete_name = fields.Char( + string="DNS Record Type Complete Name", + compute="_compute_complete_name", + recursive=True, + store=True, + ) + + @api.depends("name", "code") + def _compute_complete_name(self): + for record_type in self: + record_type.complete_name = f"[{record_type.code}]{record_type.name}" diff --git a/base_dns_infrastructure/models/res_partner/__init__.py b/base_dns_infrastructure/models/res_partner/__init__.py new file mode 100644 index 0000000..c81be2c --- /dev/null +++ b/base_dns_infrastructure/models/res_partner/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import common diff --git a/base_dns_infrastructure/models/res_partner/common.py b/base_dns_infrastructure/models/res_partner/common.py new file mode 100644 index 0000000..1ccaa85 --- /dev/null +++ b/base_dns_infrastructure/models/res_partner/common.py @@ -0,0 +1,13 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class ResPartner(models.Model): + _inherit = "res.partner" + + domain_zone_ids = fields.One2many( + string="Domain Zones", + comodel_name="dns.domain_zone", + inverse_name="owner_partner_id", + ) diff --git a/base_dns_infrastructure/pyproject.toml b/base_dns_infrastructure/pyproject.toml new file mode 100644 index 0000000..4231d0c --- /dev/null +++ b/base_dns_infrastructure/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/base_dns_infrastructure/readme/CONFIGURE.md b/base_dns_infrastructure/readme/CONFIGURE.md new file mode 100644 index 0000000..e7dc235 --- /dev/null +++ b/base_dns_infrastructure/readme/CONFIGURE.md @@ -0,0 +1 @@ +No configuration required. diff --git a/base_dns_infrastructure/readme/CONTRIBUTORS.md b/base_dns_infrastructure/readme/CONTRIBUTORS.md new file mode 100644 index 0000000..61d5bea --- /dev/null +++ b/base_dns_infrastructure/readme/CONTRIBUTORS.md @@ -0,0 +1,6 @@ +- Dave Lasley \<\> +- Eric Caudal \<\> +- Noah Wang \<\> +- Liu Lixia \<\> +- Augustin Cisterne-Kaas \<\> +- Florent THOMAS \<\> diff --git a/base_dns_infrastructure/readme/CREDITS.md b/base_dns_infrastructure/readme/CREDITS.md new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/base_dns_infrastructure/readme/CREDITS.md @@ -0,0 +1 @@ + diff --git a/base_dns_infrastructure/readme/DESCRIPTION.md b/base_dns_infrastructure/readme/DESCRIPTION.md new file mode 100644 index 0000000..f18e863 --- /dev/null +++ b/base_dns_infrastructure/readme/DESCRIPTION.md @@ -0,0 +1,5 @@ +This module only introduces the main data model and can be used as is to +manually store DNS records. It provides the main objects. + +Additional modules for specific connectors need to be added to manage +the service provider connection. diff --git a/base_dns_infrastructure/readme/INSTALL.md b/base_dns_infrastructure/readme/INSTALL.md new file mode 100644 index 0000000..b5c32bb --- /dev/null +++ b/base_dns_infrastructure/readme/INSTALL.md @@ -0,0 +1 @@ +Just install this module diff --git a/base_dns_infrastructure/readme/USAGE.md b/base_dns_infrastructure/readme/USAGE.md new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/base_dns_infrastructure/readme/USAGE.md @@ -0,0 +1 @@ + diff --git a/base_dns_infrastructure/security/dns.xml b/base_dns_infrastructure/security/dns.xml new file mode 100644 index 0000000..e129ef7 --- /dev/null +++ b/base_dns_infrastructure/security/dns.xml @@ -0,0 +1,21 @@ + + + + DNS User + + + + + + + DNS Manager + + + + + diff --git a/base_dns_infrastructure/security/ir.model.access.csv b/base_dns_infrastructure/security/ir.model.access.csv new file mode 100644 index 0000000..7af24ec --- /dev/null +++ b/base_dns_infrastructure/security/ir.model.access.csv @@ -0,0 +1,7 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_dns_zone_user,access_dns_zone_user,base_dns_infrastructure.model_dns_domain_zone,base_dns_infrastructure.group_dns_user,1,0,0,0 +access_dns_zone_manager,access_dns_zone_manager,base_dns_infrastructure.model_dns_domain_zone,base_dns_infrastructure.group_dns_manager,1,1,1,1 +access_dns_record_user,access_dns_record_user,base_dns_infrastructure.model_dns_record,base_dns_infrastructure.group_dns_user,1,0,0,0 +access_dns_record_manager,access_dns_record_manager,base_dns_infrastructure.model_dns_record,base_dns_infrastructure.group_dns_manager,1,1,1,1 +access_dns_record_type_user,access_dns_record_type_user,base_dns_infrastructure.model_dns_record_type,base_dns_infrastructure.group_dns_user,1,0,0,0 +access_dns_record_type_manager,access_dns_record_type_manager,base_dns_infrastructure.model_dns_record_type,base_dns_infrastructure.group_dns_manager,1,1,1,1 diff --git a/base_dns_infrastructure/static/description/icon.png b/base_dns_infrastructure/static/description/icon.png new file mode 100644 index 0000000..3bc5fdb Binary files /dev/null and b/base_dns_infrastructure/static/description/icon.png differ diff --git a/base_dns_infrastructure/static/description/index.html b/base_dns_infrastructure/static/description/index.html new file mode 100644 index 0000000..a83c837 --- /dev/null +++ b/base_dns_infrastructure/static/description/index.html @@ -0,0 +1,448 @@ + + + + + +Base module for DNS infrastructure + + + +
+

Base module for DNS infrastructure

+ + +

Beta License: AGPL-3 OCA/infrastructure Translate me on Weblate Try me on Runboat

+

This module only introduces the main data model and can be used as is to +manually store DNS records. It provides the main objects.

+

Additional modules for specific connectors need to be added to manage +the service provider connection.

+

Table of contents

+ +
+

Installation

+

Just install this module

+
+
+

Configuration

+

No configuration required.

+
+
+

Usage

+
+
+

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 to smash it by providing a detailed and welcomed +feedback.

+

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

+
+
+

Credits

+
+

Authors

+
    +
  • Elico Corp
  • +
  • LasLabs
  • +
  • Mind And Go
  • +
+
+
+

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.

+

This module is part of the OCA/infrastructure project on GitHub.

+

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

+
+
+
+ + diff --git a/base_dns_infrastructure/static/src/img/network.png b/base_dns_infrastructure/static/src/img/network.png new file mode 100644 index 0000000..3bc5fdb Binary files /dev/null and b/base_dns_infrastructure/static/src/img/network.png differ diff --git a/base_dns_infrastructure/views/dns_domain_zone.xml b/base_dns_infrastructure/views/dns_domain_zone.xml new file mode 100644 index 0000000..96157b8 --- /dev/null +++ b/base_dns_infrastructure/views/dns_domain_zone.xml @@ -0,0 +1,110 @@ + + + + DNS Domain Zones + dns.domain_zone + list,form + + + + DNS Zone Tree + dns.domain_zone + + + + + + + + + + + + DNS Zone Form + dns.domain_zone + +
+
+ +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + +
+ + + + DNS Zone Search + dns.domain_zone + + + + + + + + + + + + + + + + diff --git a/base_dns_infrastructure/views/dns_menu.xml b/base_dns_infrastructure/views/dns_menu.xml new file mode 100644 index 0000000..8899769 --- /dev/null +++ b/base_dns_infrastructure/views/dns_menu.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + diff --git a/base_dns_infrastructure/views/dns_record.xml b/base_dns_infrastructure/views/dns_record.xml new file mode 100644 index 0000000..c87b470 --- /dev/null +++ b/base_dns_infrastructure/views/dns_record.xml @@ -0,0 +1,75 @@ + + + + DNS Records + dns.record + list,form + + + + DNS Record Tree + dns.record + + + + + + + + + + + + DNS Record Form + dns.record + +
+
+ +
+

+ +

+
+ + + + + + + + + + +
+ + + + + + DNS Record Search + dns.record + + + + + + + + + + + + diff --git a/base_dns_infrastructure/views/dns_record_type.xml b/base_dns_infrastructure/views/dns_record_type.xml new file mode 100644 index 0000000..e3775a4 --- /dev/null +++ b/base_dns_infrastructure/views/dns_record_type.xml @@ -0,0 +1,42 @@ + + + + DNS Record Type + dns.record.type + list,form + + + + DNS Record Type Tree + dns.record.type + + + + + + + + + DNS Record Type + dns.record.type + +
+ +
+
+ + + + + + + +
+
+
+
+
diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..465444d --- /dev/null +++ b/requirements.txt @@ -0,0 +1,2 @@ +# generated from manifests external_dependencies +validator-collection