diff --git a/__manifest__.py b/__manifest__.py index 24740e0..c3ad55a 100644 --- a/__manifest__.py +++ b/__manifest__.py @@ -3,7 +3,7 @@ 'license': 'AGPL-3', 'version': '13.0.1.0.0', 'summary': 'Erstellt Maschinenfreigaben basierend auf POS-Einweisungsprodukten', - 'depends': ['contacts','point_of_sale'], + 'depends': ['base','product','sale','contacts','point_of_sale'], 'author': 'matthias.lotz', 'category': 'Point of Sale', 'data': [ @@ -14,7 +14,9 @@ 'views/res_partner_view.xml', 'views/partner_machine_access_html.xml', 'views/assets.xml', - 'data/demo_data.xml', + 'data/data.xml', + #'data/product_category.csv', + #'data/product_product.csv', ], 'qweb': [ 'static/src/xml/ows_briefing_details.xml', diff --git a/data/demo_data.xml b/data/data.xml similarity index 99% rename from data/demo_data.xml rename to data/data.xml index 07596de..7fa434d 100644 --- a/data/demo_data.xml +++ b/data/data.xml @@ -1,5 +1,4 @@ - Fablab diff --git a/data/export.sh b/data/export.sh new file mode 100755 index 0000000..c07b1f2 --- /dev/null +++ b/data/export.sh @@ -0,0 +1,2 @@ +/opt/odoo/odoo/odoo-bin shell -d hobbyhimmel < /home/odoo/custom_addons/open_workshop/data/export_products.py +/opt/odoo/odoo/odoo-bin shell -d hobbyhimmel < /home/odoo/custom_addons/open_workshop/data/export_categories.py diff --git a/data/export_categories.py b/data/export_categories.py new file mode 100644 index 0000000..9b2951b --- /dev/null +++ b/data/export_categories.py @@ -0,0 +1,20 @@ +# export_categories.py +import csv +from odoo import api, SUPERUSER_ID +import os + + +categories = env['product.category'].search([('name', 'in', ['Einweisungen', 'Maschinennutzung'])]) +file_path = os.path.join(os.getcwd(), 'product_category.csv') + +with open(file_path, 'w', newline='') as csvfile: + writer = csv.writer(csvfile) + writer.writerow(['id', 'name', 'parent_id/id']) + for cat in categories: + xml_id = f"open_workshop.cat_{cat.name.lower().replace(' ', '_')}" + parent_id = cat.parent_id and f"base.{cat.parent_id.xml_id}" or '' + writer.writerow([xml_id, cat.name, parent_id]) + +# Aufruf in odoo shell z. B.: +# env = odoo.api.Environment(cr, SUPERUSER_ID, {}) +# export_categories(env) diff --git a/data/export_products.py b/data/export_products.py new file mode 100644 index 0000000..8f413eb --- /dev/null +++ b/data/export_products.py @@ -0,0 +1,26 @@ +# export_products.py +import csv +from odoo import api, SUPERUSER_ID +import os + +# Kategorien suchen +category_names = ['Einweisungen', 'Maschinennutzung'] +categories = env['product.category'].search([('name', 'in', category_names)]) +products = env['product.product'].search([('categ_id', 'in', categories.ids)]) + +file_path = os.path.join(os.getcwd(), 'product_product.csv') + +with open(file_path, 'w', newline='') as csvfile: + writer = csv.writer(csvfile) + writer.writerow(['id', 'name', 'default_code', 'list_price', 'categ_id/id', 'available_in_pos']) + for prod in products: + cat_xml_id = f"open_workshop.cat_{prod.categ_id.name.lower().replace(' ', '_')}" + xml_id = f"open_workshop.prod_{prod.default_code or prod.name.lower().replace(' ', '_')}" + writer.writerow([ + xml_id, + prod.name, + prod.default_code or '', + prod.list_price, + cat_xml_id, + '1' if prod.available_in_pos else '0' + ]) diff --git a/data/product_category.csv b/data/product_category.csv new file mode 100644 index 0000000..5e7e774 --- /dev/null +++ b/data/product_category.csv @@ -0,0 +1,3 @@ +"id","name","parent_id/id" +open_workshop.cat_einweisungen,Einweisungen, +open_workshop.cat_maschinennutzung,Maschinennutzung, diff --git a/data/product_product.csv b/data/product_product.csv new file mode 100644 index 0000000..6cffe5b --- /dev/null +++ b/data/product_product.csv @@ -0,0 +1,25 @@ +"id","name","default_code","list_price","categ_id/id","available_in_pos" +open_workshop.prod_3d_druck_(30_minuten),3D Druck (30 Minuten),,0.25,open_workshop.cat_maschinennutzung,1 +open_workshop.prod_bandschleifer_(1_minute),Bandschleifer (1 Minute),,0.1,open_workshop.cat_maschinennutzung,1 +open_workshop.prod_bandsäge_(1_minute),Bandsäge (1 Minute),,0.1,open_workshop.cat_maschinennutzung,1 +open_workshop.prod_cnc_fräse_(1_minute),CNC Fräse (1 Minute),,0.1,open_workshop.cat_maschinennutzung,1 +open_workshop.prod_cnc_sicherheitseinweisung,CNC Sicherheitseinweisung,,25.0,open_workshop.cat_einweisungen,1 +open_workshop.prod_drehbank_(1_minute),Drehbank (1 Minute),,0.1,open_workshop.cat_maschinennutzung,1 +open_workshop.prod_einweisung_3d_drucker_delta,Einweisung 3D Drucker Delta,,15.0,open_workshop.cat_einweisungen,1 +open_workshop.prod_einweisung_3d_drucker_prusa,Einweisung 3D Drucker Prusa,,20.0,open_workshop.cat_einweisungen,1 +open_workshop.prod_einweisung_bandsäge,Einweisung Bandsäge,,15.0,open_workshop.cat_einweisungen,1 +open_workshop.prod_einweisung_drehbank,Einweisung Drehbank,,20.0,open_workshop.cat_einweisungen,1 +open_workshop.prod_einweisung_fks,Einweisung FKS,,20.0,open_workshop.cat_einweisungen,1 +open_workshop.prod_einweisung_hobel,Einweisung Hobel,,15.0,open_workshop.cat_einweisungen,1 +open_workshop.prod_einweisung_laser,Einweisung Laser,,15.0,open_workshop.cat_einweisungen,1 +open_workshop.prod_einweisung_metallfräse,Einweisung Metallfräse,,20.0,open_workshop.cat_einweisungen,1 +open_workshop.prod_einweisung_schweißgerät,Einweisung Schweißgerät,,10.0,open_workshop.cat_einweisungen,1 +open_workshop.prod_einweisung_in_maschinelle_holzverbindungen,Einweisung in maschinelle Holzverbindungen,,15.0,open_workshop.cat_einweisungen,1 +open_workshop.prod_formatkreissäge_(1_minute),Formatkreissäge (1 Minute),,0.1,open_workshop.cat_maschinennutzung,1 +open_workshop.prod_fräse_-_deckel_(1_minute),Fräse - Deckel (1 Minute),,0.1,open_workshop.cat_maschinennutzung,1 +open_workshop.prod_hobel_(1_minute),Hobel (1 Minute),,0.1,open_workshop.cat_maschinennutzung,1 +open_workshop.prod_laser_(aktivminute),Laser (Aktivminute),,0.7000000000000001,open_workshop.cat_maschinennutzung,1 +open_workshop.prod_sandstrahlbox_(1_minute),Sandstrahlbox (1 Minute),,0.2,open_workshop.cat_maschinennutzung,1 +open_workshop.prod_schweißgerät_(1_minute),Schweißgerät (1 Minute),,0.2,open_workshop.cat_maschinennutzung,1 +open_workshop.prod_schweißkabine_(eigenes_schweißgerät_-_1_minute),Schweißkabine (eigenes Schweißgerät - 1 Minute),,0.1,open_workshop.cat_maschinennutzung,1 +open_workshop.prod_sonstige_dienstleistungen/nutzung,Sonstige Dienstleistungen/Nutzung,,1.0,open_workshop.cat_maschinennutzung,1 diff --git a/demo/demo_product_categories.csv b/demo/demo_product_categories.csv deleted file mode 100644 index 2daa7ce..0000000 --- a/demo/demo_product_categories.csv +++ /dev/null @@ -1,20 +0,0 @@ -id,name,parent_id -14,Abonutzer, -1,All, -3,Expenses,1 -2,Saleable,1 -23,PoS,2 -7,Einweisungen, -13,Gastro, -26,Gift Voucher, -6,Gutscheine, -8,Kurse, -11,Maschinennutzung, -17,Mietplatz, -24,Sonderkurse, -5,Spenden, -25,Untermiete, -16,Verkauf Diverses, -12,Verkauf Material, -27,Domino,12 -10,Zeitnutzung, diff --git a/demo/demo_products.csv b/demo/demo_products.csv deleted file mode 100644 index 6748aeb..0000000 --- a/demo/demo_products.csv +++ /dev/null @@ -1,122 +0,0 @@ -id,name,default_code,category_id,category_name -91,Rabatt,DISC,23,PoS -90,Tipps,TIPS,23,PoS -23,2h Freie Werkstattnutzung (Eventgutschein),,10,Zeitnutzung -49,3D Druck (30 Minuten),,11,Maschinennutzung -99,3D Drucker Baukurs,,1,All -4,Abo upgrade Basic auf Plus (1h),,10,Zeitnutzung -110,Arduino Kinderkurs,,1,All -51,Bandschleifer (1 Minute),,11,Maschinennutzung -52,Bandsäge (1 Minute),,11,Maschinennutzung -32,Bitte Löschen!,,8,Kurse -108,Bogenbau Kurs,,8,Kurse -62,Brett/Platte pro Nacht und m²,,17,Mietplatz -130,"Buttonrohling komplett (1 Stück, alle Arten)",,12,Verkauf Material -53,CNC Fräse (1 Minute),,11,Maschinennutzung -117,CNC Sicherheitseinweisung,,7,Einweisungen -24,Dengelworkshop,,8,Kurse -129,Domino-Dübel D10x50,,27,Domino -123,Domino-Dübel D4x20,,27,Domino -124,Domino-Dübel D5x30,,27,Domino -125,Domino-Dübel D6x40,,27,Domino -126,Domino-Dübel D8x36,,27,Domino -127,Domino-Dübel D8x40,,27,Domino -128,Domino-Dübel D8x50,,27,Domino -98,Drechseln - Grundkurs - Längstholz,,8,Kurse -57,Drehbank (1 Minute),,11,Maschinennutzung -44,Drehen 1 – „Grundlagen der Zerspanung“,,8,Kurse -120,Eckverbinder mit Eurogewinde,,27,Domino -119,Eckverbinder mit Spreizanker,,27,Domino -113,Ehrenamt (Zeit von Teammitgliedern in der Werkstatt),,1,All -10,Einweisung 3D Drucker Delta,,7,Einweisungen -11,Einweisung 3D Drucker Prusa,,7,Einweisungen -12,Einweisung Bandsäge,,7,Einweisungen -13,Einweisung Drehbank,,7,Einweisungen -14,Einweisung FKS,,7,Einweisungen -15,Einweisung Hobel,,7,Einweisungen -16,Einweisung Laser,,7,Einweisungen -17,Einweisung Metallfräse,,7,Einweisungen -18,Einweisung Schweißgerät,,7,Einweisungen -118,Einweisung in maschinelle Holzverbindungen,,7,Einweisungen -25,Elektrotechnik – Grundkurs,,8,Kurse -81,Filament (1 gr),,12,Verkauf Material -82,Folien für Folienplotter,,12,Verkauf Material -54,Formatkreissäge (1 Minute),,11,Maschinennutzung -58,Fräse - Deckel (1 Minute),,11,Maschinennutzung -26,Fräskurs,,8,Kurse -27,Gefäße Schnitzen – Aufbaukurs,,8,Kurse -63,Gegenstand (50x30x20) pro Nacht,,17,Mietplatz -114,Gewerblich —> Preisliste Gewerbliche Nutzung auswählen,,10,Zeitnutzung -111,Gewindebuchsen > M6,,1,All -112,"Gewindebuchsen M6, M8",,1,All -104,"Gratis Zeit (Einweisungen, Kursteilnahme, Begleitung, ...)",,1,All -92,Gratisgutschein,,26,Gift Voucher -19,Gutschein,,6,Gutscheine -105,Gutschein Versand,,1,All -20,Gutscheinkarte (Papier),,16,Verkauf Diverses -55,Hobel (1 Minute),,11,Maschinennutzung -21,Holzgutschein (Standard),,16,Verkauf Diverses -22,Holzgutschein (individueller Text),,16,Verkauf Diverses -28,Holzschnitzen – Grundkurs – Löffel schnitzen,,8,Kurse -101,Holzverbindungen Grundkurs,,1,All -109,Iris - Holzkurs,,1,All -29,Kosmetikkurs,,8,Kurse -30,Kurs Folgetermin,,8,Kurse -50,Laser (Aktivminute),,11,Maschinennutzung -64,Latte/Rohr/Stange pro Nacht,,17,Mietplatz -106,Lötkurs,,8,Kurse -45,MC Stammtisch,,8,Kurse -65,Mietbox 60x40x20 pro Nacht,,17,Mietplatz -122,Mittelseitenverbinder für Domino-Loch,,27,Domino -121,Mittelseitenverbinder für Lochreihen,,27,Domino -66,Möbelstück (200x130x100) K2 pro Nacht,,17,Mietplatz -67,Möbelstück (50x60x80cm) K1 pro Nacht,,17,Mietplatz -7,Nutzung Abo Basic,,14,Abonutzer -8,Nutzung Abo Plus,,14,Abonutzer -68,Ohrstöpsel,,12,Verkauf Material -115,Pinsel,,12,Verkauf Material -46,RepairCafé,,8,Kurse -56,Sandstrahlbox (1 Minute),,11,Maschinennutzung -73,Schleifpapier Band Kantenschleifer 150x2250,,12,Verkauf Material -74,Schleifpapier Band groß 100x610,,12,Verkauf Material -75,Schleifpapier Band klein 75x533,,12,Verkauf Material -76,Schleifpapier Bogen 22x28cm,,12,Verkauf Material -77,Schleifpapier Delta Klett 93mm,,12,Verkauf Material -78,"Schleifpapier Klett 9x22cm (0,30€)",,12,Verkauf Material -79,Schleifpapier Klett Rund 125/150mm,,12,Verkauf Material -80,Schleifpapier Rolle (10 cm),,12,Verkauf Material -103,Schmieden,,8,Kurse -100,"Schnitzkurs ""Spezial""",,8,Kurse -97,Schweissen E-Hand,,8,Kurse -31,Schweissen Schutzgasschweißen-MAG Grundkurs,,8,Kurse -33,Schweißen – Grundkurs,,8,Kurse -34,Schweißen – WIG-Stahl – Grundkurs,,8,Kurse -59,Schweißgerät (1 Minute),,11,Maschinennutzung -60,Schweißkabine (eigenes Schweißgerät - 1 Minute),,11,Maschinennutzung -83,Seife (100 ml),,16,Verkauf Diverses -35,Siebdruck – Grundkurs,,8,Kurse -72,Snacks & Getränke,,13,Gastro -36,Software-Entwicklung – Grundkurs,,8,Kurse -61,Sonstige Dienstleistungen/Nutzung,,11,Maschinennutzung -37,Sonstige Kurse,,8,Kurse -84,Sonstige Verbrauchsartikel,,12,Verkauf Material -9,Spenden,,5,Spenden -85,Spüli (100ml),,16,Verkauf Diverses -47,Stammtisch FreeCAD,,8,Kurse -3,Staubschutzmaske Einfach,,12,Verkauf Material -69,Staubschutzmaske FFP1,,12,Verkauf Material -70,Trennscheiben (Flex),,12,Verkauf Material -94,"Vielfalt im und mit Holz - Schnitzen, Drechseln & Schärfen",,8,Kurse -71,Wendeschneidplatte,,12,Verkauf Material -6,Werkstattnutzung (1h),,10,Zeitnutzung -5,Werkstattnutzung Basic (1h),,10,Zeitnutzung -38,Werkzeugtasche nähen – Grundkurs,,8,Kurse -116,Wir Werkeln - Holzbrettchen,,1,All -107,Wir Werkeln - Holzkurs,,8,Kurse -102,WirWerkeln Kurs,,8,Kurse -39,Woodworkshop – Grundkurs,,8,Kurse -40,Wordclock – Bausatzkurs,,8,Kurse -41,formfang – CAD Kurs: Architektur und Interiordesign,,8,Kurse -42,formfang – CAD Kurs: Produkt- und Industriedesign,,8,Kurse -43,formfang – Portfolio Kurs,,8,Kurse -48,gemeinsames Fahrradschrauben,,8,Kurse diff --git a/demo/export.py b/demo/export.py new file mode 100644 index 0000000..d36c615 --- /dev/null +++ b/demo/export.py @@ -0,0 +1,2 @@ +/opt/odoo/odoo/odoo-bin shell -d hobbyhimmel < /home/odoo/custom_addons/open_workshop/demo/export_partner.py + diff --git a/demo/export.sh b/demo/export.sh deleted file mode 100755 index 9365312..0000000 --- a/demo/export.sh +++ /dev/null @@ -1,3 +0,0 @@ -/opt/odoo/odoo/odoo-bin shell -d hobbyhimmel < /home/odoo/custom_addons/open_workshop/demo/export_products.py -/opt/odoo/odoo/odoo-bin shell -d hobbyhimmel < /home/odoo/custom_addons/open_workshop/demo/export_partner.py -/opt/odoo/odoo/odoo-bin shell -d hobbyhimmel < /home/odoo/custom_addons/open_workshop/demo/export_categories.py diff --git a/demo/export_categories.py b/demo/export_categories.py deleted file mode 100644 index 2079054..0000000 --- a/demo/export_categories.py +++ /dev/null @@ -1,12 +0,0 @@ -import csv - -categories = env['product.category'].search([]) -with open('/home/odoo/custom_addons/open_workshop/demo/demo_product_categories.csv', 'w', newline='') as f: - writer = csv.writer(f) - writer.writerow(['id', 'name', 'parent_id']) - for cat in categories: - writer.writerow([ - cat.id, - cat.name, - cat.parent_id.id if cat.parent_id else '', - ]) diff --git a/demo/export_products.py b/demo/export_products.py deleted file mode 100644 index af09fe0..0000000 --- a/demo/export_products.py +++ /dev/null @@ -1,16 +0,0 @@ -import csv - -products = env['product.product'].search([]) -with open('/home/odoo/custom_addons/open_workshop/demo/demo_products.csv', 'w', newline='') as f: - writer = csv.writer(f) - writer.writerow(['id', 'name', 'default_code', 'category_id', 'category_name']) - for product in products: - tmpl = product.product_tmpl_id - cat = tmpl.categ_id - writer.writerow([ - product.id, - product.name, - product.default_code or '', - cat.id if cat else '', - cat.name if cat else '', - ])