diff --git a/pad_hedgedoc_connector/__init__.py b/pad_hedgedoc_connector/__init__.py new file mode 100644 index 0000000..35e7c96 --- /dev/null +++ b/pad_hedgedoc_connector/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- + +from . import models +from . import wizard diff --git a/pad_hedgedoc_connector/__manifest__.py b/pad_hedgedoc_connector/__manifest__.py new file mode 100755 index 0000000..273edac --- /dev/null +++ b/pad_hedgedoc_connector/__manifest__.py @@ -0,0 +1,64 @@ +# -*- coding: utf-8 -*- +{ + "name": "Pad Hedgedoc Connector", + "category": "Notes", + "version": "12.0.1.0.0", + "summary": "Connect Odoo to Hedgedoc server", + "author": "Elabore", + "website": "https://elabore.coop/", + "installable": True, + "application": True, + "auto_install": False, + "description": """ +====================== +Pad Hedgedoc Connector +====================== +This module provides the capacity to link Odoo to a Hedgedoc instance in order to generate and manage Hedgedoc documents + +Installation +============ +Just install pad_hedgedoc_connector, all dependencies will be installed by default. +On your Hedgedoc server, the parameter CMD_ALLOW_FREEURL must be set to True + +Known issues / Roadmap +====================== + +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. + +Credits +======= + +Images +------ +* Elabore: `Icon `_. + +Contributors +------------ +* Stéphan Sainléger + +Funders +------- +The development of this module has been financially supported by: +* Elabore (https://elabore.coop) + +Maintainer +---------- +This module is maintained by ELABORE. + +""", + "depends": [ + "base", + "base_setup", + ], + "data": [ + "security/ir.model.access.csv", + "views/res_config_settings_view.xml", + "wizard/create_pad.xml", + ], + "qweb": [], +} diff --git a/pad_hedgedoc_connector/i18n/fr.po b/pad_hedgedoc_connector/i18n/fr.po new file mode 100644 index 0000000..c0cce30 --- /dev/null +++ b/pad_hedgedoc_connector/i18n/fr.po @@ -0,0 +1,135 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * pad_hedgedoc_connector +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-08-10 06:23+0000\n" +"PO-Revision-Date: 2022-08-10 06:23+0000\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: pad_hedgedoc_connector +#: model_terms:ir.ui.view,arch_db:pad_hedgedoc_connector.res_config_settings_view_form_hedgedoc +msgid "Hedgedoc URL" +msgstr "Hedgedoc URL" + +#. module: pad_hedgedoc_connector +#: model_terms:ir.ui.view,arch_db:pad_hedgedoc_connector.create_hedgedoc_pad_wizard +msgid "Cancel" +msgstr "Annuler" + +#. module: pad_hedgedoc_connector +#: model:ir.model,name:pad_hedgedoc_connector.model_res_company +msgid "Companies" +msgstr "Sociétés" + +#. module: pad_hedgedoc_connector +#: model:ir.model,name:pad_hedgedoc_connector.model_res_config_settings +msgid "Config Settings" +msgstr "Paramètres de config" + +#. module: pad_hedgedoc_connector +#: model_terms:ir.ui.view,arch_db:pad_hedgedoc_connector.create_hedgedoc_pad_wizard +msgid "Create" +msgstr "Créer" + +#. module: pad_hedgedoc_connector +#: model:ir.model,name:pad_hedgedoc_connector.model_create_hedgedoc_pad_wizard +msgid "Create a Hedgedoc Pad" +msgstr "Créer un pad Hedgedoc" + +#. module: pad_hedgedoc_connector +#: model:ir.model.fields,field_description:pad_hedgedoc_connector.field_create_hedgedoc_pad_wizard__create_uid +#: model:ir.model.fields,field_description:pad_hedgedoc_connector.field_hedgedoc_pad__create_uid +msgid "Created by" +msgstr "Créé par" + +#. module: pad_hedgedoc_connector +#: model:ir.model.fields,field_description:pad_hedgedoc_connector.field_create_hedgedoc_pad_wizard__create_date +#: model:ir.model.fields,field_description:pad_hedgedoc_connector.field_hedgedoc_pad__create_date +msgid "Created on" +msgstr "Créé le" + +#. module: pad_hedgedoc_connector +#: model:ir.model.fields,field_description:pad_hedgedoc_connector.field_create_hedgedoc_pad_wizard__display_name +#: model:ir.model.fields,field_description:pad_hedgedoc_connector.field_hedgedoc_pad__display_name +#: model:ir.model.fields,field_description:pad_hedgedoc_connector.field_res_company__display_name +#: model:ir.model.fields,field_description:pad_hedgedoc_connector.field_res_config_settings__display_name +msgid "Display Name" +msgstr "Nom affiché" + +#. module: pad_hedgedoc_connector +#: model_terms:ir.ui.view,arch_db:pad_hedgedoc_connector.res_config_settings_view_form_hedgedoc +msgid "Hedgedoc" +msgstr "Hedgedoc" + +#. module: pad_hedgedoc_connector +#: model:ir.model,name:pad_hedgedoc_connector.model_hedgedoc_pad +msgid "Hedgedoc Pad" +msgstr "Pad Hedgedoc" + +#. module: pad_hedgedoc_connector +#: model:ir.model.fields,field_description:pad_hedgedoc_connector.field_res_company__hedgedoc_server_url +#: model:ir.model.fields,field_description:pad_hedgedoc_connector.field_res_config_settings__hedgedoc_server_url +msgid "Hedgedoc Server URL" +msgstr "URL du serveur Hedgedoc" + +#. module: pad_hedgedoc_connector +#: model_terms:ir.ui.view,arch_db:pad_hedgedoc_connector.res_config_settings_view_form_hedgedoc +msgid "Hedgedoc configuration" +msgstr "Configuration Hedgedoc" + +#. module: pad_hedgedoc_connector +#: model:ir.model.fields,field_description:pad_hedgedoc_connector.field_create_hedgedoc_pad_wizard__id +#: model:ir.model.fields,field_description:pad_hedgedoc_connector.field_hedgedoc_pad__id +#: model:ir.model.fields,field_description:pad_hedgedoc_connector.field_res_company__id +#: model:ir.model.fields,field_description:pad_hedgedoc_connector.field_res_config_settings__id +msgid "ID" +msgstr "ID" + +#. module: pad_hedgedoc_connector +#: model:ir.model.fields,field_description:pad_hedgedoc_connector.field_create_hedgedoc_pad_wizard____last_update +#: model:ir.model.fields,field_description:pad_hedgedoc_connector.field_hedgedoc_pad____last_update +#: model:ir.model.fields,field_description:pad_hedgedoc_connector.field_res_company____last_update +#: model:ir.model.fields,field_description:pad_hedgedoc_connector.field_res_config_settings____last_update +msgid "Last Modified on" +msgstr "Dernière modification le" + +#. module: pad_hedgedoc_connector +#: model:ir.model.fields,field_description:pad_hedgedoc_connector.field_create_hedgedoc_pad_wizard__write_uid +#: model:ir.model.fields,field_description:pad_hedgedoc_connector.field_hedgedoc_pad__write_uid +msgid "Last Updated by" +msgstr "Dernière mise à jour par" + +#. module: pad_hedgedoc_connector +#: model:ir.model.fields,field_description:pad_hedgedoc_connector.field_create_hedgedoc_pad_wizard__write_date +#: model:ir.model.fields,field_description:pad_hedgedoc_connector.field_hedgedoc_pad__write_date +msgid "Last Updated on" +msgstr "Dernière mise à jour le" + +#. module: pad_hedgedoc_connector +#: code:addons/pad_hedgedoc_connector/models/hedgedoc_pad.py:0 +#: model:ir.model.fields,field_description:pad_hedgedoc_connector.field_create_hedgedoc_pad_wizard__pad_name +#: model:ir.model.fields,field_description:pad_hedgedoc_connector.field_hedgedoc_pad__name +#, python-format +msgid "Title" +msgstr "Titre" + +#. module: pad_hedgedoc_connector +#: code:addons/pad_hedgedoc_connector/models/hedgedoc_pad.py:0 +#: model:ir.model.fields,field_description:pad_hedgedoc_connector.field_hedgedoc_pad__url +#, python-format +msgid "URL" +msgstr "URL" + +#. module: pad_hedgedoc_connector +#: model_terms:ir.ui.view,arch_db:pad_hedgedoc_connector.create_hedgedoc_pad_wizard +msgid "create a new Hedgedoc pad linked to the current task" +msgstr "Créer un nouveau pad Hedgedoc lié à la tâche courrante" diff --git a/pad_hedgedoc_connector/models/__init__.py b/pad_hedgedoc_connector/models/__init__.py new file mode 100644 index 0000000..809e77e --- /dev/null +++ b/pad_hedgedoc_connector/models/__init__.py @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- + +from . import res_config_settings +from . import company +from . import hedgedoc_pad diff --git a/pad_hedgedoc_connector/models/company.py b/pad_hedgedoc_connector/models/company.py new file mode 100644 index 0000000..48bf1b1 --- /dev/null +++ b/pad_hedgedoc_connector/models/company.py @@ -0,0 +1,9 @@ +# -*- coding: utf-8 -*- + +from odoo import models, fields + + +class Company(models.Model): + _inherit = "res.company" + + hedgedoc_server_url = fields.Char(string="Hedgedoc Server URL") diff --git a/pad_hedgedoc_connector/models/hedgedoc_pad.py b/pad_hedgedoc_connector/models/hedgedoc_pad.py new file mode 100644 index 0000000..91ff52c --- /dev/null +++ b/pad_hedgedoc_connector/models/hedgedoc_pad.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- + +from odoo import models, fields, api, _ + + +class HedgedocPad(models.Model): + _name = "hedgedoc.pad" + _description = "Hedgedoc Pad" + + name = fields.Char(string=_("Title"), required=True,) + url = fields.Char(string=_("URL")) \ No newline at end of file diff --git a/pad_hedgedoc_connector/models/res_config_settings.py b/pad_hedgedoc_connector/models/res_config_settings.py new file mode 100644 index 0000000..d3f81b4 --- /dev/null +++ b/pad_hedgedoc_connector/models/res_config_settings.py @@ -0,0 +1,14 @@ +# -*- coding: utf-8 -*- + +from odoo import fields, models + + +class ResConfigSettings(models.TransientModel): + _inherit = 'res.config.settings' + + hedgedoc_server_url = fields.Char( + related="company_id.hedgedoc_server_url", + string="Hedgedoc Server URL", + readonly=False, + ) + \ No newline at end of file diff --git a/pad_hedgedoc_connector/security/ir.model.access.csv b/pad_hedgedoc_connector/security/ir.model.access.csv new file mode 100644 index 0000000..b4e0488 --- /dev/null +++ b/pad_hedgedoc_connector/security/ir.model.access.csv @@ -0,0 +1,2 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_hedgedoc_pad_user,hedgedoc.pad.user,pad_hedgedoc_connector.model_hedgedoc_pad,base.group_user,1,1,1,1 \ No newline at end of file diff --git a/pad_hedgedoc_connector/static/description/icon.png b/pad_hedgedoc_connector/static/description/icon.png new file mode 100644 index 0000000..0e6d402 Binary files /dev/null and b/pad_hedgedoc_connector/static/description/icon.png differ diff --git a/pad_hedgedoc_connector/views/res_config_settings_view.xml b/pad_hedgedoc_connector/views/res_config_settings_view.xml new file mode 100644 index 0000000..af487d0 --- /dev/null +++ b/pad_hedgedoc_connector/views/res_config_settings_view.xml @@ -0,0 +1,27 @@ + + + + res.config.settings.view.form.inherit.hedgedoc + res.config.settings + + + + +
+

