Einfache Zuordnung Maschine - Einweisung und Maschine - Nutzung

This commit is contained in:
gitea 2025-04-06 11:48:32 +00:00
parent 312dffdad0
commit e14531fa7f
10 changed files with 191 additions and 27 deletions

View File

@ -12,17 +12,19 @@
'views/machine_area_views.xml', 'views/machine_area_views.xml',
'views/machine_views.xml', 'views/machine_views.xml',
'views/res_partner_view.xml', 'views/res_partner_view.xml',
'views/partner_machine_access_html.xml',
'views/assets.xml', 'views/assets.xml',
'views/machine_product_training_views.xml',
'data/data.xml', 'data/data.xml',
'data/data_product_and_categories.xml', 'data/data_product_and_categories.xml',
'data/machine_product_links.xml',
], ],
'qweb': [ 'qweb': [
'static/src/xml/ows_briefing_details.xml', 'static/src/xml/ows_briefing_details.xml',
'static/src/xml/ows_briefing_details_edit.xml', 'static/src/xml/ows_briefing_details_edit.xml',
'static/src/xml/ows_pos_order_selector.xml', 'static/src/xml/ows_pos_order_selector.xml',
'static/src/xml/partner_access_popup.xml', 'static/src/xml/ows_pos_machine_access_view.xml',
], ],
'installable': True, 'installable': True,
'assets': { 'assets': {

View File

@ -0,0 +1,50 @@
<odoo>
<record id="machine_prusa_training_prod_einweisung_3d_drucker_prusa" model="ows.machine.training">
<field name="machine_id" ref="machine_prusa"/>
<field name="training_id" ref="prod_einweisung_3d_drucker_prusa"/>
</record>
<record id="machine_formatkreissaege_usage_prod_formatkreissäge_1_minute" model="ows.machine.product">
<field name="machine_id" ref="machine_formatkreissaege"/>
<field name="product_id" ref="prod_formatkreissäge_1_minute"/>
</record>
<record id="machine_bandsaege_holz_usage_prod_bandsäge_1_minute" model="ows.machine.product">
<field name="machine_id" ref="machine_bandsaege_holz"/>
<field name="product_id" ref="prod_bandsäge_1_minute"/>
</record>
<record id="machine_bandsaege_holz_training_prod_einweisung_bandsäge" model="ows.machine.training">
<field name="machine_id" ref="machine_bandsaege_holz"/>
<field name="training_id" ref="prod_einweisung_bandsäge"/>
</record>
<record id="machine_kreissaege_metall_usage_prod_formatkreissäge_1_minute" model="ows.machine.product">
<field name="machine_id" ref="machine_kreissaege_metall"/>
<field name="product_id" ref="prod_formatkreissäge_1_minute"/>
</record>
<record id="machine_bandsaege_metall_usage_prod_bandsäge_1_minute" model="ows.machine.product">
<field name="machine_id" ref="machine_bandsaege_metall"/>
<field name="product_id" ref="prod_bandsäge_1_minute"/>
</record>
<record id="machine_bandsaege_metall_training_prod_einweisung_bandsäge" model="ows.machine.training">
<field name="machine_id" ref="machine_bandsaege_metall"/>
<field name="training_id" ref="prod_einweisung_bandsäge"/>
</record>
<record id="machine_drehbank_usage_prod_drehbank_1_minute" model="ows.machine.product">
<field name="machine_id" ref="machine_drehbank"/>
<field name="product_id" ref="prod_drehbank_1_minute"/>
</record>
<record id="machine_drehbank_training_prod_einweisung_drehbank" model="ows.machine.training">
<field name="machine_id" ref="machine_drehbank"/>
<field name="training_id" ref="prod_einweisung_drehbank"/>
</record>
<record id="machine_fraese_usage_prod_cnc_fräse_1_minute" model="ows.machine.product">
<field name="machine_id" ref="machine_fraese"/>
<field name="product_id" ref="prod_cnc_fräse_1_minute"/>
</record>
<record id="machine_fraese_usage_prod_fräse___deckel_1_minute" model="ows.machine.product">
<field name="machine_id" ref="machine_fraese"/>
<field name="product_id" ref="prod_fräse___deckel_1_minute"/>
</record>
<record id="machine_fraese_training_prod_einweisung_metallfräse" model="ows.machine.training">
<field name="machine_id" ref="machine_fraese"/>
<field name="training_id" ref="prod_einweisung_metallfräse"/>
</record>
</odoo>

View File

@ -14,10 +14,34 @@ class ResPartner(models.Model):
ows_user_id = fields.One2many('ows.user', 'partner_id', string="OWS Benutzerdaten") ows_user_id = fields.One2many('ows.user', 'partner_id', string="OWS Benutzerdaten")
# ✳️ Zugriff auf Felder aus ows.user per compute + inverse (statt related) # ✳️ Zugriff auf Felder aus ows.user per compute + inverse (statt related)
birthday = fields.Date(compute='_compute_ows_user_fields', inverse='_inverse_ows_user_fields', store=False) birthday = fields.Date(
rfid_card = fields.Text(compute='_compute_ows_user_fields', inverse='_inverse_ows_user_fields', store=False) string="Geburtstag",
security_briefing = fields.Boolean(compute='_compute_ows_user_fields', inverse='_inverse_ows_user_fields', store=False) compute='_compute_ows_user_fields',
security_id = fields.Text(compute='_compute_ows_user_fields', inverse='_inverse_ows_user_fields', store=False) inverse='_inverse_ows_user_fields',
store=False
)
rfid_card = fields.Text(
string="RFID Card ID",
compute='_compute_ows_user_fields',
inverse='_inverse_ows_user_fields',
store=False
)
security_briefing = fields.Boolean(
string="Haftungsausschluss",
compute='_compute_ows_user_fields',
inverse='_inverse_ows_user_fields',
store=False
)
security_id = fields.Text(
string="Haftungsausschluss ID",
compute='_compute_ows_user_fields',
inverse='_inverse_ows_user_fields',
store=False
)
@api.depends('ows_user_id') @api.depends('ows_user_id')
def _compute_ows_user_fields(self): def _compute_ows_user_fields(self):

View File

@ -2,6 +2,7 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_ows_machine_access_user,ows.machine.access,model_ows_machine_access,base.group_user,1,1,1,1 access_ows_machine_access_user,ows.machine.access,model_ows_machine_access,base.group_user,1,1,1,1
access_ows_machine_user,ows.machine,model_ows_machine,base.group_user,1,1,1,1 access_ows_machine_user,ows.machine,model_ows_machine,base.group_user,1,1,1,1
access_ows_machine_product_user,ows.machine.product,model_ows_machine_product,base.group_user,1,1,1,1 access_ows_machine_product_user,ows.machine.product,model_ows_machine_product,base.group_user,1,1,1,1
access_ows_machine_training_user,access_ows_machine_training_user,model_ows_machine_training,base.group_user,1,1,1,1
access_ows_machine_area,ows.machine.area,model_ows_machine_area,base.group_user,1,1,1,1 access_ows_machine_area,ows.machine.area,model_ows_machine_area,base.group_user,1,1,1,1
access_ows_user,ows.user,model_ows_user,base.group_user,1,1,1,1 access_ows_user,ows.user,model_ows_user,base.group_user,1,1,1,1
access_ows_machine_training,ows.machine.training,model_ows_machine_training,base.group_user,1,1,1,1 access_ows_machine_training,ows.machine.training,model_ows_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_ows_machine_access_user ows.machine.access model_ows_machine_access base.group_user 1 1 1 1
3 access_ows_machine_user ows.machine model_ows_machine base.group_user 1 1 1 1
4 access_ows_machine_product_user ows.machine.product model_ows_machine_product base.group_user 1 1 1 1
5 access_ows_machine_training_user access_ows_machine_training_user model_ows_machine_training base.group_user 1 1 1 1
6 access_ows_machine_area ows.machine.area model_ows_machine_area base.group_user 1 1 1 1
7 access_ows_user ows.user model_ows_user base.group_user 1 1 1 1
8 access_ows_machine_training ows.machine.training model_ows_machine_training base.group_user 1 1 1 1

View File

@ -3,7 +3,7 @@
<xpath expr="." position="inside"> <xpath expr="." position="inside">
<script type="text/javascript" src="/open_workshop/static/src/js/partner_access_popup.js"/> <script type="text/javascript" src="/open_workshop/static/src/js/partner_access_popup.js"/>
<template id="machine_access_template" name="Maschinenfreigaben Template" <template id="machine_access_template" name="Maschinenfreigaben Template"
src="/open_workshop/static/src/xml/partner_access_popup.xml"/> src="/open_workshop/static/src/xml/ows_pos_machine_access_view.xml"/>
</xpath> </xpath>
<xpath expr="//link[@href='/point_of_sale/static/src/css/pos.css']" position="replace"> <xpath expr="//link[@href='/point_of_sale/static/src/css/pos.css']" position="replace">
<link rel="stylesheet" type="text/css" href="/open_workshop/static/src/css/pos.css"/> <link rel="stylesheet" type="text/css" href="/open_workshop/static/src/css/pos.css"/>

View File

@ -0,0 +1,49 @@
<odoo>
<!-- Tree View: Nutzungsprodukte -->
<record id="view_machine_product_tree" model="ir.ui.view">
<field name="name">ows.machine.product.tree</field>
<field name="model">ows.machine.product</field>
<field name="arch" type="xml">
<tree editable="bottom">
<field name="machine_id"/>
<field name="product_id" domain="[('categ_id.name', '=', 'Maschinennutzung')]"/>
</tree>
</field>
</record>
<!-- Tree View: Einweisungsprodukte -->
<record id="view_machine_training_tree" model="ir.ui.view">
<field name="name">ows.machine.training.tree</field>
<field name="model">ows.machine.training</field>
<field name="arch" type="xml">
<tree editable="bottom">
<field name="machine_id"/>
<field name="training_id" domain="[('categ_id.name', '=', 'Einweisungen')]"/>
</tree>
</field>
</record>
<!-- Action: Nutzungsprodukte -->
<record id="action_machine_product" model="ir.actions.act_window">
<field name="name">Maschinen-Nutzungsprodukte</field>
<field name="res_model">ows.machine.product</field>
<field name="view_mode">tree</field>
<field name="view_id" ref="view_machine_product_tree"/>
<field name="help" type="html">
<p>Verwalte die Zuordnung von Maschinen zu Nutzungsprodukten.</p>
</field>
</record>
<!-- Action: Einweisungsprodukte -->
<record id="action_machine_training" model="ir.actions.act_window">
<field name="name">Maschinen-Einweisungsprodukte</field>
<field name="res_model">ows.machine.training</field>
<field name="view_mode">tree</field>
<field name="view_id" ref="view_machine_training_tree"/>
<field name="help" type="html">
<p>Verwalte die Zuordnung von Maschinen zu Einweisungsprodukten.</p>
</field>
</record>
</odoo>

View File

@ -15,10 +15,44 @@
</record> </record>
<!-- Menüstruktur --> <!-- Menüstruktur -->
<menuitem id="menu_machine_root" name="Maschinen" sequence="10"/> <!-- Oberstes Menü -->
<menuitem id="menu_machine_config" name="Konfiguration" parent="menu_machine_root" sequence="10"/> <menuitem id="menu_machine_root"
<menuitem id="menu_machine_list" name="Maschinen" parent="menu_machine_config" action="open_workshop.action_machine_list" sequence="10"/> name="Maschinen"
<menuitem id="menu_training_product" name="Einweisungs-Produkte" parent="menu_machine_config" action="open_workshop.action_training_product_list" sequence="20"/> sequence="10"/>
<!-- Konfigurationsebene -->
<menuitem id="menu_machine_config"
name="Konfiguration"
parent="menu_machine_root"
sequence="10"/>
<!-- Menüpunkt: Maschinenliste (klickbar) -->
<menuitem id="menu_machine_list_action"
name="Alle Maschinen"
parent="menu_machine_config"
action="open_workshop.action_machine_list"
sequence="10"/>
<!-- Menücontainer: Zuordnungen -->
<menuitem id="menu_machine_list"
name="Zuordnungen"
parent="menu_machine_config"
sequence="20"/>
<!-- Untermenü: Nutzungsprodukte -->
<menuitem id="menu_machine_product"
name="Nutzungsprodukte"
parent="menu_machine_list"
action="action_machine_product"
sequence="10"/>
<!-- Untermenü: Einweisungsprodukte -->
<menuitem id="menu_machine_training"
name="Einweisungsprodukte"
parent="menu_machine_list"
action="action_machine_training"
sequence="20"/>
<!-- List & Form Views für training.product --> <!-- List & Form Views für training.product -->
<record id="view_training_product_tree" model="ir.ui.view"> <record id="view_training_product_tree" model="ir.ui.view">

View File

@ -1,16 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<!-- View-Erweiterung für res.partner: Tab mit HTML-Tabelle -->
<record id="view_partner_form_inherit_open_workshop_html" model="ir.ui.view">
<field name="name">res.partner.form.ows.machine.access.html</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<notebook position="inside">
<page string="HOBBYHIMMEL Einweisungen">
<field name="machine_access_html" readonly="1" widget="html"/>
</page>
</notebook>
</field>
</record>
</odoo>

View File

@ -1,5 +1,25 @@
<!-- res_partner_view.xml --> <!-- res_partner_view.xml -->
<odoo> <odoo>
<!-- View-Erweiterung für res.partner: Tab mit HTML-Tabelle
Der Inhalt wird in der Methode _compute_machine_access_html() generiert.
Diese Methode wird in der Klasse res.partner definiert in der Datei models/ows_models.py.
Die Methode wird aufgerufen, wenn das Partnerformular geöffnet wird.
Die HTML-Tabelle wird in der Variable machine_access_html gespeichert.
Die Variable wird in der View angezeigt.
-->
<record id="view_partner_form_inherit_open_workshop_html" model="ir.ui.view">
<field name="name">res.partner.form.ows.machine.access.html</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<notebook position="inside">
<page string="HOBBYHIMMEL Einweisungen">
<field name="machine_access_html" readonly="1" widget="html"/>
</page>
</notebook>
</field>
</record>
<!-- Teil 1: Maschinenfreigaben-Tabelle --> <!-- Teil 1: Maschinenfreigaben-Tabelle -->
<record id="view_partner_form_inherit_open_workshop" model="ir.ui.view"> <record id="view_partner_form_inherit_open_workshop" model="ir.ui.view">
<field name="name">res.partner.form.ows.machine.access</field> <field name="name">res.partner.form.ows.machine.access</field>