inital version

This commit is contained in:
Matthias Lotz 2025-01-05 21:49:31 +01:00
parent ea557caf99
commit 94c63f12da
10 changed files with 220 additions and 0 deletions

1
__init__.py Normal file
View File

@ -0,0 +1 @@
from . import models

28
__manifest__.py Normal file
View File

@ -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,
}

4
models/__init__.py Normal file
View File

@ -0,0 +1,4 @@
from . import machine
from . import training
from . import res_partner

12
models/machine.py Normal file
View File

@ -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)

11
models/res_partner.py Normal file
View File

@ -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'
)

29
models/training.py Normal file
View File

@ -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'
)

View File

@ -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
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_open_workshop_machine_user access_open_workshop_machine_user model_open_workshop_machine base.group_user 1 1 1 1
3 access_open_workshop_training_user access_open_workshop_training_user model_open_workshop_machine_training base.group_user 1 1 1 1

View File

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="action_open_workshop_machine" model="ir.actions.act_window">
<field name="name">Maschinen</field>
<field name="res_model">open.workshop.machine</field>
<field name="view_mode">tree,form</field>
<field name="help">Verwaltung aller Maschinen in der offenen Werkstatt</field>
</record>
<menuitem id="open_workshop_main_menu"
name="Offene Werkstatt"
sequence="10"/>
<menuitem id="open_workshop_menu_machine"
name="Maschinen"
parent="open_workshop_main_menu"
action="action_open_workshop_machine"
sequence="20"/>
<record id="view_open_workshop_machine_tree" model="ir.ui.view">
<field name="name">open.workshop.machine.tree</field>
<field name="model">open.workshop.machine</field>
<field name="arch" type="xml">
<list string="Maschinen">
<field name="name"/>
<field name="code"/>
<field name="location"/>
<field name="active"/>
</list>
</field>
</record>
<record id="view_open_workshop_machine_form" model="ir.ui.view">
<field name="name">open.workshop.machine.form</field>
<field name="model">open.workshop.machine</field>
<field name="arch" type="xml">
<form string="Maschine">
<sheet>
<group>
<field name="name"/>
<field name="code"/>
<field name="location"/>
<field name="active"/>
</group>
<group>
<field name="description"/>
</group>
</sheet>
</form>
</field>
</record>
</odoo>

View File

@ -0,0 +1,48 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="action_open_workshop_training" model="ir.actions.act_window">
<field name="name">Maschineneinweisungen</field>
<field name="res_model">open.workshop.machine.training</field>
<field name="view_mode">tree,form</field>
<field name="help">Verwaltung aller Maschineneinweisungen (Partner -> Maschine)</field>
</record>
<menuitem id="open_workshop_menu_training"
name="Einweisungen"
parent="open_workshop_main_menu"
action="action_open_workshop_training"
sequence="30"/>
<record id="view_open_workshop_training_tree" model="ir.ui.view">
<field name="name">open.workshop.machine.training.tree</field>
<field name="model">open.workshop.machine.training</field>
<field name="arch" type="xml">
<list string="Maschineneinweisungen">
<field name="partner_id"/>
<field name="machine_id"/>
<field name="training_date"/>
</list>
</field>
</record>
<record id="view_open_workshop_training_form" model="ir.ui.view">
<field name="name">open.workshop.machine.training.form</field>
<field name="model">open.workshop.machine.training</field>
<field name="arch" type="xml">
<form string="Maschineneinweisung">
<sheet>
<group>
<field name="partner_id"/>
<field name="machine_id"/>
<field name="training_date"/>
<field name="trainer_id"/>
</group>
<group>
<field name="notes"/>
</group>
</sheet>
</form>
</field>
</record>
</odoo>

View File

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="view_partner_form_open_workshop_inherit" model="ir.ui.view">
<field name="name">res.partner.form.open.workshop.inherit</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<xpath expr="//notebook" position="inside">
<page string="Maschineneinweisungen">
<field name="machine_training_ids">
<list editable="bottom">
<field name="machine_id"/>
<field name="training_date"/>
<field name="trainer_id"/>
</list>
<form>
<group>
<field name="machine_id"/>
<field name="training_date"/>
<field name="trainer_id"/>
<field name="notes"/>
</group>
</form>
</field>
</page>
</xpath>
</field>
</record>
</odoo>