Hedgedoc configuration

+
+
+
+
+ Hedgedoc URL +
+ +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/pad_hedgedoc_connector/wizard/__init__.py b/pad_hedgedoc_connector/wizard/__init__.py new file mode 100644 index 0000000..0b29254 --- /dev/null +++ b/pad_hedgedoc_connector/wizard/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import create_pad diff --git a/pad_hedgedoc_connector/wizard/create_pad.py b/pad_hedgedoc_connector/wizard/create_pad.py new file mode 100644 index 0000000..66a4991 --- /dev/null +++ b/pad_hedgedoc_connector/wizard/create_pad.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- + +from odoo import models, fields + + +class CreateHedgedocPadWizard(models.TransientModel): + _name = "create.hedgedoc.pad.wizard" + _description = "Create a Hedgedoc Pad" + + pad_name = fields.Char(string="Title", required=True) + + def _compute_pad_values(self): + values = { + "name": self.pad_name, + "url": self.env.user.company_id.hedgedoc_server_url + "/" + self.pad_name + } + return values + + def create_hedgedoc_pad(self): + return True diff --git a/pad_hedgedoc_connector/wizard/create_pad.xml b/pad_hedgedoc_connector/wizard/create_pad.xml new file mode 100644 index 0000000..ed6a9a0 --- /dev/null +++ b/pad_hedgedoc_connector/wizard/create_pad.xml @@ -0,0 +1,20 @@ + + + + + create.hedgedoc.pad.wizard + create.hedgedoc.pad.wizard + +
+ + + + +
+
+
+ +
\ No newline at end of file