commit 70cb009780e34dd62b956c985289ceb2cf84b36b Author: jopster Date: Sat Mar 16 22:11:43 2024 +0100 first commit diff --git a/__init__.py b/__init__.py new file mode 100755 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 100755 index 0000000..63ed6b7 --- /dev/null +++ b/__manifest__.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- + +{ + 'name': 'ToolManagement System', + 'version': '0.1.0.1', + 'category': 'Productivity', + 'author': 'SPACE Software', + 'website': '', + 'sequence': 20, + 'summary': 'ToolManagement and Rental', + 'description': """ToolManagement and ToolRental""", + 'depends':['base','mail','web'], + 'data': [ + 'security/groups.xml', + 'security/ir.model.access.csv', + 'views/dbtools_producer.xml', + 'views/dbtools_classes.xml', + 'views/dbtools_category.xml', + 'views/dbtools_state.xml', + 'views/dbtools_branche.xml', + 'views/dbtools_documents.xml', + 'views/dbtools_tools.xml', + 'views/menu.xml', + ], + 'demo': [], + 'installable': True, + 'application': True, + 'images': ['static/description/banner.gif'], + 'auto_install': False, + 'css': [''], + 'assets': { + 'web.assets_common': [ + ], + 'web.assets_backend': [ + ], + 'web.assets_qweb': [ + ], + }, + 'license': 'LGPL-3', +} diff --git a/__pycache__/__init__.cpython-311.pyc b/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000..3aa830b Binary files /dev/null and b/__pycache__/__init__.cpython-311.pyc differ diff --git a/data/questions_data.xml b/data/questions_data.xml new file mode 100755 index 0000000..68ee964 --- /dev/null +++ b/data/questions_data.xml @@ -0,0 +1,10 @@ + + + + Jsa Questions + jsa.questions + Q + 5 + + + \ No newline at end of file diff --git a/digi_001.tar.gz b/digi_001.tar.gz new file mode 100644 index 0000000..e5dc778 Binary files /dev/null and b/digi_001.tar.gz differ diff --git a/models/__init__.py b/models/__init__.py new file mode 100755 index 0000000..db0646f --- /dev/null +++ b/models/__init__.py @@ -0,0 +1,4 @@ +from . import dbtools +from . import company + + diff --git a/models/__pycache__/__init__.cpython-311.pyc b/models/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000..d76c6eb Binary files /dev/null and b/models/__pycache__/__init__.cpython-311.pyc differ diff --git a/models/__pycache__/company.cpython-311.pyc b/models/__pycache__/company.cpython-311.pyc new file mode 100644 index 0000000..0428b8a Binary files /dev/null and b/models/__pycache__/company.cpython-311.pyc differ diff --git a/models/__pycache__/dbtools.cpython-311.pyc b/models/__pycache__/dbtools.cpython-311.pyc new file mode 100644 index 0000000..41808aa Binary files /dev/null and b/models/__pycache__/dbtools.cpython-311.pyc differ diff --git a/models/__pycache__/dss.cpython-311.pyc b/models/__pycache__/dss.cpython-311.pyc new file mode 100644 index 0000000..6e3bbdc Binary files /dev/null and b/models/__pycache__/dss.cpython-311.pyc differ diff --git a/models/company.py b/models/company.py new file mode 100755 index 0000000..2b4729f --- /dev/null +++ b/models/company.py @@ -0,0 +1,60 @@ +# -*- coding: utf-8 -*- + +import uuid +import logging + +from odoo import api,fields, models + +_logger = logging.getLogger(__name__) + + +class ResCompany(models.Model): + _name = "res.partner" + _inherit = "res.partner" + +# company_type = fields.Selection(selection_add=[('dss_client','Werbekunde'),('dss_partner','Partnerunternehmen')]) + dsspartner = fields.Boolean('DigitalSignage Partner', default=False) + dsspartner_vertrieb = fields.Boolean('Vertriebspartner', default=False) + dsspartner_standort = fields.Boolean('Standortpartner', default=False) + dsspartner_werbung = fields.Boolean('Werbekunde', default=False) + dsspartner_vertrag = fields.Boolean('Aquisepartner', default=False) + dsspartner_eigenwerbung = fields.Boolean('Eigenwerbekunde ', default=False) + dsspartner_sonstiges = fields.Boolean('Sonstiges', default=False) + dsspartner_sonstiges_text = fields.Char('Sonstiges', default=False) + dssprojekte = fields.Many2many('dss.main', readonly=1 ) + dsspartner_name = fields.Char('Kundenname', default=False) + dsspartner_vorname = fields.Char('KundenVorname', default=False) +# dss_uuid = fields.Char('uuid') + dss_uuid = fields.Char(default=lambda self: self._default_uuid(), required=True, readonly=True, copy=False, string='UUID') + + @api.model + def _default_uuid(self): + return str(uuid.uuid4()) +# +# @api.depends('is_company') +# def _compute_company_type(self): +# for partner in self: +# if partner.is_company : partner.company_type = 'company' +# +# def _write_company_type(self): +# for partner in self: +# partner.is_company = partner.company_type == 'company' +# partner.dsspartner = ('|',partner.company_type == 'dss_client',partner.company_type == 'dss_partner') +# partner.dsspartner_werbung = partner.company_type == 'dss_client' +# +# @api.onchange('company_type') +# def onchange_company_type(self): +# res = super().onchange_company_type() +# self.is_company = (self.company_type == 'company') +# self.dsspartner_werbung = self.company_type == 'dss_client' +# return res + + + @api.onchange('name') + def onchange_name(self): + if not self.dsspartner_name : + self.dsspartner_name = self.name[self.name.index(' '):] + if not self.dsspartner_vorname : + self.dsspartner_vorname = self.name[0:self.name.index(' ')] +# self.dsspartner_werbung = self.company_type == 'dss_client' +# return res diff --git a/models/dbtools.py b/models/dbtools.py new file mode 100755 index 0000000..eb63b7f --- /dev/null +++ b/models/dbtools.py @@ -0,0 +1,158 @@ +# -*- coding: utf-8 -*- + +import ast +import json +import re +import uuid +import logging + +from odoo import api, fields, models, _ +from odoo.exceptions import ValidationError +from datetime import date + +_logger = logging.getLogger(__name__) + +class dbtools_toolsbase(models.Model): + + _name = "dbtools.tools" + _description = "ToolManagement Tools" + _rec_name = "tool_short_name" + _inherit = ['mail.thread'] + uuid = fields.Char(default=lambda self: self._default_uuid(), required=True, readonly=True, copy=False, string='UUID') + tool_state = fields.Many2one('dbtools.state',sring='akt.Status') + tool_class = fields.Many2one('dbtools.classes',sring='Werkzeuglasse') + tool_category = fields.Many2one('dbtools.category',string='Werkzeugkategorie') + tool_branch = fields.Many2one('dbtools.branche',string='Gewerke') + tool_short_name = fields.Char('Kurzbezeichnung', required=True) + tool_long_name = fields.Char('Ausf.Bezeichnung') + tool_description = fields.Text('Beschreibung') + tool_artikelnummer_intern = fields.Char('Interne Art.Nummer') + tool_artikelnummer_producer = fields.Char('Hersteller Art.Nummer') + tool_producer = fields.Many2one('dbtools.producer',string='Hersteller') + tool_picture = fields.Binary('Werkzeugbild') + + tool_documents = fields.One2many('dbtools.documents','tool',string='Dokumente') + + tool_rental_state = fields.Selection([('IL','Im Lager'),('RT','Vermietet'),('RS','Reserviert'),('NV','Nicht verfügbar')],string="Vermietungs Status",default=lambda self: self._default_rental_state()) + tool_rental_date = fields.Datetime('Vermietet seit') + tool_rental_partner = fields.Many2one('res.partner',string='Vermietet an') + tool_rental_returndate = fields.Datetime('Plan-Rückgabeam') + tool_rental_takedate = fields.Datetime('Plan-Abholung am') + + tool_rental_history = fields.One2many('dbtools.rentalhistory','tool',string='Dokumente') + + @api.model + def _default_uuid(self): + return str(uuid.uuid4()) + + def _default_rental_state(self): + return str('IL') + + def dorental(self): + return self + + def finrental(self): + return self + +class dbtools_toolproducer(models.Model): + + _name = "dbtools.producer" + _description = "ToolManagement Hersteller" + _rec_name = "producername" + _inherit = ['mail.thread'] + uuid = fields.Char(default=lambda self: self._default_uuid(), required=True, readonly=True, copy=False, string='UUID') + producername = fields.Char('Herstellername', required=True) + description = fields.Char('Beschreibung') + producer_partner = fields.Many2one('res.partner',string='Partner') + + @api.model + def _default_uuid(self): + return str(uuid.uuid4()) + +class dbtools_toolclass(models.Model): + _name = "dbtools.classes" + _description = "ToolManagement Klassen" + _rec_name = "classname" + _inherit = ['mail.thread'] + uuid = fields.Char(default=lambda self: self._default_uuid(), required=True, readonly=True, copy=False, string='UUID') + classname = fields.Char('Klassenname', required=True) + description = fields.Char('Beschreibung') + + @api.model + def _default_uuid(self): + return str(uuid.uuid4()) + +class dbtools_toolbranche(models.Model): + _name = "dbtools.branche" + _description = "ToolManagement Gewerke" + _rec_name = "branchname" + _inherit = ['mail.thread'] + uuid = fields.Char(default=lambda self: self._default_uuid(), required=True, readonly=True, copy=False, string='UUID') + branchname = fields.Char('Klassenname', required=True) + description = fields.Char('Beschreibung') + + @api.model + def _default_uuid(self): + return str(uuid.uuid4()) + +class dbtools_toolcategory(models.Model): + _name = "dbtools.category" + _description = "ToolManagement Kategorie" + _rec_name = "categoryname" + _inherit = ['mail.thread'] + uuid = fields.Char(default=lambda self: self._default_uuid(), required=True, readonly=True, copy=False, string='UUID') + categoryname = fields.Char('Kategoriename', required=True) + description = fields.Char('Beschreibung') + + @api.model + def _default_uuid(self): + return str(uuid.uuid4()) + + +class dbtools_tooldocuments(models.Model): + + _name = "dbtools.documents" + _description = "ToolManagement Dokumente" + _rec_name = "documentname" + _inherit = ['mail.thread'] + uuid = fields.Char(default=lambda self: self._default_uuid(), required=True, readonly=True, copy=False, string='UUID') + tool = fields.Many2one('dbtools.tools',string='Werkzeug') + documentname = fields.Char('Dokumentenname', required=True) + description = fields.Char('Beschreibung') + documentfile = fields.Binary('Anhang') + + @api.model + def _default_uuid(self): + return str(uuid.uuid4()) + +class dbtools_toolrentalhistory(models.Model): + + _name = "dbtools.rentalhistory" + _description = "ToolManagement Vermietungshistorie" + _rec_name = "entryname" + _inherit = ['mail.thread'] + uuid = fields.Char(default=lambda self: self._default_uuid(), required=True, readonly=True, copy=False, string='UUID') + tool = fields.Many2one('dbtools.tools',string='Werkzeug') + entryname = fields.Char('Entryname', required=True) + rental_partner = fields.Char('Leihpartner') + rental_start = fields.Datetime('Vermietungsbegin') + rental_ende = fields.Datetime('Vermietungsende') + rental_returndate = fields.Datetime('Rückgabe am') + rental_takedate = fields.Datetime('Abholung am') + + @api.model + def _default_uuid(self): + return str(uuid.uuid4()) + +class dbtools_toolstate(models.Model): + _name = "dbtools.state" + _description = "ToolManagement Status" + _rec_name = "statename" + _inherit = ['mail.thread'] + uuid = fields.Char(default=lambda self: self._default_uuid(), required=True, readonly=True, copy=False, string='UUID') + statename = fields.Char('Statusname', required=True) + description = fields.Char('Beschreibung') + + @api.model + def _default_uuid(self): + return str(uuid.uuid4()) diff --git a/security/3 b/security/3 new file mode 100755 index 0000000..a5b6936 --- /dev/null +++ b/security/3 @@ -0,0 +1,4 @@ + + Fleet + 17 + diff --git a/security/4 b/security/4 new file mode 100755 index 0000000..563f514 --- /dev/null +++ b/security/4 @@ -0,0 +1,11 @@ + + Officer : Manage all vehicles + + + + + Administrator + + + + diff --git a/security/6 b/security/6 new file mode 100755 index 0000000..58c54f3 --- /dev/null +++ b/security/6 @@ -0,0 +1,3 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +digitalsignage_dss_main_group_user,access.dss.main,model_dss_main,base.group_user,1,1,1,1 +digitalsignage_dss_systems_group_user,access.dss.systems,model_dss_systems,base.group_user,1,1,1,1 diff --git a/security/groups.xml b/security/groups.xml new file mode 100755 index 0000000..3a63e9c --- /dev/null +++ b/security/groups.xml @@ -0,0 +1,20 @@ + + + ToolManagement + 13 + + + + Standarduser + + + + + + Administrator + + + + + + \ No newline at end of file diff --git a/security/ir.model.access.csv b/security/ir.model.access.csv new file mode 100755 index 0000000..6bd690d --- /dev/null +++ b/security/ir.model.access.csv @@ -0,0 +1,8 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +toolmanagement_dbtools_producer_group_user,access.dbtools.producer,model_dbtools_producer,base.group_user,1,1,1,1 +toolmanagement_dbtools_tools_group_user,access.dbtools.tools,model_dbtools_tools,base.group_user,1,1,1,1 +toolmanagement_dbtools_classes_group_user,access.dbtools.classes,model_dbtools_classes,base.group_user,1,1,1,1 +toolmanagement_dbtools_category_group_user,access.dbtools.category,model_dbtools_category,base.group_user,1,1,1,1 +toolmanagement_dbtools_branche_group_user,access.dbtools.branche,model_dbtools_branche,base.group_user,1,1,1,1 +toolmanagement_dbtools_documents_group_user,access.dbtools.documents,model_dbtools_documents,base.group_user,1,1,1,1 +toolmanagement_dbtools_state_group_user,access.dbtools.state,model_dbtools_state,base.group_user,1,1,1,1 \ No newline at end of file diff --git a/static/description/banner.gif b/static/description/banner.gif new file mode 100755 index 0000000..f4f7268 Binary files /dev/null and b/static/description/banner.gif differ diff --git a/static/description/icon.png b/static/description/icon.png new file mode 100755 index 0000000..1ec1610 Binary files /dev/null and b/static/description/icon.png differ diff --git a/static/description/index.html b/static/description/index.html new file mode 100755 index 0000000..9935e89 --- /dev/null +++ b/static/description/index.html @@ -0,0 +1,17 @@ +

