diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000..0650744 --- /dev/null +++ b/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/__manifest__.py b/__manifest__.py new file mode 100644 index 0000000..11b5792 --- /dev/null +++ b/__manifest__.py @@ -0,0 +1,28 @@ +{ + 'name': 'Open Workshop', + 'version': '1.0', + 'author': 'Dein Name / Deine Organisation', + 'category': 'Custom', + 'summary': 'Verwaltung von Maschinen & Einweisungen in einer offenen Werkstatt', + 'description': """ +Dieses Modul fügt zwei neue Modelle hinzu: +- Maschinen (mit Metadaten) +- Maschineneinweisungen (Verknüpfung zwischen Partner und Maschine) + +Außerdem wird das Partnerformular erweitert, damit man direkt sieht, +für welche Maschinen ein Partner bereits eingewiesen ist. + """, + 'depends': [ + 'base', + 'point_of_sale', + ], + 'data': [ + 'security/ir.model.access.csv', + 'views/open_workshop_machine_views.xml', + 'views/open_workshop_training_views.xml', + 'views/res_partner_views.xml', + ], + 'installable': True, + 'application': True, +} + diff --git a/models/__init__.py b/models/__init__.py new file mode 100644 index 0000000..5ce593d --- /dev/null +++ b/models/__init__.py @@ -0,0 +1,4 @@ +from . import machine +from . import training +from . import res_partner + diff --git a/models/machine.py b/models/machine.py new file mode 100644 index 0000000..241b6cb --- /dev/null +++ b/models/machine.py @@ -0,0 +1,12 @@ +from odoo import models, fields, api + +class OpenWorkshopMachine(models.Model): + _name = 'open.workshop.machine' + _description = 'Open Workshop Machine' + + name = fields.Char(string='Name', required=True) + code = fields.Char(string='Maschinen-Code', help='Interner Code oder Inventar-Nr.') + location = fields.Char(string='Standort') + description = fields.Text(string='Beschreibung') + active = fields.Boolean(default=True) + diff --git a/models/res_partner.py b/models/res_partner.py new file mode 100644 index 0000000..9d30ee0 --- /dev/null +++ b/models/res_partner.py @@ -0,0 +1,11 @@ +from odoo import models, fields + +class ResPartner(models.Model): + _inherit = 'res.partner' + + machine_training_ids = fields.One2many( + 'open.workshop.machine.training', + 'partner_id', + string='Maschineneinweisungen' + ) + diff --git a/models/training.py b/models/training.py new file mode 100644 index 0000000..cb64bbb --- /dev/null +++ b/models/training.py @@ -0,0 +1,29 @@ +from odoo import models, fields, api + +class OpenWorkshopMachineTraining(models.Model): + _name = 'open.workshop.machine.training' + _description = 'Machine Training for Partners' + + partner_id = fields.Many2one( + 'res.partner', + string='Partner', + required=True, + ondelete='cascade' + ) + machine_id = fields.Many2one( + 'open.workshop.machine', + string='Maschine', + required=True, + ondelete='restrict' + ) + training_date = fields.Datetime( + string='Datum der Einweisung', + default=fields.Datetime.now + ) + notes = fields.Text(string='Notizen') + + trainer_id = fields.Many2one( + 'res.users', + string='Einweiser/In' + ) + diff --git a/security/ir.model.access.csv b/security/ir.model.access.csv new file mode 100644 index 0000000..46e6374 --- /dev/null +++ b/security/ir.model.access.csv @@ -0,0 +1,4 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_open_workshop_machine_user,access_open_workshop_machine_user,model_open_workshop_machine,base.group_user,1,1,1,1 +access_open_workshop_training_user,access_open_workshop_training_user,model_open_workshop_machine_training,base.group_user,1,1,1,1 + diff --git a/views/open_workshop_machine_views.xml b/views/open_workshop_machine_views.xml new file mode 100644 index 0000000..5dc74e7 --- /dev/null +++ b/views/open_workshop_machine_views.xml @@ -0,0 +1,53 @@ + + + + Maschinen + open.workshop.machine + tree,form + Verwaltung aller Maschinen in der offenen Werkstatt + + + + + + + + open.workshop.machine.tree + open.workshop.machine + + + + + + + + + + + + open.workshop.machine.form + open.workshop.machine + +
+ + + + + + + + + + + +
+
+
+
+ diff --git a/views/open_workshop_training_views.xml b/views/open_workshop_training_views.xml new file mode 100644 index 0000000..af07eee --- /dev/null +++ b/views/open_workshop_training_views.xml @@ -0,0 +1,48 @@ + + + + Maschineneinweisungen + open.workshop.machine.training + tree,form + Verwaltung aller Maschineneinweisungen (Partner -> Maschine) + + + + + + open.workshop.machine.training.tree + open.workshop.machine.training + + + + + + + + + + + open.workshop.machine.training.form + open.workshop.machine.training + +
+ + + + + + + + + + + +
+
+
+
+ diff --git a/views/res_partner_views.xml b/views/res_partner_views.xml new file mode 100644 index 0000000..cf76d5f --- /dev/null +++ b/views/res_partner_views.xml @@ -0,0 +1,30 @@ + + + + res.partner.form.open.workshop.inherit + res.partner + + + + + + + + + + +
+ + + + + + +
+
+
+
+
+
+
+