+ Client Equipment +

+

Made for Enterprise and Community

+

For managing your client's equipment

+ +

Add equipment service, click Client Equipment Servicing +

Watch the demo

diff --git a/static/description/strategyFlow.png b/static/description/strategyFlow.png new file mode 100755 index 0000000..216d7b7 Binary files /dev/null and b/static/description/strategyFlow.png differ diff --git a/static/images/LCD.jpg b/static/images/LCD.jpg new file mode 100644 index 0000000..778a7e6 Binary files /dev/null and b/static/images/LCD.jpg differ diff --git a/static/images/LED.jpg b/static/images/LED.jpg new file mode 100644 index 0000000..192c07b Binary files /dev/null and b/static/images/LED.jpg differ diff --git a/static/images/Matrix.png b/static/images/Matrix.png new file mode 100755 index 0000000..229ab05 Binary files /dev/null and b/static/images/Matrix.png differ diff --git a/static/src/css/color_widget.scss b/static/src/css/color_widget.scss new file mode 100644 index 0000000..a5f7c6f --- /dev/null +++ b/static/src/css/color_widget.scss @@ -0,0 +1,30 @@ +.o_int_colorpicker { + .o_color_pill { + display: inline-block; + height: 25px; + width: 25px; + margin: 4px; + border-radius: 25px; + position: relative; + @for $size from 1 through length($o-colors) { + &.o_color_#{$size - 1} { + background-color: nth($o-colors, $size); + &:not(.readonly):hover { + transform: scale(1.2); + transition: 0.3s; + cursor: pointer; + } + &.active:after{ + content: "\f00c"; + display: inline-block; + font: normal normal normal 14px/1 FontAwesome; + font-size: inherit; + color: #fff; + position: absolute; + padding: 4px; + font-size: 16px; + } + } + } + } +} \ No newline at end of file diff --git a/static/src/css/dss.css b/static/src/css/dss.css new file mode 100755 index 0000000..5482c25 --- /dev/null +++ b/static/src/css/dss.css @@ -0,0 +1,19 @@ +.o_kanban_project_tasks .oe_kanban_align.badge { + background: inherit; + color: inherit; + border: 1px solid var(--success); +} + +.o_kanban_project_tasks .o_field_one2many_sub_task { + margin-top:2px; + margin-right: 6px; +} + +.o_form_project_project .o_setting_box { + margin-left: 1.5rem; +} + +.openerp .system_icon_small >img { +height:90px; +width:90px; +} \ No newline at end of file diff --git a/static/src/img/app_store.png b/static/src/img/app_store.png new file mode 100644 index 0000000..4d79d76 Binary files /dev/null and b/static/src/img/app_store.png differ diff --git a/static/src/img/bird.jpg b/static/src/img/bird.jpg new file mode 100644 index 0000000..39e9610 Binary files /dev/null and b/static/src/img/bird.jpg differ diff --git a/static/src/img/chrome_store.png b/static/src/img/chrome_store.png new file mode 100644 index 0000000..95632ed Binary files /dev/null and b/static/src/img/chrome_store.png differ diff --git a/static/src/img/planner_icon.png b/static/src/img/planner_icon.png new file mode 100644 index 0000000..6d6d7c9 Binary files /dev/null and b/static/src/img/planner_icon.png differ diff --git a/static/src/img/play_store.png b/static/src/img/play_store.png new file mode 100644 index 0000000..73dd393 Binary files /dev/null and b/static/src/img/play_store.png differ diff --git a/static/src/img/project-custom-tasks.gif b/static/src/img/project-custom-tasks.gif new file mode 100644 index 0000000..e63af1f Binary files /dev/null and b/static/src/img/project-custom-tasks.gif differ diff --git a/static/src/img/tasks_icon.png b/static/src/img/tasks_icon.png new file mode 100644 index 0000000..5c5073b Binary files /dev/null and b/static/src/img/tasks_icon.png differ diff --git a/static/src/img/top_left_arrow.png b/static/src/img/top_left_arrow.png new file mode 100644 index 0000000..923b414 Binary files /dev/null and b/static/src/img/top_left_arrow.png differ diff --git a/static/src/img/web_planner_email.png b/static/src/img/web_planner_email.png new file mode 100644 index 0000000..971a26f Binary files /dev/null and b/static/src/img/web_planner_email.png differ diff --git a/static/src/img/web_planner_project.png b/static/src/img/web_planner_project.png new file mode 100644 index 0000000..14db9ea Binary files /dev/null and b/static/src/img/web_planner_project.png differ diff --git a/static/src/img/web_planner_subtype.png b/static/src/img/web_planner_subtype.png new file mode 100644 index 0000000..1dc027c Binary files /dev/null and b/static/src/img/web_planner_subtype.png differ diff --git a/views/company_view.xml b/views/company_view.xml new file mode 100755 index 0000000..be745af --- /dev/null +++ b/views/company_view.xml @@ -0,0 +1,48 @@ + + + + partner.view.dss + res.partner + + + + + + + +
+
+ + +
+
+ + +
+
+
+
+ + +
+
+
+
+
+
+ + diff --git a/views/css_loader.xml b/views/css_loader.xml new file mode 100755 index 0000000..c1c445f --- /dev/null +++ b/views/css_loader.xml @@ -0,0 +1,11 @@ + + + + + + + diff --git a/views/dbtools_branche.xml b/views/dbtools_branche.xml new file mode 100755 index 0000000..5fb3adb --- /dev/null +++ b/views/dbtools_branche.xml @@ -0,0 +1,45 @@ + + + + + dbtools_branche_form + dbtools.branche + + +
+ + + + + + +
+
+
+ + + dbtools_branche_tree + dbtools.branche + + + + + + + + + + + ToolManagement Branchen + ir.actions.act_window + dbtools.branche + tree,form + {} + +

+ Neue Branche/Gewerke erstellen +

+
+
+ +
diff --git a/views/dbtools_category.xml b/views/dbtools_category.xml new file mode 100755 index 0000000..456d9a2 --- /dev/null +++ b/views/dbtools_category.xml @@ -0,0 +1,45 @@ + + + + + dbtools_category_form + dbtools.category + + +
+ + + + + + +
+
+
+ + + dbtools_category_tree + dbtools.category + + + + + + + + + + + ToolManagement Kategorien + ir.actions.act_window + dbtools.category + tree,form + {} + +

+ Neue Kategorie erstellen +

+
+
+ +
diff --git a/views/dbtools_classes.xml b/views/dbtools_classes.xml new file mode 100755 index 0000000..7ee4663 --- /dev/null +++ b/views/dbtools_classes.xml @@ -0,0 +1,45 @@ + + + + + dbtools_classes_form + dbtools.classes + + +
+ + + + + + +
+
+
+ + + dbtools_classes_tree + dbtools.classes + + + + + + + + + + + ToolManagement Klassen + ir.actions.act_window + dbtools.classes + tree,form + {} + +

+ Neue Klasse erstellen +

+
+
+ +
diff --git a/views/dbtools_documents.xml b/views/dbtools_documents.xml new file mode 100755 index 0000000..61788b4 --- /dev/null +++ b/views/dbtools_documents.xml @@ -0,0 +1,46 @@ + + + + + dbtools_documents_form + dbtools.documents + + +
+ + + + + + + +
+
+
+ + + dbtools_documents_tree + dbtools.documents + + + + + + + + + + + ToolManagement Dokumente + ir.actions.act_window + dbtools.documents + tree,form + {} + +

+ Neues Dokument erstellen +

+
+
+ +
diff --git a/views/dbtools_producer.xml b/views/dbtools_producer.xml new file mode 100755 index 0000000..b4f78b9 --- /dev/null +++ b/views/dbtools_producer.xml @@ -0,0 +1,48 @@ + + + + + dbtools_producer_form + dbtools.producer + + +
+ + + + + + + + + +
+
+
+ + + dbtools_producer_tree + dbtools.producer + + + + + + + + + + + ToolManagement Hersteller + ir.actions.act_window + dbtools.producer + tree,form + {} + +

+ Neuen Hersteller erstellen +

+
+
+ +
diff --git a/views/dbtools_state.xml b/views/dbtools_state.xml new file mode 100755 index 0000000..7b88d5b --- /dev/null +++ b/views/dbtools_state.xml @@ -0,0 +1,45 @@ + + + + + dbtools_state_form + dbtools.state + + +
+ + + + + + +
+
+
+ + + dbtools_state_tree + dbtools.state + + + + + + + + + + + ToolManagement Status + ir.actions.act_window + dbtools.state + tree,form + {} + +

+ Neuen Status erstellen +

+
+
+ +
diff --git a/views/dbtools_tools.xml b/views/dbtools_tools.xml new file mode 100755 index 0000000..0bab064 --- /dev/null +++ b/views/dbtools_tools.xml @@ -0,0 +1,110 @@ + + + + + dbtools_tools_form + dbtools.tools + + +
+
+
+ +
+
+
+
+ + + + + +
+
+
+
+
+ + + + + +
+
+
+
+ + + + + + +
+ + + + +
+ + + +
+
+ + + + +
+
+
+ + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + dbtools_tools_tree + dbtools.tools + + + + + + + + + + + ToolManagement + ir.actions.act_window + dbtools.tools + tree,form + {} + +

+ Neues Werkzeug erstellen +

+
+
+ +
diff --git a/views/menu.xml b/views/menu.xml new file mode 100755 index 0000000..41f97cf --- /dev/null +++ b/views/menu.xml @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file