├── .gitignore ├── .pylintrc ├── LICENSE.txt ├── MANIFEST.in ├── README.md ├── img └── overview.png ├── it_management ├── __init__.py ├── config │ ├── __init__.py │ ├── desktop.py │ ├── docs.py │ └── it_management.py ├── hooks.py ├── it_management │ ├── __init__.py │ ├── custom │ │ ├── delivery_note.json │ │ ├── purchase_order.json │ │ ├── task.json │ │ └── timesheet.json │ └── doctype │ │ ├── __init__.py │ │ ├── configuration_item │ │ ├── __init__.py │ │ ├── configuration_item.js │ │ ├── configuration_item.json │ │ ├── configuration_item.py │ │ ├── configuration_item_dashboard.py │ │ ├── test_configuration_item.js │ │ └── test_configuration_item.py │ │ ├── configuration_item_table │ │ ├── __init__.py │ │ ├── configuration_item_table.json │ │ └── configuration_item_table.py │ │ ├── configuration_item_type │ │ ├── __init__.py │ │ ├── configuration_item_type.js │ │ ├── configuration_item_type.json │ │ ├── configuration_item_type.py │ │ ├── test_configuration_item_type.js │ │ └── test_configuration_item_type.py │ │ ├── contact_table │ │ ├── __init__.py │ │ ├── contact_table.json │ │ └── contact_table.py │ │ ├── host_domain │ │ ├── __init__.py │ │ ├── host_domain.js │ │ ├── host_domain.json │ │ ├── host_domain.py │ │ ├── host_domain_dashboard.py │ │ ├── test_host_domain.js │ │ └── test_host_domain.py │ │ ├── ip_address │ │ ├── __init__.py │ │ ├── ip_address.js │ │ ├── ip_address.json │ │ ├── ip_address.py │ │ ├── ip_address_dashboard.py │ │ ├── test_ip_address.js │ │ └── test_ip_address.py │ │ ├── it_management_table │ │ ├── __init__.py │ │ ├── it_management_table.json │ │ └── it_management_table.py │ │ ├── it_ticket │ │ ├── __init__.py │ │ ├── it_ticket.js │ │ ├── it_ticket.json │ │ ├── it_ticket.py │ │ ├── it_ticket_dashboard.py │ │ ├── test_it_ticket.js │ │ └── test_it_ticket.py │ │ ├── it_ticket_type │ │ ├── __init__.py │ │ ├── it_ticket_type.js │ │ ├── it_ticket_type.json │ │ ├── it_ticket_type.py │ │ ├── test_it_ticket_type.js │ │ └── test_it_ticket_type.py │ │ ├── licence │ │ ├── __init__.py │ │ ├── licence.js │ │ ├── licence.json │ │ ├── licence.py │ │ ├── licence_dashboard.py │ │ ├── test_licence.js │ │ └── test_licence.py │ │ ├── licence_table │ │ ├── __init__.py │ │ ├── licence_table.json │ │ └── licence_table.py │ │ ├── location │ │ ├── __init__.py │ │ ├── location.js │ │ ├── location.json │ │ ├── location.py │ │ ├── location_dashboard.py │ │ ├── test_location.js │ │ └── test_location.py │ │ ├── location_room │ │ ├── __init__.py │ │ ├── location_room.js │ │ ├── location_room.json │ │ ├── location_room.py │ │ ├── location_room_dashboard.py │ │ ├── test_location_room.js │ │ └── test_location_room.py │ │ ├── location_room_table │ │ ├── __init__.py │ │ ├── location_room_table.json │ │ └── location_room_table.py │ │ ├── network_interface_controller_table │ │ ├── __init__.py │ │ ├── network_interface_controller_table.json │ │ └── network_interface_controller_table.py │ │ ├── network_jack │ │ ├── __init__.py │ │ ├── network_jack.js │ │ ├── network_jack.json │ │ ├── network_jack.py │ │ ├── network_jack_dashboard.py │ │ ├── test_network_jack.js │ │ └── test_network_jack.py │ │ ├── project_configuration_item_table │ │ ├── __init__.py │ │ ├── project_configuration_item_table.json │ │ └── project_configuration_item_table.py │ │ ├── socket │ │ ├── __init__.py │ │ ├── socket.js │ │ ├── socket.json │ │ ├── socket.py │ │ ├── socket_dashboard.py │ │ ├── test_socket.js │ │ └── test_socket.py │ │ ├── software_instance │ │ ├── __init__.py │ │ ├── software_instance.js │ │ ├── software_instance.json │ │ ├── software_instance.py │ │ ├── software_instance_dashboard.py │ │ ├── test_software_instance.js │ │ └── test_software_instance.py │ │ ├── software_instance_table │ │ ├── __init__.py │ │ ├── software_instance_table.json │ │ └── software_instance_table.py │ │ ├── software_version │ │ ├── __init__.py │ │ ├── software_version.js │ │ ├── software_version.json │ │ ├── software_version.py │ │ ├── software_version_dashboard.py │ │ ├── test_software_version.js │ │ └── test_software_version.py │ │ ├── solution │ │ ├── __init__.py │ │ ├── solution.js │ │ ├── solution.json │ │ ├── solution.py │ │ ├── solution_dashboard.py │ │ ├── test_solution.js │ │ └── test_solution.py │ │ ├── solution_table │ │ ├── __init__.py │ │ ├── solution_table.json │ │ └── solution_table.py │ │ ├── solution_type │ │ ├── __init__.py │ │ ├── solution_type.js │ │ ├── solution_type.json │ │ ├── solution_type.py │ │ ├── solution_type_dashboard.py │ │ ├── test_solution_type.js │ │ └── test_solution_type.py │ │ ├── storage │ │ ├── __init__.py │ │ ├── storage.json │ │ ├── storage.py │ │ └── storage_dashboard.py │ │ ├── subnet │ │ ├── __init__.py │ │ ├── subnet.js │ │ ├── subnet.json │ │ ├── subnet.py │ │ ├── subnet_dashboard.py │ │ ├── test_subnet.js │ │ └── test_subnet.py │ │ ├── subnet_block │ │ ├── __init__.py │ │ ├── subnet_block.js │ │ ├── subnet_block.json │ │ ├── subnet_block.py │ │ ├── subnet_block_dashboard.py │ │ ├── test_subnet_block.js │ │ └── test_subnet_block.py │ │ ├── task_checklist │ │ ├── __init__.py │ │ ├── task_checklist.json │ │ └── task_checklist.py │ │ ├── task_configuration_item_table │ │ ├── __init__.py │ │ ├── task_configuration_item_table.json │ │ └── task_configuration_item_table.py │ │ ├── user_account │ │ ├── __init__.py │ │ ├── test_user_account.js │ │ ├── test_user_account.py │ │ ├── user_account.js │ │ ├── user_account.json │ │ ├── user_account.py │ │ └── user_account_dashboard.py │ │ ├── user_account_table │ │ ├── __init__.py │ │ ├── user_account_table.json │ │ └── user_account_table.py │ │ └── user_group │ │ ├── __init__.py │ │ ├── test_user_group.js │ │ ├── test_user_group.py │ │ ├── user_group.js │ │ ├── user_group.json │ │ ├── user_group.py │ │ └── user_group_dashboard.py ├── modules.txt ├── patches.txt ├── patches │ ├── 0_1 │ │ ├── __init__.py │ │ ├── configuration_item_table.py │ │ └── task_checklist.py │ ├── 0_2 │ │ ├── __init__.py │ │ ├── ci_type.py │ │ ├── it_ticket.py │ │ ├── it_ticket_type.py │ │ └── solution_type.py │ ├── 0_3 │ │ ├── __init__.py │ │ └── task_checklist.py │ └── __init__.py ├── public │ └── js │ │ ├── communication.js │ │ ├── issue.js │ │ └── task.js └── templates │ ├── __init__.py │ └── pages │ └── __init__.py ├── requirements.txt └── setup.py /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | *.pyc 3 | *.egg-info 4 | *.swp 5 | tags 6 | it_management/docs/current 7 | .vscode 8 | -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | include MANIFEST.in 2 | include requirements.txt 3 | include *.json 4 | include *.md 5 | include *.py 6 | include *.txt 7 | recursive-include it_management *.css 8 | recursive-include it_management *.csv 9 | recursive-include it_management *.html 10 | recursive-include it_management *.ico 11 | recursive-include it_management *.js 12 | recursive-include it_management *.json 13 | recursive-include it_management *.md 14 | recursive-include it_management *.png 15 | recursive-include it_management *.py 16 | recursive-include it_management *.svg 17 | recursive-include it_management *.txt 18 | recursive-exclude it_management *.pyc -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | This repository is stale at the moment. A fork that is actively developed can be found at [tueit/it_management](https://github.com/tueit/it_management). 2 | 3 | Please reach out to hallo@alyf.de to get this app tailored to your needs. 4 | 5 | ## IT Management 6 | 7 | ERPNext App for the management of IT components. This includes IT equipment and IT solutions such as servers, computers, networks and e-mail servers as well as backups, service contracts, accounts and Internet services. 8 | 9 | Works with ERPNext Version 11 and higher. 10 | 11 |  12 | 13 | #### Hardware 14 | 15 | * Configuration Item 16 | 17 | Notebook, Server, Monitor... 18 | 19 | * Solution 20 | * Socket 21 | * Network Jack 22 | 23 | #### Networking 24 | 25 | * IP Address 26 | * Subnet 27 | * Subnet Block 28 | * Host Domain 29 | 30 | #### Software 31 | 32 | * Licence 33 | 34 | Licence to use a Software Instance 35 | 36 | * Software Version 37 | * Software Instance 38 | 39 | Actual installation of a software (Software is an `Item`) 40 | 41 | * User Account 42 | 43 | Account to access a Software Instance 44 | 45 | * User Group 46 | 47 | #### Locations 48 | 49 | * Address 50 | * Location 51 | * Location Room 52 | 53 | #### Service 54 | 55 | * IT Ticket 56 | 57 | Turn Communication into IT Tickets and have all relevant information in one place. 58 | 59 | #### License 60 | 61 | GPLv3 62 | -------------------------------------------------------------------------------- /img/overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyf-de/erpnext_it-management/84d2cb4c8148d4175d8ac39d94fb6bfaa3da5188/img/overview.png -------------------------------------------------------------------------------- /it_management/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from __future__ import unicode_literals 3 | 4 | __version__ = '0.0.1' 5 | 6 | -------------------------------------------------------------------------------- /it_management/config/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyf-de/erpnext_it-management/84d2cb4c8148d4175d8ac39d94fb6bfaa3da5188/it_management/config/__init__.py -------------------------------------------------------------------------------- /it_management/config/desktop.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from __future__ import unicode_literals 3 | from frappe import _ 4 | 5 | def get_data(): 6 | return [ 7 | { 8 | "module_name": "IT Management", 9 | "color": "#064789", 10 | "icon": "octicon octicon-checklist", 11 | "type": "module", 12 | "label": _("IT Management") 13 | } 14 | ] 15 | -------------------------------------------------------------------------------- /it_management/config/docs.py: -------------------------------------------------------------------------------- 1 | """ 2 | Configuration for docs 3 | """ 4 | 5 | # source_link = "https://github.com/[org_name]/it_management" 6 | # docs_base_url = "https://[org_name].github.io/it_management" 7 | # headline = "App that does everything" 8 | # sub_heading = "Yes, you got that right the first time, everything" 9 | 10 | def get_context(context): 11 | context.brand_html = "IT Management" 12 | -------------------------------------------------------------------------------- /it_management/config/it_management.py: -------------------------------------------------------------------------------- 1 | from __future__ import unicode_literals 2 | from frappe import _ 3 | 4 | 5 | def get_data(): 6 | return [ 7 | { 8 | "label": _("Configuration Management"), 9 | "items": [ 10 | { 11 | "type": "doctype", 12 | "name": "Configuration Item", 13 | "label": _("Configuration Item"), 14 | "description": _("Configuration Item") 15 | }, 16 | { 17 | "type": "doctype", 18 | "name": "Solution", 19 | "label": _("Solution"), 20 | "description": _("Solution") 21 | }, 22 | { 23 | "type": "doctype", 24 | "name": "Socket", 25 | "label": _("Socket"), 26 | "description": _("Socket") 27 | }, 28 | { 29 | "type": "doctype", 30 | "name": "Network Jack", 31 | "label": _("Network Jack"), 32 | "description": _("Network Jack") 33 | } 34 | ] 35 | }, 36 | { 37 | "label": _("Software"), 38 | "items": [ 39 | { 40 | "type": "doctype", 41 | "name": "Licence", 42 | "label": _("Licence"), 43 | "description": _("Licence") 44 | }, 45 | { 46 | "type": "doctype", 47 | "name": "Software Instance", 48 | "label": _("Software Instance"), 49 | "description": _("Software Instance") 50 | }, 51 | { 52 | "type": "doctype", 53 | "name": "User Account", 54 | "label": _("User Account"), 55 | "description": _("User Account") 56 | }, 57 | { 58 | "type": "doctype", 59 | "name": "User Group", 60 | "label": _("User Group"), 61 | "description": _("User Group") 62 | }, 63 | { 64 | "type": "doctype", 65 | "name": "Software Version", 66 | "label": _("Software Version"), 67 | "description": _("Software Version") 68 | } 69 | ] 70 | }, 71 | { 72 | "label": _("Locations"), 73 | "items": [ 74 | { 75 | "type": "doctype", 76 | "name": "Location", 77 | "label": _("Location"), 78 | "description": _("Location") 79 | }, 80 | { 81 | "type": "doctype", 82 | "name": "Address", 83 | "label": _("Address"), 84 | "description": _("Address") 85 | }, 86 | { 87 | "type": "doctype", 88 | "name": "Location Room", 89 | "label": _("Location Room"), 90 | "description": _("Location Room") 91 | } 92 | ] 93 | }, 94 | { 95 | "label": _("Network"), 96 | "items": [ 97 | { 98 | "type": "doctype", 99 | "name": "Host Domain", 100 | "label": _("Host Domain"), 101 | "description": _("Host Domain") 102 | }, 103 | { 104 | "type": "doctype", 105 | "name": "IP Address", 106 | "label": _("IP Address"), 107 | "description": _("IP Address") 108 | }, 109 | { 110 | "type": "doctype", 111 | "name": "Subnet", 112 | "label": _("Subnet"), 113 | "description": _("Subnet") 114 | }, 115 | { 116 | "type": "doctype", 117 | "name": "Subnet Block", 118 | "label": _("Subnet Block"), 119 | "description": _("Subnet Block") 120 | } 121 | ] 122 | }, 123 | { 124 | "label": _("Service"), 125 | "items": [ 126 | { 127 | "type": "doctype", 128 | "name": "IT Ticket", 129 | "label": _("IT Ticket"), 130 | "description": _("IT Ticket") 131 | }, 132 | { 133 | "type": "doctype", 134 | "name": "Timesheet", 135 | "label": _("Timesheet"), 136 | "description": _("Timesheet") 137 | } 138 | ] 139 | } 140 | ] 141 | -------------------------------------------------------------------------------- /it_management/hooks.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from __future__ import unicode_literals 3 | from . import __version__ as app_version 4 | 5 | app_name = "it_management" 6 | app_title = "IT Management" 7 | app_publisher = "IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups," 8 | app_description = "Management von IT-Bausteinen. Hierzu gehören" 9 | app_icon = "octicon octicon-checklist" 10 | app_color = "blue" 11 | app_email = "Dienstleistungsverträge, Accounts und Internetleistungen.info@tueit.de" 12 | app_license = "GPL" 13 | 14 | # Includes in
15 | # ------------------ 16 | 17 | # include js, css files in header of desk.html 18 | # app_include_css = "/assets/it_management/css/it_management.css" 19 | # app_include_js = "/assets/it_management/js/it_management.js" 20 | 21 | # include js, css files in header of web template 22 | # web_include_css = "/assets/it_management/css/it_management.css" 23 | # web_include_js = "/assets/it_management/js/it_management.js" 24 | 25 | # include js in page 26 | # page_js = {"page" : "public/js/file.js"} 27 | 28 | # include js in doctype views 29 | doctype_js = { 30 | "Communication" : "public/js/communication.js", 31 | "Issue" : "public/js/issue.js", 32 | "Task" : "public/js/task.js" 33 | } 34 | # doctype_list_js = {"doctype" : "public/js/doctype_list.js"} 35 | # doctype_tree_js = {"doctype" : "public/js/doctype_tree.js"} 36 | # doctype_calendar_js = {"doctype" : "public/js/doctype_calendar.js"} 37 | 38 | # Home Pages 39 | # ---------- 40 | 41 | # application home page (will override Website Settings) 42 | # home_page = "login" 43 | 44 | # website user home page (by Role) 45 | # role_home_page = { 46 | # "Role": "home_page" 47 | # } 48 | 49 | # Website user home page (by function) 50 | # get_website_user_home_page = "it_management.utils.get_home_page" 51 | 52 | # Generators 53 | # ---------- 54 | 55 | # automatically create page for each record of this doctype 56 | # website_generators = ["Web Page"] 57 | 58 | # Installation 59 | # ------------ 60 | 61 | # before_install = "it_management.install.before_install" 62 | # after_install = "it_management.install.after_install" 63 | 64 | # Desk Notifications 65 | # ------------------ 66 | # See frappe.core.notifications.get_notification_config 67 | 68 | # notification_config = "it_management.notifications.get_notification_config" 69 | 70 | # Permissions 71 | # ----------- 72 | # Permissions evaluated in scripted ways 73 | 74 | # permission_query_conditions = { 75 | # "Event": "frappe.desk.doctype.event.event.get_permission_query_conditions", 76 | # } 77 | # 78 | # has_permission = { 79 | # "Event": "frappe.desk.doctype.event.event.has_permission", 80 | # } 81 | 82 | # Document Events 83 | # --------------- 84 | # Hook on document methods and events 85 | 86 | # doc_events = { 87 | # "*": { 88 | # "on_update": "method", 89 | # "on_cancel": "method", 90 | # "on_trash": "method" 91 | # } 92 | # } 93 | 94 | # Scheduled Tasks 95 | # --------------- 96 | 97 | # scheduler_events = { 98 | # "all": [ 99 | # "it_management.tasks.all" 100 | # ], 101 | # "daily": [ 102 | # "it_management.tasks.daily" 103 | # ], 104 | # "hourly": [ 105 | # "it_management.tasks.hourly" 106 | # ], 107 | # "weekly": [ 108 | # "it_management.tasks.weekly" 109 | # ] 110 | # "monthly": [ 111 | # "it_management.tasks.monthly" 112 | # ] 113 | # } 114 | 115 | # Testing 116 | # ------- 117 | 118 | # before_tests = "it_management.install.before_tests" 119 | 120 | # Overriding Whitelisted Methods 121 | # ------------------------------ 122 | # 123 | # override_whitelisted_methods = { 124 | # "frappe.desk.doctype.event.event.get_events": "it_management.event.get_events" 125 | # } 126 | 127 | -------------------------------------------------------------------------------- /it_management/it_management/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyf-de/erpnext_it-management/84d2cb4c8148d4175d8ac39d94fb6bfaa3da5188/it_management/it_management/__init__.py -------------------------------------------------------------------------------- /it_management/it_management/custom/delivery_note.json: -------------------------------------------------------------------------------- 1 | { 2 | "custom_fields": [ 3 | { 4 | "_assign": null, 5 | "_comments": null, 6 | "_liked_by": null, 7 | "_user_tags": null, 8 | "allow_on_submit": 0, 9 | "bold": 0, 10 | "collapsible": 0, 11 | "collapsible_depends_on": null, 12 | "columns": 0, 13 | "creation": "2019-08-24 04:29:09.720334", 14 | "default": null, 15 | "depends_on": null, 16 | "description": null, 17 | "docstatus": 0, 18 | "dt": "Delivery Note", 19 | "fetch_from": null, 20 | "fetch_if_empty": 0, 21 | "fieldname": "it_ticket", 22 | "fieldtype": "Link", 23 | "hidden": 0, 24 | "idx": 7, 25 | "ignore_user_permissions": 0, 26 | "ignore_xss_filter": 0, 27 | "in_global_search": 0, 28 | "in_list_view": 0, 29 | "in_standard_filter": 0, 30 | "insert_after": "customer_name", 31 | "label": "IT Ticket", 32 | "modified": "2019-08-24 04:29:09.720334", 33 | "modified_by": "Administrator", 34 | "name": "Delivery Note-it_ticket", 35 | "no_copy": 0, 36 | "options": "IT Ticket", 37 | "owner": "Administrator", 38 | "parent": null, 39 | "parentfield": null, 40 | "parenttype": null, 41 | "permlevel": 0, 42 | "precision": "", 43 | "print_hide": 0, 44 | "print_hide_if_no_value": 0, 45 | "print_width": null, 46 | "read_only": 0, 47 | "report_hide": 0, 48 | "reqd": 0, 49 | "search_index": 0, 50 | "translatable": 0, 51 | "unique": 0, 52 | "width": null 53 | } 54 | ], 55 | "custom_perms": [], 56 | "doctype": "Delivery Note", 57 | "property_setters": [], 58 | "sync_on_migrate": 1 59 | } 60 | -------------------------------------------------------------------------------- /it_management/it_management/custom/purchase_order.json: -------------------------------------------------------------------------------- 1 | { 2 | "custom_fields": [ 3 | { 4 | "_assign": null, 5 | "_comments": null, 6 | "_liked_by": null, 7 | "_user_tags": null, 8 | "allow_on_submit": 0, 9 | "bold": 0, 10 | "collapsible": 0, 11 | "collapsible_depends_on": null, 12 | "columns": 0, 13 | "creation": "2019-08-24 04:28:03.791370", 14 | "default": null, 15 | "depends_on": null, 16 | "description": null, 17 | "docstatus": 0, 18 | "dt": "Purchase Order", 19 | "fetch_from": null, 20 | "fetch_if_empty": 0, 21 | "fieldname": "it_ticket", 22 | "fieldtype": "Link", 23 | "hidden": 0, 24 | "idx": 7, 25 | "ignore_user_permissions": 0, 26 | "ignore_xss_filter": 0, 27 | "in_global_search": 0, 28 | "in_list_view": 0, 29 | "in_standard_filter": 0, 30 | "insert_after": "company", 31 | "label": "IT Ticket", 32 | "modified": "2019-08-24 04:28:03.791370", 33 | "modified_by": "Administrator", 34 | "name": "Purchase Order-it_ticket", 35 | "no_copy": 0, 36 | "options": "IT Ticket", 37 | "owner": "Administrator", 38 | "parent": null, 39 | "parentfield": null, 40 | "parenttype": null, 41 | "permlevel": 0, 42 | "precision": "", 43 | "print_hide": 0, 44 | "print_hide_if_no_value": 0, 45 | "print_width": null, 46 | "read_only": 0, 47 | "report_hide": 0, 48 | "reqd": 0, 49 | "search_index": 0, 50 | "translatable": 0, 51 | "unique": 0, 52 | "width": null 53 | } 54 | ], 55 | "custom_perms": [], 56 | "doctype": "Purchase Order", 57 | "property_setters": [], 58 | "sync_on_migrate": 1 59 | } 60 | -------------------------------------------------------------------------------- /it_management/it_management/custom/task.json: -------------------------------------------------------------------------------- 1 | { 2 | "custom_fields": [ 3 | { 4 | "_assign": null, 5 | "_comments": null, 6 | "_liked_by": null, 7 | "_user_tags": null, 8 | "allow_on_submit": 0, 9 | "bold": 0, 10 | "collapsible": 0, 11 | "collapsible_depends_on": null, 12 | "columns": 0, 13 | "creation": "2019-06-16 13:36:08.164993", 14 | "default": null, 15 | "depends_on": null, 16 | "description": null, 17 | "docstatus": 0, 18 | "dt": "Task", 19 | "fetch_from": null, 20 | "fetch_if_empty": 0, 21 | "fieldname": "it_management_table", 22 | "fieldtype": "Table", 23 | "hidden": 0, 24 | "idx": 42, 25 | "ignore_user_permissions": 0, 26 | "ignore_xss_filter": 0, 27 | "in_global_search": 0, 28 | "in_list_view": 0, 29 | "in_standard_filter": 0, 30 | "insert_after": "section_break_42", 31 | "label": "IT Management Table", 32 | "modified": "2019-06-16 13:36:08.164993", 33 | "modified_by": "Administrator", 34 | "name": "Task-it_management_table", 35 | "no_copy": 0, 36 | "options": "IT Management Table", 37 | "owner": "Administrator", 38 | "parent": null, 39 | "parentfield": null, 40 | "parenttype": null, 41 | "permlevel": 0, 42 | "precision": "", 43 | "print_hide": 0, 44 | "print_hide_if_no_value": 0, 45 | "print_width": null, 46 | "read_only": 0, 47 | "report_hide": 0, 48 | "reqd": 0, 49 | "search_index": 0, 50 | "translatable": 0, 51 | "unique": 0, 52 | "width": null 53 | }, 54 | { 55 | "_assign": null, 56 | "_comments": null, 57 | "_liked_by": null, 58 | "_user_tags": null, 59 | "allow_on_submit": 0, 60 | "bold": 0, 61 | "collapsible": 1, 62 | "collapsible_depends_on": null, 63 | "columns": 0, 64 | "creation": "2019-06-16 13:36:07.888833", 65 | "default": null, 66 | "depends_on": null, 67 | "description": null, 68 | "docstatus": 0, 69 | "dt": "Task", 70 | "fetch_from": null, 71 | "fetch_if_empty": 0, 72 | "fieldname": "section_break_42", 73 | "fieldtype": "Section Break", 74 | "hidden": 0, 75 | "idx": 40, 76 | "ignore_user_permissions": 0, 77 | "ignore_xss_filter": 0, 78 | "in_global_search": 0, 79 | "in_list_view": 0, 80 | "in_standard_filter": 0, 81 | "insert_after": "old_parent", 82 | "label": "IT Management", 83 | "modified": "2019-06-16 13:36:07.888833", 84 | "modified_by": "Administrator", 85 | "name": "Task-section_break_42", 86 | "no_copy": 0, 87 | "options": null, 88 | "owner": "Administrator", 89 | "parent": null, 90 | "parentfield": null, 91 | "parenttype": null, 92 | "permlevel": 0, 93 | "precision": "", 94 | "print_hide": 0, 95 | "print_hide_if_no_value": 0, 96 | "print_width": null, 97 | "read_only": 0, 98 | "report_hide": 0, 99 | "reqd": 0, 100 | "search_index": 0, 101 | "translatable": 0, 102 | "unique": 0, 103 | "width": null 104 | } 105 | ], 106 | "custom_perms": [], 107 | "doctype": "Task", 108 | "property_setters": [], 109 | "sync_on_migrate": 1 110 | } 111 | -------------------------------------------------------------------------------- /it_management/it_management/custom/timesheet.json: -------------------------------------------------------------------------------- 1 | { 2 | "custom_fields": [ 3 | { 4 | "_assign": null, 5 | "_comments": null, 6 | "_liked_by": null, 7 | "_user_tags": null, 8 | "allow_on_submit": 0, 9 | "bold": 0, 10 | "collapsible": 0, 11 | "collapsible_depends_on": null, 12 | "columns": 0, 13 | "creation": "2019-06-12 18:15:03.361956", 14 | "default": null, 15 | "depends_on": null, 16 | "description": null, 17 | "docstatus": 0, 18 | "dt": "Timesheet", 19 | "fetch_from": null, 20 | "fetch_if_empty": 0, 21 | "fieldname": "it_ticket", 22 | "fieldtype": "Link", 23 | "hidden": 0, 24 | "idx": 30, 25 | "ignore_user_permissions": 0, 26 | "ignore_xss_filter": 0, 27 | "in_global_search": 0, 28 | "in_list_view": 0, 29 | "in_standard_filter": 0, 30 | "insert_after": "amended_from", 31 | "label": "IT Ticket", 32 | "modified": "2019-06-12 18:15:03.361956", 33 | "modified_by": "paul.pereira@alyf.de", 34 | "name": "Timesheet-it_ticket", 35 | "no_copy": 0, 36 | "options": "IT Ticket", 37 | "owner": "paul.pereira@alyf.de", 38 | "parent": null, 39 | "parentfield": null, 40 | "parenttype": null, 41 | "permlevel": 0, 42 | "precision": "", 43 | "print_hide": 0, 44 | "print_hide_if_no_value": 0, 45 | "print_width": null, 46 | "read_only": 1, 47 | "report_hide": 0, 48 | "reqd": 0, 49 | "search_index": 0, 50 | "translatable": 0, 51 | "unique": 0, 52 | "width": null 53 | } 54 | ], 55 | "custom_perms": [], 56 | "doctype": "Timesheet", 57 | "property_setters": [ 58 | { 59 | "_assign": null, 60 | "_comments": null, 61 | "_liked_by": null, 62 | "_user_tags": null, 63 | "creation": "2019-06-12 18:15:03.279309", 64 | "default_value": null, 65 | "doc_type": "Timesheet", 66 | "docstatus": 0, 67 | "doctype_or_field": "DocType", 68 | "field_name": null, 69 | "idx": 0, 70 | "modified": "2019-06-12 18:15:03.279309", 71 | "modified_by": "paul.pereira@alyf.de", 72 | "name": "Timesheet-read_only_onload", 73 | "owner": "paul.pereira@alyf.de", 74 | "parent": null, 75 | "parentfield": null, 76 | "parenttype": null, 77 | "property": "read_only_onload", 78 | "property_type": "Check", 79 | "value": null 80 | } 81 | ], 82 | "sync_on_migrate": 1 83 | } 84 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyf-de/erpnext_it-management/84d2cb4c8148d4175d8ac39d94fb6bfaa3da5188/it_management/it_management/doctype/__init__.py -------------------------------------------------------------------------------- /it_management/it_management/doctype/configuration_item/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyf-de/erpnext_it-management/84d2cb4c8148d4175d8ac39d94fb6bfaa3da5188/it_management/it_management/doctype/configuration_item/__init__.py -------------------------------------------------------------------------------- /it_management/it_management/doctype/configuration_item/configuration_item.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 2 | // For license information, please see license.txt 3 | 4 | frappe.ui.form.on('Configuration Item', { 5 | refresh: function(frm) { 6 | 7 | } 8 | }); 9 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/configuration_item/configuration_item.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 3 | # For license information, please see license.txt 4 | 5 | from __future__ import unicode_literals 6 | import frappe 7 | from frappe.model.document import Document 8 | 9 | class ConfigurationItem(Document): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/configuration_item/configuration_item_dashboard.py: -------------------------------------------------------------------------------- 1 | from __future__ import unicode_literals 2 | from frappe import _ 3 | 4 | 5 | def get_data(): 6 | return { 7 | 'fieldname': 'configuration_item', 8 | 'non_standard_fieldnames': { 9 | 'IT Ticket': 'dynamic_name' 10 | }, 11 | 'transactions': [ 12 | { 13 | 'label': _('Software'), 14 | 'items': ['Software Instance', 'User Account'] 15 | }, 16 | { 17 | 'label': _('Service'), 18 | 'items': ['IT Ticket', 'Task'] 19 | } 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/configuration_item/test_configuration_item.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | // rename this file from _test_[name] to test_[name] to activate 3 | // and remove above this line 4 | 5 | QUnit.test("test: Configuration Item", function (assert) { 6 | let done = assert.async(); 7 | 8 | // number of asserts 9 | assert.expect(1); 10 | 11 | frappe.run_serially([ 12 | // insert a new Configuration Item 13 | () => frappe.tests.make('Configuration Item', [ 14 | // values to be set 15 | {key: 'value'} 16 | ]), 17 | () => { 18 | assert.equal(cur_frm.doc.key, 'value'); 19 | }, 20 | () => done() 21 | ]); 22 | 23 | }); 24 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/configuration_item/test_configuration_item.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and Contributors 3 | # See license.txt 4 | from __future__ import unicode_literals 5 | 6 | import frappe 7 | import unittest 8 | 9 | class TestConfigurationItem(unittest.TestCase): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/configuration_item_table/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyf-de/erpnext_it-management/84d2cb4c8148d4175d8ac39d94fb6bfaa3da5188/it_management/it_management/doctype/configuration_item_table/__init__.py -------------------------------------------------------------------------------- /it_management/it_management/doctype/configuration_item_table/configuration_item_table.json: -------------------------------------------------------------------------------- 1 | { 2 | "allow_copy": 0, 3 | "allow_events_in_timeline": 0, 4 | "allow_guest_to_view": 0, 5 | "allow_import": 0, 6 | "allow_rename": 0, 7 | "autoname": "naming_series:", 8 | "beta": 0, 9 | "creation": "2018-10-12 12:56:20.584681", 10 | "custom": 0, 11 | "docstatus": 0, 12 | "doctype": "DocType", 13 | "document_type": "", 14 | "editable_grid": 1, 15 | "engine": "InnoDB", 16 | "fields": [ 17 | { 18 | "allow_bulk_edit": 0, 19 | "allow_in_quick_entry": 0, 20 | "allow_on_submit": 0, 21 | "bold": 0, 22 | "collapsible": 0, 23 | "columns": 0, 24 | "fieldname": "naming_series", 25 | "fieldtype": "Select", 26 | "hidden": 1, 27 | "ignore_user_permissions": 0, 28 | "ignore_xss_filter": 0, 29 | "in_filter": 0, 30 | "in_global_search": 0, 31 | "in_list_view": 0, 32 | "in_standard_filter": 0, 33 | "label": "Series", 34 | "length": 0, 35 | "no_copy": 0, 36 | "options": "CIS-", 37 | "permlevel": 0, 38 | "precision": "", 39 | "print_hide": 0, 40 | "print_hide_if_no_value": 0, 41 | "read_only": 0, 42 | "remember_last_selected_value": 0, 43 | "report_hide": 0, 44 | "reqd": 0, 45 | "search_index": 0, 46 | "set_only_once": 0, 47 | "translatable": 0, 48 | "unique": 0 49 | }, 50 | { 51 | "allow_bulk_edit": 0, 52 | "allow_in_quick_entry": 0, 53 | "allow_on_submit": 0, 54 | "bold": 0, 55 | "collapsible": 0, 56 | "columns": 0, 57 | "fieldname": "note", 58 | "fieldtype": "Small Text", 59 | "hidden": 0, 60 | "ignore_user_permissions": 0, 61 | "ignore_xss_filter": 0, 62 | "in_filter": 0, 63 | "in_global_search": 0, 64 | "in_list_view": 1, 65 | "in_standard_filter": 0, 66 | "label": "Note", 67 | "length": 0, 68 | "no_copy": 0, 69 | "permlevel": 0, 70 | "precision": "", 71 | "print_hide": 0, 72 | "print_hide_if_no_value": 0, 73 | "read_only": 0, 74 | "remember_last_selected_value": 0, 75 | "report_hide": 0, 76 | "reqd": 0, 77 | "search_index": 0, 78 | "set_only_once": 0, 79 | "translatable": 0, 80 | "unique": 0 81 | }, 82 | { 83 | "allow_bulk_edit": 0, 84 | "allow_in_quick_entry": 0, 85 | "allow_on_submit": 0, 86 | "bold": 0, 87 | "collapsible": 0, 88 | "columns": 0, 89 | "fieldname": "configuration_item", 90 | "fieldtype": "Link", 91 | "hidden": 0, 92 | "ignore_user_permissions": 0, 93 | "ignore_xss_filter": 0, 94 | "in_filter": 0, 95 | "in_global_search": 0, 96 | "in_list_view": 1, 97 | "in_standard_filter": 0, 98 | "label": "Configuration Item", 99 | "length": 0, 100 | "no_copy": 0, 101 | "options": "Configuration Item", 102 | "permlevel": 0, 103 | "precision": "", 104 | "print_hide": 0, 105 | "print_hide_if_no_value": 0, 106 | "read_only": 0, 107 | "remember_last_selected_value": 0, 108 | "report_hide": 0, 109 | "reqd": 0, 110 | "search_index": 0, 111 | "set_only_once": 0, 112 | "translatable": 0, 113 | "unique": 0 114 | }, 115 | { 116 | "allow_bulk_edit": 0, 117 | "allow_in_quick_entry": 0, 118 | "allow_on_submit": 0, 119 | "bold": 0, 120 | "collapsible": 0, 121 | "columns": 0, 122 | "fieldname": "linked_configuration_item", 123 | "fieldtype": "Link", 124 | "hidden": 0, 125 | "ignore_user_permissions": 0, 126 | "ignore_xss_filter": 0, 127 | "in_filter": 0, 128 | "in_global_search": 0, 129 | "in_list_view": 0, 130 | "in_standard_filter": 0, 131 | "label": "Linked Configuration Item", 132 | "length": 0, 133 | "no_copy": 0, 134 | "options": "Configuration Item", 135 | "permlevel": 0, 136 | "precision": "", 137 | "print_hide": 0, 138 | "print_hide_if_no_value": 0, 139 | "read_only": 0, 140 | "remember_last_selected_value": 0, 141 | "report_hide": 0, 142 | "reqd": 0, 143 | "search_index": 0, 144 | "set_only_once": 0, 145 | "translatable": 0, 146 | "unique": 0 147 | } 148 | ], 149 | "has_web_view": 0, 150 | "hide_heading": 0, 151 | "hide_toolbar": 0, 152 | "idx": 0, 153 | "image_view": 0, 154 | "in_create": 0, 155 | "is_submittable": 0, 156 | "issingle": 0, 157 | "istable": 1, 158 | "max_attachments": 0, 159 | "modified": "2019-03-13 18:09:32.868798", 160 | "modified_by": "Administrator", 161 | "module": "IT Management", 162 | "name": "Configuration Item Table", 163 | "name_case": "", 164 | "owner": "wolfram.schmidt@tueit.de", 165 | "permissions": [], 166 | "quick_entry": 1, 167 | "read_only": 0, 168 | "read_only_onload": 0, 169 | "show_name_in_global_search": 0, 170 | "sort_field": "modified", 171 | "sort_order": "DESC", 172 | "track_changes": 1, 173 | "track_seen": 0, 174 | "track_views": 0 175 | } -------------------------------------------------------------------------------- /it_management/it_management/doctype/configuration_item_table/configuration_item_table.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 3 | # For license information, please see license.txt 4 | 5 | from __future__ import unicode_literals 6 | import frappe 7 | from frappe.model.document import Document 8 | 9 | class ConfigurationItemTable(Document): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/configuration_item_type/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyf-de/erpnext_it-management/84d2cb4c8148d4175d8ac39d94fb6bfaa3da5188/it_management/it_management/doctype/configuration_item_type/__init__.py -------------------------------------------------------------------------------- /it_management/it_management/doctype/configuration_item_type/configuration_item_type.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 2 | // For license information, please see license.txt 3 | 4 | frappe.ui.form.on('Configuration Item Type', { 5 | refresh: function(frm) { 6 | 7 | } 8 | }); 9 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/configuration_item_type/configuration_item_type.json: -------------------------------------------------------------------------------- 1 | { 2 | "allow_copy": 0, 3 | "allow_events_in_timeline": 0, 4 | "allow_guest_to_view": 0, 5 | "allow_import": 0, 6 | "allow_rename": 0, 7 | "autoname": "field:title", 8 | "beta": 0, 9 | "creation": "2019-06-24 17:00:19.688821", 10 | "custom": 0, 11 | "docstatus": 0, 12 | "doctype": "DocType", 13 | "document_type": "", 14 | "editable_grid": 1, 15 | "engine": "InnoDB", 16 | "fields": [ 17 | { 18 | "allow_bulk_edit": 0, 19 | "allow_in_quick_entry": 0, 20 | "allow_on_submit": 0, 21 | "bold": 0, 22 | "collapsible": 0, 23 | "columns": 0, 24 | "fetch_if_empty": 0, 25 | "fieldname": "title", 26 | "fieldtype": "Data", 27 | "hidden": 0, 28 | "ignore_user_permissions": 0, 29 | "ignore_xss_filter": 0, 30 | "in_filter": 0, 31 | "in_global_search": 0, 32 | "in_list_view": 1, 33 | "in_standard_filter": 0, 34 | "label": "Title", 35 | "length": 0, 36 | "no_copy": 0, 37 | "permlevel": 0, 38 | "precision": "", 39 | "print_hide": 0, 40 | "print_hide_if_no_value": 0, 41 | "read_only": 0, 42 | "remember_last_selected_value": 0, 43 | "report_hide": 0, 44 | "reqd": 1, 45 | "search_index": 0, 46 | "set_only_once": 0, 47 | "translatable": 0, 48 | "unique": 1 49 | }, 50 | { 51 | "allow_bulk_edit": 0, 52 | "allow_in_quick_entry": 0, 53 | "allow_on_submit": 0, 54 | "bold": 0, 55 | "collapsible": 0, 56 | "columns": 0, 57 | "fetch_if_empty": 0, 58 | "fieldname": "section_break_2", 59 | "fieldtype": "Section Break", 60 | "hidden": 0, 61 | "ignore_user_permissions": 0, 62 | "ignore_xss_filter": 0, 63 | "in_filter": 0, 64 | "in_global_search": 0, 65 | "in_list_view": 0, 66 | "in_standard_filter": 0, 67 | "length": 0, 68 | "no_copy": 0, 69 | "permlevel": 0, 70 | "precision": "", 71 | "print_hide": 0, 72 | "print_hide_if_no_value": 0, 73 | "read_only": 0, 74 | "remember_last_selected_value": 0, 75 | "report_hide": 0, 76 | "reqd": 0, 77 | "search_index": 0, 78 | "set_only_once": 0, 79 | "translatable": 0, 80 | "unique": 0 81 | }, 82 | { 83 | "allow_bulk_edit": 0, 84 | "allow_in_quick_entry": 0, 85 | "allow_on_submit": 0, 86 | "bold": 0, 87 | "collapsible": 0, 88 | "columns": 0, 89 | "fetch_if_empty": 0, 90 | "fieldname": "description", 91 | "fieldtype": "Text", 92 | "hidden": 0, 93 | "ignore_user_permissions": 0, 94 | "ignore_xss_filter": 0, 95 | "in_filter": 0, 96 | "in_global_search": 0, 97 | "in_list_view": 0, 98 | "in_standard_filter": 0, 99 | "label": "Description", 100 | "length": 0, 101 | "no_copy": 0, 102 | "permlevel": 0, 103 | "precision": "", 104 | "print_hide": 0, 105 | "print_hide_if_no_value": 0, 106 | "read_only": 0, 107 | "remember_last_selected_value": 0, 108 | "report_hide": 0, 109 | "reqd": 0, 110 | "search_index": 0, 111 | "set_only_once": 0, 112 | "translatable": 0, 113 | "unique": 0 114 | } 115 | ], 116 | "has_web_view": 0, 117 | "hide_heading": 0, 118 | "hide_toolbar": 0, 119 | "idx": 0, 120 | "image_view": 0, 121 | "in_create": 0, 122 | "is_submittable": 0, 123 | "issingle": 0, 124 | "istable": 0, 125 | "max_attachments": 0, 126 | "modified": "2019-06-24 17:00:19.688821", 127 | "modified_by": "Administrator", 128 | "module": "IT Management", 129 | "name": "Configuration Item Type", 130 | "name_case": "", 131 | "owner": "Administrator", 132 | "permissions": [ 133 | { 134 | "amend": 0, 135 | "cancel": 0, 136 | "create": 1, 137 | "delete": 1, 138 | "email": 1, 139 | "export": 1, 140 | "if_owner": 0, 141 | "import": 0, 142 | "permlevel": 0, 143 | "print": 1, 144 | "read": 1, 145 | "report": 1, 146 | "role": "System Manager", 147 | "set_user_permissions": 0, 148 | "share": 1, 149 | "submit": 0, 150 | "write": 1 151 | }, 152 | { 153 | "amend": 0, 154 | "cancel": 0, 155 | "create": 0, 156 | "delete": 0, 157 | "email": 1, 158 | "export": 1, 159 | "if_owner": 0, 160 | "import": 0, 161 | "permlevel": 0, 162 | "print": 1, 163 | "read": 1, 164 | "report": 1, 165 | "role": "Support Team", 166 | "set_user_permissions": 0, 167 | "share": 1, 168 | "submit": 0, 169 | "write": 0 170 | } 171 | ], 172 | "quick_entry": 1, 173 | "read_only": 0, 174 | "read_only_onload": 0, 175 | "show_name_in_global_search": 0, 176 | "sort_field": "modified", 177 | "sort_order": "DESC", 178 | "title_field": "", 179 | "track_changes": 1, 180 | "track_seen": 0, 181 | "track_views": 0 182 | } -------------------------------------------------------------------------------- /it_management/it_management/doctype/configuration_item_type/configuration_item_type.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 3 | # For license information, please see license.txt 4 | 5 | from __future__ import unicode_literals 6 | import frappe 7 | from frappe.model.document import Document 8 | 9 | class ConfigurationItemType(Document): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/configuration_item_type/test_configuration_item_type.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | // rename this file from _test_[name] to test_[name] to activate 3 | // and remove above this line 4 | 5 | QUnit.test("test: Configuration Item Type", function (assert) { 6 | let done = assert.async(); 7 | 8 | // number of asserts 9 | assert.expect(1); 10 | 11 | frappe.run_serially([ 12 | // insert a new Configuration Item Type 13 | () => frappe.tests.make('Configuration Item Type', [ 14 | // values to be set 15 | {key: 'value'} 16 | ]), 17 | () => { 18 | assert.equal(cur_frm.doc.key, 'value'); 19 | }, 20 | () => done() 21 | ]); 22 | 23 | }); 24 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/configuration_item_type/test_configuration_item_type.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and Contributors 3 | # See license.txt 4 | from __future__ import unicode_literals 5 | 6 | import frappe 7 | import unittest 8 | 9 | class TestConfigurationItemType(unittest.TestCase): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/contact_table/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyf-de/erpnext_it-management/84d2cb4c8148d4175d8ac39d94fb6bfaa3da5188/it_management/it_management/doctype/contact_table/__init__.py -------------------------------------------------------------------------------- /it_management/it_management/doctype/contact_table/contact_table.json: -------------------------------------------------------------------------------- 1 | { 2 | "allow_copy": 0, 3 | "allow_guest_to_view": 0, 4 | "allow_import": 0, 5 | "allow_rename": 0, 6 | "beta": 0, 7 | "creation": "2018-11-25 09:58:21.076436", 8 | "custom": 0, 9 | "docstatus": 0, 10 | "doctype": "DocType", 11 | "document_type": "", 12 | "editable_grid": 1, 13 | "engine": "InnoDB", 14 | "fields": [ 15 | { 16 | "allow_bulk_edit": 0, 17 | "allow_on_submit": 0, 18 | "bold": 0, 19 | "collapsible": 0, 20 | "columns": 0, 21 | "description": "Please provide some information about how the contact interacts with this Item.", 22 | "fieldname": "responsibility", 23 | "fieldtype": "Small Text", 24 | "hidden": 0, 25 | "ignore_user_permissions": 0, 26 | "ignore_xss_filter": 0, 27 | "in_filter": 0, 28 | "in_global_search": 0, 29 | "in_list_view": 1, 30 | "in_standard_filter": 0, 31 | "label": "Responsibility", 32 | "length": 0, 33 | "no_copy": 0, 34 | "permlevel": 0, 35 | "precision": "", 36 | "print_hide": 0, 37 | "print_hide_if_no_value": 0, 38 | "read_only": 0, 39 | "remember_last_selected_value": 0, 40 | "report_hide": 0, 41 | "reqd": 0, 42 | "search_index": 0, 43 | "set_only_once": 0, 44 | "unique": 0 45 | }, 46 | { 47 | "allow_bulk_edit": 0, 48 | "allow_on_submit": 0, 49 | "bold": 0, 50 | "collapsible": 0, 51 | "columns": 0, 52 | "fieldname": "contact", 53 | "fieldtype": "Link", 54 | "hidden": 0, 55 | "ignore_user_permissions": 0, 56 | "ignore_xss_filter": 0, 57 | "in_filter": 0, 58 | "in_global_search": 0, 59 | "in_list_view": 1, 60 | "in_standard_filter": 0, 61 | "label": "Contact", 62 | "length": 0, 63 | "no_copy": 0, 64 | "options": "Contact", 65 | "permlevel": 0, 66 | "precision": "", 67 | "print_hide": 0, 68 | "print_hide_if_no_value": 0, 69 | "read_only": 0, 70 | "remember_last_selected_value": 0, 71 | "report_hide": 0, 72 | "reqd": 0, 73 | "search_index": 0, 74 | "set_only_once": 0, 75 | "unique": 0 76 | } 77 | ], 78 | "has_web_view": 0, 79 | "hide_heading": 0, 80 | "hide_toolbar": 0, 81 | "idx": 0, 82 | "image_view": 0, 83 | "in_create": 0, 84 | "is_submittable": 0, 85 | "issingle": 0, 86 | "istable": 1, 87 | "max_attachments": 0, 88 | "modified": "2019-02-16 01:39:34.439148", 89 | "modified_by": "Administrator", 90 | "module": "IT Management", 91 | "name": "Contact Table", 92 | "name_case": "", 93 | "owner": "wolfram.schmidt@tueit.de", 94 | "permissions": [], 95 | "quick_entry": 1, 96 | "read_only": 0, 97 | "read_only_onload": 0, 98 | "show_name_in_global_search": 0, 99 | "sort_field": "modified", 100 | "sort_order": "DESC", 101 | "track_changes": 1, 102 | "track_seen": 0 103 | } -------------------------------------------------------------------------------- /it_management/it_management/doctype/contact_table/contact_table.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 3 | # For license information, please see license.txt 4 | 5 | from __future__ import unicode_literals 6 | import frappe 7 | from frappe.model.document import Document 8 | 9 | class ContactTable(Document): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/host_domain/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyf-de/erpnext_it-management/84d2cb4c8148d4175d8ac39d94fb6bfaa3da5188/it_management/it_management/doctype/host_domain/__init__.py -------------------------------------------------------------------------------- /it_management/it_management/doctype/host_domain/host_domain.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 2 | // For license information, please see license.txt 3 | 4 | frappe.ui.form.on('Host Domain', { 5 | refresh: function(frm) { 6 | 7 | } 8 | }); 9 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/host_domain/host_domain.json: -------------------------------------------------------------------------------- 1 | { 2 | "allow_copy": 0, 3 | "allow_guest_to_view": 0, 4 | "allow_import": 0, 5 | "allow_rename": 0, 6 | "autoname": "Prompt", 7 | "beta": 0, 8 | "creation": "2018-10-17 08:51:31.696729", 9 | "custom": 0, 10 | "docstatus": 0, 11 | "doctype": "DocType", 12 | "document_type": "System", 13 | "editable_grid": 1, 14 | "engine": "InnoDB", 15 | "fields": [ 16 | { 17 | "allow_bulk_edit": 0, 18 | "allow_on_submit": 0, 19 | "bold": 0, 20 | "collapsible": 0, 21 | "columns": 0, 22 | "default": "kundendomain.tld", 23 | "fieldname": "domain_name", 24 | "fieldtype": "Data", 25 | "hidden": 0, 26 | "ignore_user_permissions": 0, 27 | "ignore_xss_filter": 0, 28 | "in_filter": 0, 29 | "in_global_search": 0, 30 | "in_list_view": 0, 31 | "in_standard_filter": 0, 32 | "label": "Domain name", 33 | "length": 0, 34 | "no_copy": 0, 35 | "permlevel": 0, 36 | "precision": "", 37 | "print_hide": 0, 38 | "print_hide_if_no_value": 0, 39 | "read_only": 0, 40 | "remember_last_selected_value": 0, 41 | "report_hide": 0, 42 | "reqd": 0, 43 | "search_index": 0, 44 | "set_only_once": 0, 45 | "unique": 0 46 | }, 47 | { 48 | "allow_bulk_edit": 0, 49 | "allow_on_submit": 0, 50 | "bold": 0, 51 | "collapsible": 0, 52 | "columns": 0, 53 | "fieldname": "configuration_item", 54 | "fieldtype": "Link", 55 | "hidden": 0, 56 | "ignore_user_permissions": 0, 57 | "ignore_xss_filter": 0, 58 | "in_filter": 0, 59 | "in_global_search": 0, 60 | "in_list_view": 0, 61 | "in_standard_filter": 0, 62 | "label": "Configuration Item", 63 | "length": 0, 64 | "no_copy": 0, 65 | "options": "Configuration Item", 66 | "permlevel": 0, 67 | "precision": "", 68 | "print_hide": 0, 69 | "print_hide_if_no_value": 0, 70 | "read_only": 0, 71 | "remember_last_selected_value": 0, 72 | "report_hide": 0, 73 | "reqd": 0, 74 | "search_index": 0, 75 | "set_only_once": 0, 76 | "unique": 0 77 | } 78 | ], 79 | "has_web_view": 0, 80 | "hide_heading": 0, 81 | "hide_toolbar": 0, 82 | "idx": 0, 83 | "image_view": 0, 84 | "in_create": 0, 85 | "is_submittable": 0, 86 | "issingle": 0, 87 | "istable": 0, 88 | "max_attachments": 0, 89 | "modified": "2019-02-26 20:30:12.796457", 90 | "modified_by": "Administrator", 91 | "module": "IT Management", 92 | "name": "Host Domain", 93 | "name_case": "", 94 | "owner": "wolfram.schmidt@tueit.de", 95 | "permissions": [ 96 | { 97 | "amend": 0, 98 | "apply_user_permissions": 0, 99 | "cancel": 0, 100 | "create": 1, 101 | "delete": 1, 102 | "email": 1, 103 | "export": 1, 104 | "if_owner": 0, 105 | "import": 0, 106 | "permlevel": 0, 107 | "print": 1, 108 | "read": 1, 109 | "report": 1, 110 | "role": "System Manager", 111 | "set_user_permissions": 0, 112 | "share": 1, 113 | "submit": 0, 114 | "write": 1 115 | }, 116 | { 117 | "amend": 0, 118 | "apply_user_permissions": 0, 119 | "cancel": 0, 120 | "create": 1, 121 | "delete": 1, 122 | "email": 1, 123 | "export": 1, 124 | "if_owner": 0, 125 | "import": 0, 126 | "permlevel": 0, 127 | "print": 1, 128 | "read": 1, 129 | "report": 1, 130 | "role": "Support Team", 131 | "set_user_permissions": 0, 132 | "share": 1, 133 | "submit": 0, 134 | "write": 1 135 | } 136 | ], 137 | "quick_entry": 1, 138 | "read_only": 0, 139 | "read_only_onload": 0, 140 | "show_name_in_global_search": 0, 141 | "sort_field": "modified", 142 | "sort_order": "DESC", 143 | "track_changes": 1, 144 | "track_seen": 0 145 | } -------------------------------------------------------------------------------- /it_management/it_management/doctype/host_domain/host_domain.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 3 | # For license information, please see license.txt 4 | 5 | from __future__ import unicode_literals 6 | import frappe 7 | from frappe.model.document import Document 8 | 9 | class HostDomain(Document): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/host_domain/host_domain_dashboard.py: -------------------------------------------------------------------------------- 1 | from __future__ import unicode_literals 2 | from frappe import _ 3 | 4 | 5 | def get_data(): 6 | return { 7 | 'fieldname': 'host_domain', 8 | 'non_standard_fieldnames': { 9 | 'Configuration Item': 'domain_name', 10 | 'IT Ticket': 'dynamic_name' 11 | }, 12 | 'transactions': [ 13 | { 14 | 'label': _('Configuration Items'), 15 | 'items': ['Configuration Item'] 16 | }, 17 | { 18 | 'label': _('Service'), 19 | 'items': ['IT Ticket'] 20 | } 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/host_domain/test_host_domain.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | // rename this file from _test_[name] to test_[name] to activate 3 | // and remove above this line 4 | 5 | QUnit.test("test: Host Domain", function (assert) { 6 | let done = assert.async(); 7 | 8 | // number of asserts 9 | assert.expect(1); 10 | 11 | frappe.run_serially([ 12 | // insert a new Host Domain 13 | () => frappe.tests.make('Host Domain', [ 14 | // values to be set 15 | {key: 'value'} 16 | ]), 17 | () => { 18 | assert.equal(cur_frm.doc.key, 'value'); 19 | }, 20 | () => done() 21 | ]); 22 | 23 | }); 24 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/host_domain/test_host_domain.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and Contributors 3 | # See license.txt 4 | from __future__ import unicode_literals 5 | 6 | import frappe 7 | import unittest 8 | 9 | class TestHostDomain(unittest.TestCase): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/ip_address/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyf-de/erpnext_it-management/84d2cb4c8148d4175d8ac39d94fb6bfaa3da5188/it_management/it_management/doctype/ip_address/__init__.py -------------------------------------------------------------------------------- /it_management/it_management/doctype/ip_address/ip_address.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 2 | // For license information, please see license.txt 3 | 4 | frappe.ui.form.on('IP Address', { 5 | refresh: function(frm) { 6 | 7 | } 8 | }); 9 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/ip_address/ip_address.json: -------------------------------------------------------------------------------- 1 | { 2 | "allow_copy": 0, 3 | "allow_events_in_timeline": 0, 4 | "allow_guest_to_view": 0, 5 | "allow_import": 1, 6 | "allow_rename": 0, 7 | "autoname": "field:ip_address", 8 | "beta": 0, 9 | "creation": "2018-10-12 18:02:54.111389", 10 | "custom": 0, 11 | "docstatus": 0, 12 | "doctype": "DocType", 13 | "document_type": "System", 14 | "editable_grid": 1, 15 | "engine": "InnoDB", 16 | "fields": [ 17 | { 18 | "allow_bulk_edit": 0, 19 | "allow_in_quick_entry": 0, 20 | "allow_on_submit": 0, 21 | "bold": 0, 22 | "collapsible": 0, 23 | "columns": 0, 24 | "fieldname": "ip_address", 25 | "fieldtype": "Data", 26 | "hidden": 0, 27 | "ignore_user_permissions": 0, 28 | "ignore_xss_filter": 0, 29 | "in_filter": 0, 30 | "in_global_search": 0, 31 | "in_list_view": 1, 32 | "in_standard_filter": 0, 33 | "label": "IP Address", 34 | "length": 0, 35 | "no_copy": 0, 36 | "permlevel": 0, 37 | "precision": "", 38 | "print_hide": 0, 39 | "print_hide_if_no_value": 0, 40 | "read_only": 0, 41 | "remember_last_selected_value": 0, 42 | "report_hide": 0, 43 | "reqd": 1, 44 | "search_index": 0, 45 | "set_only_once": 0, 46 | "translatable": 0, 47 | "unique": 1 48 | } 49 | ], 50 | "has_web_view": 0, 51 | "hide_heading": 0, 52 | "hide_toolbar": 0, 53 | "idx": 0, 54 | "image_view": 0, 55 | "in_create": 0, 56 | "is_submittable": 0, 57 | "issingle": 0, 58 | "istable": 0, 59 | "max_attachments": 0, 60 | "modified": "2019-03-13 13:47:49.859799", 61 | "modified_by": "Administrator", 62 | "module": "IT Management", 63 | "name": "IP Address", 64 | "name_case": "", 65 | "owner": "wolfram.schmidt@tueit.de", 66 | "permissions": [ 67 | { 68 | "amend": 0, 69 | "cancel": 0, 70 | "create": 1, 71 | "delete": 1, 72 | "email": 1, 73 | "export": 1, 74 | "if_owner": 0, 75 | "import": 0, 76 | "permlevel": 0, 77 | "print": 1, 78 | "read": 1, 79 | "report": 1, 80 | "role": "System Manager", 81 | "set_user_permissions": 0, 82 | "share": 1, 83 | "submit": 0, 84 | "write": 1 85 | }, 86 | { 87 | "amend": 0, 88 | "cancel": 0, 89 | "create": 1, 90 | "delete": 1, 91 | "email": 1, 92 | "export": 1, 93 | "if_owner": 0, 94 | "import": 0, 95 | "permlevel": 0, 96 | "print": 1, 97 | "read": 1, 98 | "report": 1, 99 | "role": "Support Team", 100 | "set_user_permissions": 0, 101 | "share": 1, 102 | "submit": 0, 103 | "write": 1 104 | } 105 | ], 106 | "quick_entry": 1, 107 | "read_only": 0, 108 | "read_only_onload": 0, 109 | "show_name_in_global_search": 0, 110 | "sort_field": "modified", 111 | "sort_order": "DESC", 112 | "track_changes": 1, 113 | "track_seen": 0, 114 | "track_views": 0 115 | } -------------------------------------------------------------------------------- /it_management/it_management/doctype/ip_address/ip_address.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 3 | # For license information, please see license.txt 4 | 5 | from __future__ import unicode_literals 6 | import frappe 7 | from frappe.model.document import Document 8 | 9 | class IPAddress(Document): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/ip_address/ip_address_dashboard.py: -------------------------------------------------------------------------------- 1 | from __future__ import unicode_literals 2 | from frappe import _ 3 | 4 | 5 | def get_data(): 6 | return { 7 | 'fieldname': 'ip_address', 8 | 'non_standard_fieldnames': { 9 | 'IT Ticket': 'dynamic_name' 10 | }, 11 | 'transactions': [ 12 | { 13 | 'label': _('Service'), 14 | 'items': ['IT Ticket'] 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/ip_address/test_ip_address.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | // rename this file from _test_[name] to test_[name] to activate 3 | // and remove above this line 4 | 5 | QUnit.test("test: IP Address", function (assert) { 6 | let done = assert.async(); 7 | 8 | // number of asserts 9 | assert.expect(1); 10 | 11 | frappe.run_serially([ 12 | // insert a new IP Address 13 | () => frappe.tests.make('IP Address', [ 14 | // values to be set 15 | {key: 'value'} 16 | ]), 17 | () => { 18 | assert.equal(cur_frm.doc.key, 'value'); 19 | }, 20 | () => done() 21 | ]); 22 | 23 | }); 24 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/ip_address/test_ip_address.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and Contributors 3 | # See license.txt 4 | from __future__ import unicode_literals 5 | 6 | import frappe 7 | import unittest 8 | 9 | class TestIPAddress(unittest.TestCase): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/it_management_table/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyf-de/erpnext_it-management/84d2cb4c8148d4175d8ac39d94fb6bfaa3da5188/it_management/it_management/doctype/it_management_table/__init__.py -------------------------------------------------------------------------------- /it_management/it_management/doctype/it_management_table/it_management_table.json: -------------------------------------------------------------------------------- 1 | { 2 | "allow_copy": 0, 3 | "allow_events_in_timeline": 0, 4 | "allow_guest_to_view": 0, 5 | "allow_import": 0, 6 | "allow_rename": 0, 7 | "beta": 0, 8 | "creation": "2019-06-04 18:41:53.585030", 9 | "custom": 0, 10 | "docstatus": 0, 11 | "doctype": "DocType", 12 | "document_type": "", 13 | "editable_grid": 1, 14 | "engine": "InnoDB", 15 | "fields": [ 16 | { 17 | "allow_bulk_edit": 0, 18 | "allow_in_quick_entry": 0, 19 | "allow_on_submit": 0, 20 | "bold": 0, 21 | "collapsible": 0, 22 | "columns": 2, 23 | "default": "", 24 | "fetch_if_empty": 0, 25 | "fieldname": "dynamic_type", 26 | "fieldtype": "Link", 27 | "hidden": 0, 28 | "ignore_user_permissions": 0, 29 | "ignore_xss_filter": 0, 30 | "in_filter": 0, 31 | "in_global_search": 0, 32 | "in_list_view": 1, 33 | "in_standard_filter": 0, 34 | "label": "DocType", 35 | "length": 0, 36 | "no_copy": 0, 37 | "options": "DocType", 38 | "permlevel": 0, 39 | "precision": "", 40 | "print_hide": 0, 41 | "print_hide_if_no_value": 0, 42 | "read_only": 0, 43 | "remember_last_selected_value": 0, 44 | "report_hide": 0, 45 | "reqd": 0, 46 | "search_index": 0, 47 | "set_only_once": 0, 48 | "translatable": 0, 49 | "unique": 0 50 | }, 51 | { 52 | "allow_bulk_edit": 0, 53 | "allow_in_quick_entry": 0, 54 | "allow_on_submit": 0, 55 | "bold": 0, 56 | "collapsible": 0, 57 | "columns": 2, 58 | "fetch_if_empty": 0, 59 | "fieldname": "dynamic_name", 60 | "fieldtype": "Dynamic Link", 61 | "hidden": 0, 62 | "ignore_user_permissions": 0, 63 | "ignore_xss_filter": 0, 64 | "in_filter": 0, 65 | "in_global_search": 0, 66 | "in_list_view": 1, 67 | "in_standard_filter": 0, 68 | "label": "Document", 69 | "length": 0, 70 | "no_copy": 0, 71 | "options": "dynamic_type", 72 | "permlevel": 0, 73 | "precision": "", 74 | "print_hide": 0, 75 | "print_hide_if_no_value": 0, 76 | "read_only": 0, 77 | "remember_last_selected_value": 0, 78 | "report_hide": 0, 79 | "reqd": 0, 80 | "search_index": 0, 81 | "set_only_once": 0, 82 | "translatable": 0, 83 | "unique": 0 84 | }, 85 | { 86 | "allow_bulk_edit": 0, 87 | "allow_in_quick_entry": 0, 88 | "allow_on_submit": 0, 89 | "bold": 0, 90 | "collapsible": 0, 91 | "columns": 5, 92 | "fetch_if_empty": 0, 93 | "fieldname": "note", 94 | "fieldtype": "Small Text", 95 | "hidden": 0, 96 | "ignore_user_permissions": 0, 97 | "ignore_xss_filter": 0, 98 | "in_filter": 0, 99 | "in_global_search": 0, 100 | "in_list_view": 1, 101 | "in_standard_filter": 0, 102 | "label": "Note", 103 | "length": 0, 104 | "no_copy": 0, 105 | "permlevel": 0, 106 | "precision": "", 107 | "print_hide": 0, 108 | "print_hide_if_no_value": 0, 109 | "read_only": 0, 110 | "remember_last_selected_value": 0, 111 | "report_hide": 0, 112 | "reqd": 0, 113 | "search_index": 0, 114 | "set_only_once": 0, 115 | "translatable": 0, 116 | "unique": 0 117 | }, 118 | { 119 | "allow_bulk_edit": 0, 120 | "allow_in_quick_entry": 0, 121 | "allow_on_submit": 0, 122 | "bold": 0, 123 | "collapsible": 0, 124 | "columns": 1, 125 | "fetch_if_empty": 0, 126 | "fieldname": "checked", 127 | "fieldtype": "Check", 128 | "hidden": 0, 129 | "ignore_user_permissions": 0, 130 | "ignore_xss_filter": 0, 131 | "in_filter": 0, 132 | "in_global_search": 0, 133 | "in_list_view": 1, 134 | "in_standard_filter": 0, 135 | "label": "Checked", 136 | "length": 0, 137 | "no_copy": 0, 138 | "permlevel": 0, 139 | "precision": "", 140 | "print_hide": 0, 141 | "print_hide_if_no_value": 0, 142 | "read_only": 0, 143 | "remember_last_selected_value": 0, 144 | "report_hide": 0, 145 | "reqd": 0, 146 | "search_index": 0, 147 | "set_only_once": 0, 148 | "translatable": 0, 149 | "unique": 0 150 | } 151 | ], 152 | "has_web_view": 0, 153 | "hide_heading": 0, 154 | "hide_toolbar": 0, 155 | "idx": 0, 156 | "image_view": 0, 157 | "in_create": 0, 158 | "is_submittable": 0, 159 | "issingle": 0, 160 | "istable": 1, 161 | "max_attachments": 0, 162 | "modified": "2019-08-24 03:50:19.633966", 163 | "modified_by": "Administrator", 164 | "module": "IT Management", 165 | "name": "IT Management Table", 166 | "name_case": "", 167 | "owner": "Administrator", 168 | "permissions": [], 169 | "quick_entry": 1, 170 | "read_only": 0, 171 | "read_only_onload": 0, 172 | "show_name_in_global_search": 0, 173 | "sort_field": "modified", 174 | "sort_order": "ASC", 175 | "track_changes": 1, 176 | "track_seen": 0, 177 | "track_views": 0 178 | } -------------------------------------------------------------------------------- /it_management/it_management/doctype/it_management_table/it_management_table.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 3 | # For license information, please see license.txt 4 | 5 | from __future__ import unicode_literals 6 | import frappe 7 | from frappe.model.document import Document 8 | 9 | class ITManagementTable(Document): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/it_ticket/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyf-de/erpnext_it-management/84d2cb4c8148d4175d8ac39d94fb6bfaa3da5188/it_management/it_management/doctype/it_ticket/__init__.py -------------------------------------------------------------------------------- /it_management/it_management/doctype/it_ticket/it_ticket.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 2 | // For license information, please see license.txt 3 | 4 | frappe.ui.form.on('IT Ticket', { 5 | onload: function (frm) { 6 | // restrict Dynamic Links to IT Mnagement 7 | frm.set_query('dynamic_type', 'it_management_table', function () { 8 | return { 9 | 'filters': { 10 | 'module': 'IT Management', 11 | 'istable': 0, 12 | } 13 | }; 14 | }); 15 | frm.set_query('project', function () { 16 | // restrict project to customer 17 | if (frm.doc.customer) { 18 | return { 19 | 'filters': { 20 | 'customer': frm.doc.customer, 21 | } 22 | }; 23 | } 24 | }); 25 | frm.set_query('task', function () { 26 | // restrict tasks to project 27 | if (frm.doc.project) { 28 | return { 29 | 'filters': { 30 | 'project': frm.doc.project, 31 | } 32 | }; 33 | } 34 | }); 35 | }, 36 | refresh: function (frm) { 37 | if (!frm.is_new()) { 38 | frm.add_custom_button('Add Activity', function () { frm.trigger('add_activity') }); 39 | frm.add_custom_button('Purchase Order', function () { frm.trigger('make_purchase_order') }, __("Make")); 40 | frm.add_custom_button('Delivery Note', function () { frm.trigger('make_delivery_note') }, __("Make")); 41 | } 42 | frm.trigger('render_contact'); 43 | }, 44 | contact: function (frm) { 45 | frm.trigger('render_contact'); 46 | }, 47 | render_contact: function (frm) { 48 | if (frm.doc.contact && frm.doc.hasOwnProperty('__onload')) { 49 | frappe.contacts.render_address_and_contact(frm); 50 | // hide "New Contact" Button 51 | $('.btn-contact').hide(); 52 | } else { 53 | cur_frm.fields_dict.contact_html.html(); 54 | } 55 | }, 56 | add_activity: function (frm) { 57 | it_ticket_activity_dialog(frm); 58 | }, 59 | make_purchase_order: function (frm) { 60 | frappe.new_doc("Purchase Order", { 61 | "it_ticket": frm.doc.name 62 | }); 63 | }, 64 | make_delivery_note: function (frm) { 65 | frappe.new_doc("Delivery Note", { 66 | "customer": frm.doc.customer, 67 | "project" : frm.doc.project, 68 | "it_ticket": frm.doc.name 69 | }); 70 | } 71 | }); 72 | 73 | function it_ticket_activity_dialog(frm) { 74 | if (frm.is_new()) { 75 | show_alert(__('Save the document first.')); 76 | return; 77 | } 78 | const activity = new frappe.ui.Dialog({ 79 | title: __('New Activity'), 80 | fields: [ 81 | { 82 | fieldtype: 'Datetime', 83 | label: __('From Time'), 84 | fieldname: 'from_time', 85 | default: frappe.datetime.now_datetime() 86 | }, 87 | { 88 | fieldtype: 'Link', 89 | label: __('Activity Type'), 90 | fieldname: 'activity_type', 91 | options: 'Activity Type', 92 | }, 93 | { 94 | fieldtype: 'Column Break', 95 | fieldname: 'cb_1', 96 | }, 97 | { 98 | fieldtype: 'Datetime', 99 | fieldname: 'to_time', 100 | label: __('To Time'), 101 | default: frappe.datetime.now_datetime(), 102 | }, 103 | // { 104 | // fieldtype: 'Float', 105 | // fieldname: 'hours', 106 | // label: __('Hours'), 107 | // default: 0.25 108 | // }, 109 | { 110 | fieldtype: 'Section Break', 111 | fieldname: 'sb_1', 112 | }, 113 | { 114 | fieldtype: 'Text Editor', 115 | fieldname: 'note', 116 | }, 117 | ], 118 | }) 119 | 120 | activity.set_primary_action(__('Save'), (dialog) => { 121 | frm.timeline.insert_comment('Comment', dialog.note); 122 | const hours = moment(dialog.to_time).diff(moment(dialog.from_time), "seconds") / 3600; 123 | 124 | let timesheet = { 125 | doctype: 'Timesheet', 126 | it_ticket: frm.doc.name, 127 | note: dialog.note, 128 | time_logs: [ 129 | { 130 | activity_type: dialog.activity_type, 131 | from_time: dialog.from_time, 132 | to_time: dialog.to_time, 133 | // to_time: (new moment(dialog.from_time)).add(dialog.hours, 'hours').format('YYYY-MM-DD HH:mm:ss'), 134 | hours: hours, 135 | project: frm.doc.project, 136 | task: frm.doc.task, 137 | billable: 1, 138 | billing_hours: hours, 139 | } 140 | ] 141 | }; 142 | 143 | // Get employee for logged user 144 | const options = { user_id: frappe.session.user }; 145 | const fields = ['name', 'company']; 146 | 147 | frappe.db.get_value('Employee', options, fields) 148 | .then(({ message: employee }) => { 149 | if (employee) { 150 | timesheet['employee'] = employee.name; 151 | timesheet['company'] = employee.company; 152 | } 153 | }) 154 | .then(() => { 155 | frappe.db.insert(timesheet); 156 | }) 157 | .then(() => { 158 | activity.hide(); 159 | activity.clear(); 160 | }); 161 | }) 162 | 163 | activity.show(); 164 | } 165 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/it_ticket/it_ticket.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 3 | # For license information, please see license.txt 4 | 5 | from __future__ import unicode_literals 6 | import frappe 7 | from frappe.model.document import Document 8 | import json 9 | 10 | 11 | class ITTicket(Document): 12 | def onload(self): 13 | if self.contact: 14 | # load contact data to be displayed 15 | self.set_onload("contact_list", [ 16 | frappe.get_doc("Contact", self.contact)]) 17 | 18 | def before_insert(self): 19 | if self.task and not self.project: 20 | self.project = frappe.get_value("Task", self.task, "project") 21 | 22 | if self.project and not self.customer: 23 | self.customer = frappe.get_value("Project", self.project, "customer") 24 | 25 | 26 | 27 | @frappe.whitelist() 28 | def relink_email(doctype, name, it_ticket): 29 | """Relink Email and copy comments to IT Ticket. 30 | 31 | params: 32 | doctype -- Doctype of the reference document 33 | name -- Name of the reference document 34 | ticket_name -- Name of the IT Ticket 35 | """ 36 | comm_list = frappe.get_list("Communication", filters={ 37 | "reference_doctype": doctype, 38 | "reference_name": name, 39 | }) 40 | 41 | for email in comm_list: 42 | frappe.email.relink( 43 | name=email.name, 44 | reference_doctype="IT Ticket", 45 | reference_name=it_ticket 46 | ) 47 | 48 | # copy comments 49 | doc = frappe.get_doc(doctype, name) 50 | ticket = frappe.get_doc("IT Ticket", it_ticket) 51 | 52 | if doc._comments: 53 | for comment in json.loads(doc._comments): 54 | ticket.add_comment(comment["comment"]) 55 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/it_ticket/it_ticket_dashboard.py: -------------------------------------------------------------------------------- 1 | from __future__ import unicode_literals 2 | from frappe import _ 3 | 4 | def get_data(): 5 | return { 6 | 'fieldname': 'it_ticket', 7 | 'transactions': [ 8 | { 9 | 'label': _('Transactions'), 10 | 'items': ['Timesheet', 'Purchase Order', 'Delivery Note'] 11 | } 12 | ] 13 | } 14 | 15 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/it_ticket/test_it_ticket.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | // rename this file from _test_[name] to test_[name] to activate 3 | // and remove above this line 4 | 5 | QUnit.test("test: IT Ticket", function (assert) { 6 | let done = assert.async(); 7 | 8 | // number of asserts 9 | assert.expect(1); 10 | 11 | frappe.run_serially([ 12 | // insert a new IT Ticket 13 | () => frappe.tests.make('IT Ticket', [ 14 | // values to be set 15 | {key: 'value'} 16 | ]), 17 | () => { 18 | assert.equal(cur_frm.doc.key, 'value'); 19 | }, 20 | () => done() 21 | ]); 22 | 23 | }); 24 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/it_ticket/test_it_ticket.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and Contributors 3 | # See license.txt 4 | from __future__ import unicode_literals 5 | 6 | import frappe 7 | import unittest 8 | 9 | class TestITTicket(unittest.TestCase): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/it_ticket_type/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyf-de/erpnext_it-management/84d2cb4c8148d4175d8ac39d94fb6bfaa3da5188/it_management/it_management/doctype/it_ticket_type/__init__.py -------------------------------------------------------------------------------- /it_management/it_management/doctype/it_ticket_type/it_ticket_type.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 2 | // For license information, please see license.txt 3 | 4 | frappe.ui.form.on('IT Ticket Type', { 5 | refresh: function(frm) { 6 | 7 | } 8 | }); 9 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/it_ticket_type/it_ticket_type.json: -------------------------------------------------------------------------------- 1 | { 2 | "allow_copy": 0, 3 | "allow_events_in_timeline": 0, 4 | "allow_guest_to_view": 0, 5 | "allow_import": 0, 6 | "allow_rename": 0, 7 | "autoname": "field:title", 8 | "beta": 0, 9 | "creation": "2019-06-24 12:23:41.345340", 10 | "custom": 0, 11 | "docstatus": 0, 12 | "doctype": "DocType", 13 | "document_type": "", 14 | "editable_grid": 1, 15 | "engine": "InnoDB", 16 | "fields": [ 17 | { 18 | "allow_bulk_edit": 0, 19 | "allow_in_quick_entry": 0, 20 | "allow_on_submit": 0, 21 | "bold": 0, 22 | "collapsible": 0, 23 | "columns": 0, 24 | "fetch_if_empty": 0, 25 | "fieldname": "title", 26 | "fieldtype": "Data", 27 | "hidden": 0, 28 | "ignore_user_permissions": 0, 29 | "ignore_xss_filter": 0, 30 | "in_filter": 0, 31 | "in_global_search": 0, 32 | "in_list_view": 1, 33 | "in_standard_filter": 0, 34 | "label": "Title", 35 | "length": 0, 36 | "no_copy": 0, 37 | "permlevel": 0, 38 | "precision": "", 39 | "print_hide": 0, 40 | "print_hide_if_no_value": 0, 41 | "read_only": 0, 42 | "remember_last_selected_value": 0, 43 | "report_hide": 0, 44 | "reqd": 1, 45 | "search_index": 0, 46 | "set_only_once": 0, 47 | "translatable": 0, 48 | "unique": 1 49 | }, 50 | { 51 | "allow_bulk_edit": 0, 52 | "allow_in_quick_entry": 0, 53 | "allow_on_submit": 0, 54 | "bold": 0, 55 | "collapsible": 0, 56 | "columns": 0, 57 | "fetch_if_empty": 0, 58 | "fieldname": "section_break_2", 59 | "fieldtype": "Section Break", 60 | "hidden": 0, 61 | "ignore_user_permissions": 0, 62 | "ignore_xss_filter": 0, 63 | "in_filter": 0, 64 | "in_global_search": 0, 65 | "in_list_view": 0, 66 | "in_standard_filter": 0, 67 | "length": 0, 68 | "no_copy": 0, 69 | "permlevel": 0, 70 | "precision": "", 71 | "print_hide": 0, 72 | "print_hide_if_no_value": 0, 73 | "read_only": 0, 74 | "remember_last_selected_value": 0, 75 | "report_hide": 0, 76 | "reqd": 0, 77 | "search_index": 0, 78 | "set_only_once": 0, 79 | "translatable": 0, 80 | "unique": 0 81 | }, 82 | { 83 | "allow_bulk_edit": 0, 84 | "allow_in_quick_entry": 0, 85 | "allow_on_submit": 0, 86 | "bold": 0, 87 | "collapsible": 0, 88 | "columns": 0, 89 | "fetch_if_empty": 0, 90 | "fieldname": "description", 91 | "fieldtype": "Text", 92 | "hidden": 0, 93 | "ignore_user_permissions": 0, 94 | "ignore_xss_filter": 0, 95 | "in_filter": 0, 96 | "in_global_search": 0, 97 | "in_list_view": 0, 98 | "in_standard_filter": 0, 99 | "label": "Description", 100 | "length": 0, 101 | "no_copy": 0, 102 | "permlevel": 0, 103 | "precision": "", 104 | "print_hide": 0, 105 | "print_hide_if_no_value": 0, 106 | "read_only": 0, 107 | "remember_last_selected_value": 0, 108 | "report_hide": 0, 109 | "reqd": 0, 110 | "search_index": 0, 111 | "set_only_once": 0, 112 | "translatable": 0, 113 | "unique": 0 114 | } 115 | ], 116 | "has_web_view": 0, 117 | "hide_heading": 0, 118 | "hide_toolbar": 0, 119 | "idx": 0, 120 | "image_view": 0, 121 | "in_create": 0, 122 | "is_submittable": 0, 123 | "issingle": 0, 124 | "istable": 0, 125 | "max_attachments": 0, 126 | "modified": "2019-06-24 16:59:52.620797", 127 | "modified_by": "Administrator", 128 | "module": "IT Management", 129 | "name": "IT Ticket Type", 130 | "name_case": "", 131 | "owner": "Administrator", 132 | "permissions": [ 133 | { 134 | "amend": 0, 135 | "cancel": 0, 136 | "create": 1, 137 | "delete": 1, 138 | "email": 1, 139 | "export": 1, 140 | "if_owner": 0, 141 | "import": 0, 142 | "permlevel": 0, 143 | "print": 1, 144 | "read": 1, 145 | "report": 1, 146 | "role": "System Manager", 147 | "set_user_permissions": 0, 148 | "share": 1, 149 | "submit": 0, 150 | "write": 1 151 | }, 152 | { 153 | "amend": 0, 154 | "cancel": 0, 155 | "create": 0, 156 | "delete": 0, 157 | "email": 1, 158 | "export": 1, 159 | "if_owner": 0, 160 | "import": 0, 161 | "permlevel": 0, 162 | "print": 1, 163 | "read": 1, 164 | "report": 1, 165 | "role": "Support Team", 166 | "set_user_permissions": 0, 167 | "share": 1, 168 | "submit": 0, 169 | "write": 0 170 | } 171 | ], 172 | "quick_entry": 1, 173 | "read_only": 0, 174 | "read_only_onload": 0, 175 | "show_name_in_global_search": 0, 176 | "sort_field": "modified", 177 | "sort_order": "DESC", 178 | "title_field": "", 179 | "track_changes": 1, 180 | "track_seen": 0, 181 | "track_views": 0 182 | } -------------------------------------------------------------------------------- /it_management/it_management/doctype/it_ticket_type/it_ticket_type.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 3 | # For license information, please see license.txt 4 | 5 | from __future__ import unicode_literals 6 | import frappe 7 | from frappe.model.document import Document 8 | 9 | class ITTicketType(Document): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/it_ticket_type/test_it_ticket_type.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | // rename this file from _test_[name] to test_[name] to activate 3 | // and remove above this line 4 | 5 | QUnit.test("test: IT Ticket Type", function (assert) { 6 | let done = assert.async(); 7 | 8 | // number of asserts 9 | assert.expect(1); 10 | 11 | frappe.run_serially([ 12 | // insert a new IT Ticket Type 13 | () => frappe.tests.make('IT Ticket Type', [ 14 | // values to be set 15 | {key: 'value'} 16 | ]), 17 | () => { 18 | assert.equal(cur_frm.doc.key, 'value'); 19 | }, 20 | () => done() 21 | ]); 22 | 23 | }); 24 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/it_ticket_type/test_it_ticket_type.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and Contributors 3 | # See license.txt 4 | from __future__ import unicode_literals 5 | 6 | import frappe 7 | import unittest 8 | 9 | class TestITTicketType(unittest.TestCase): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/licence/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyf-de/erpnext_it-management/84d2cb4c8148d4175d8ac39d94fb6bfaa3da5188/it_management/it_management/doctype/licence/__init__.py -------------------------------------------------------------------------------- /it_management/it_management/doctype/licence/licence.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 2 | // For license information, please see license.txt 3 | 4 | frappe.ui.form.on('Licence', { 5 | refresh: function(frm) { 6 | 7 | } 8 | }); 9 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/licence/licence.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 3 | # For license information, please see license.txt 4 | 5 | from __future__ import unicode_literals 6 | import frappe 7 | from frappe.model.document import Document 8 | 9 | class Licence(Document): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/licence/licence_dashboard.py: -------------------------------------------------------------------------------- 1 | """ 2 | """ 3 | from __future__ import unicode_literals 4 | from frappe import _ 5 | 6 | 7 | def get_data(): 8 | """ 9 | """ 10 | return { 11 | 'fieldname': 'licence', 12 | 'non_standard_fieldnames': { 13 | 'IT Ticket': 'dynamic_name' 14 | }, 15 | 'transactions': [ 16 | { 17 | 'label': _('Software'), 18 | 'items': ['Software Instance'] 19 | }, 20 | { 21 | 'label': _('Service'), 22 | 'items': ['IT Ticket'] 23 | } 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/licence/test_licence.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | // rename this file from _test_[name] to test_[name] to activate 3 | // and remove above this line 4 | 5 | QUnit.test("test: Licence", function (assert) { 6 | let done = assert.async(); 7 | 8 | // number of asserts 9 | assert.expect(1); 10 | 11 | frappe.run_serially([ 12 | // insert a new Licence 13 | () => frappe.tests.make('Licence', [ 14 | // values to be set 15 | {key: 'value'} 16 | ]), 17 | () => { 18 | assert.equal(cur_frm.doc.key, 'value'); 19 | }, 20 | () => done() 21 | ]); 22 | 23 | }); 24 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/licence/test_licence.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and Contributors 3 | # See license.txt 4 | from __future__ import unicode_literals 5 | 6 | import frappe 7 | import unittest 8 | 9 | class TestLicence(unittest.TestCase): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/licence_table/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyf-de/erpnext_it-management/84d2cb4c8148d4175d8ac39d94fb6bfaa3da5188/it_management/it_management/doctype/licence_table/__init__.py -------------------------------------------------------------------------------- /it_management/it_management/doctype/licence_table/licence_table.json: -------------------------------------------------------------------------------- 1 | { 2 | "allow_copy": 0, 3 | "allow_events_in_timeline": 0, 4 | "allow_guest_to_view": 0, 5 | "allow_import": 0, 6 | "allow_rename": 0, 7 | "beta": 0, 8 | "creation": "2019-07-01 13:31:05.821959", 9 | "custom": 0, 10 | "docstatus": 0, 11 | "doctype": "DocType", 12 | "document_type": "", 13 | "editable_grid": 1, 14 | "engine": "InnoDB", 15 | "fields": [ 16 | { 17 | "allow_bulk_edit": 0, 18 | "allow_in_quick_entry": 0, 19 | "allow_on_submit": 0, 20 | "bold": 0, 21 | "collapsible": 0, 22 | "columns": 0, 23 | "fetch_if_empty": 0, 24 | "fieldname": "note", 25 | "fieldtype": "Data", 26 | "hidden": 0, 27 | "ignore_user_permissions": 0, 28 | "ignore_xss_filter": 0, 29 | "in_filter": 0, 30 | "in_global_search": 0, 31 | "in_list_view": 0, 32 | "in_standard_filter": 0, 33 | "label": "Note", 34 | "length": 0, 35 | "no_copy": 0, 36 | "permlevel": 0, 37 | "precision": "", 38 | "print_hide": 0, 39 | "print_hide_if_no_value": 0, 40 | "read_only": 0, 41 | "remember_last_selected_value": 0, 42 | "report_hide": 0, 43 | "reqd": 0, 44 | "search_index": 0, 45 | "set_only_once": 0, 46 | "translatable": 0, 47 | "unique": 0 48 | }, 49 | { 50 | "allow_bulk_edit": 0, 51 | "allow_in_quick_entry": 0, 52 | "allow_on_submit": 0, 53 | "bold": 0, 54 | "collapsible": 0, 55 | "columns": 0, 56 | "fetch_if_empty": 0, 57 | "fieldname": "licence", 58 | "fieldtype": "Link", 59 | "hidden": 0, 60 | "ignore_user_permissions": 0, 61 | "ignore_xss_filter": 0, 62 | "in_filter": 0, 63 | "in_global_search": 0, 64 | "in_list_view": 0, 65 | "in_standard_filter": 0, 66 | "label": "Licence", 67 | "length": 0, 68 | "no_copy": 0, 69 | "options": "Licence", 70 | "permlevel": 0, 71 | "precision": "", 72 | "print_hide": 0, 73 | "print_hide_if_no_value": 0, 74 | "read_only": 0, 75 | "remember_last_selected_value": 0, 76 | "report_hide": 0, 77 | "reqd": 0, 78 | "search_index": 0, 79 | "set_only_once": 0, 80 | "translatable": 0, 81 | "unique": 0 82 | } 83 | ], 84 | "has_web_view": 0, 85 | "hide_heading": 0, 86 | "hide_toolbar": 0, 87 | "idx": 0, 88 | "image_view": 0, 89 | "in_create": 0, 90 | "is_submittable": 0, 91 | "issingle": 0, 92 | "istable": 1, 93 | "max_attachments": 0, 94 | "modified": "2019-07-01 13:31:05.821959", 95 | "modified_by": "Administrator", 96 | "module": "IT Management", 97 | "name": "Licence Table", 98 | "name_case": "", 99 | "owner": "Administrator", 100 | "permissions": [], 101 | "quick_entry": 1, 102 | "read_only": 0, 103 | "read_only_onload": 0, 104 | "show_name_in_global_search": 0, 105 | "sort_field": "modified", 106 | "sort_order": "DESC", 107 | "track_changes": 1, 108 | "track_seen": 0, 109 | "track_views": 0 110 | } -------------------------------------------------------------------------------- /it_management/it_management/doctype/licence_table/licence_table.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 3 | # For license information, please see license.txt 4 | 5 | from __future__ import unicode_literals 6 | import frappe 7 | from frappe.model.document import Document 8 | 9 | class LicenceTable(Document): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/location/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyf-de/erpnext_it-management/84d2cb4c8148d4175d8ac39d94fb6bfaa3da5188/it_management/it_management/doctype/location/__init__.py -------------------------------------------------------------------------------- /it_management/it_management/doctype/location/location.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 2 | // For license information, please see license.txt 3 | 4 | frappe.ui.form.on('Location', { 5 | setup: function(frm) { 6 | frm.set_query("address", function() { 7 | return { 8 | filters: { 9 | address_type: 'Configuration Item' 10 | } 11 | }; 12 | }); 13 | }, 14 | address: function(frm) { 15 | erpnext.utils.get_address_display(frm, 'address'); 16 | } 17 | }); 18 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/location/location.json: -------------------------------------------------------------------------------- 1 | { 2 | "allow_copy": 0, 3 | "allow_events_in_timeline": 0, 4 | "allow_guest_to_view": 0, 5 | "allow_import": 0, 6 | "allow_rename": 0, 7 | "autoname": "field:title", 8 | "beta": 0, 9 | "creation": "2018-11-23 16:48:35.862779", 10 | "custom": 0, 11 | "docstatus": 0, 12 | "doctype": "DocType", 13 | "document_type": "Document", 14 | "editable_grid": 1, 15 | "engine": "InnoDB", 16 | "fields": [ 17 | { 18 | "allow_bulk_edit": 0, 19 | "allow_in_quick_entry": 0, 20 | "allow_on_submit": 0, 21 | "bold": 0, 22 | "collapsible": 0, 23 | "columns": 0, 24 | "fieldname": "title", 25 | "fieldtype": "Data", 26 | "hidden": 0, 27 | "ignore_user_permissions": 0, 28 | "ignore_xss_filter": 0, 29 | "in_filter": 0, 30 | "in_global_search": 0, 31 | "in_list_view": 1, 32 | "in_standard_filter": 0, 33 | "label": "Title", 34 | "length": 0, 35 | "no_copy": 0, 36 | "permlevel": 0, 37 | "precision": "", 38 | "print_hide": 0, 39 | "print_hide_if_no_value": 0, 40 | "read_only": 0, 41 | "remember_last_selected_value": 0, 42 | "report_hide": 0, 43 | "reqd": 1, 44 | "search_index": 0, 45 | "set_only_once": 0, 46 | "translatable": 0, 47 | "unique": 1 48 | }, 49 | { 50 | "allow_bulk_edit": 0, 51 | "allow_in_quick_entry": 0, 52 | "allow_on_submit": 0, 53 | "bold": 0, 54 | "collapsible": 0, 55 | "columns": 0, 56 | "fieldname": "section_break_3", 57 | "fieldtype": "Section Break", 58 | "hidden": 0, 59 | "ignore_user_permissions": 0, 60 | "ignore_xss_filter": 0, 61 | "in_filter": 0, 62 | "in_global_search": 0, 63 | "in_list_view": 0, 64 | "in_standard_filter": 0, 65 | "label": "Address", 66 | "length": 0, 67 | "no_copy": 0, 68 | "permlevel": 0, 69 | "precision": "", 70 | "print_hide": 0, 71 | "print_hide_if_no_value": 0, 72 | "read_only": 0, 73 | "remember_last_selected_value": 0, 74 | "report_hide": 0, 75 | "reqd": 0, 76 | "search_index": 0, 77 | "set_only_once": 0, 78 | "translatable": 0, 79 | "unique": 0 80 | }, 81 | { 82 | "allow_bulk_edit": 0, 83 | "allow_in_quick_entry": 0, 84 | "allow_on_submit": 0, 85 | "bold": 0, 86 | "collapsible": 0, 87 | "columns": 0, 88 | "fieldname": "address", 89 | "fieldtype": "Link", 90 | "hidden": 0, 91 | "ignore_user_permissions": 0, 92 | "ignore_xss_filter": 0, 93 | "in_filter": 0, 94 | "in_global_search": 0, 95 | "in_list_view": 0, 96 | "in_standard_filter": 0, 97 | "label": "Address", 98 | "length": 0, 99 | "no_copy": 0, 100 | "options": "Address", 101 | "permlevel": 0, 102 | "precision": "", 103 | "print_hide": 0, 104 | "print_hide_if_no_value": 0, 105 | "read_only": 0, 106 | "remember_last_selected_value": 0, 107 | "report_hide": 0, 108 | "reqd": 0, 109 | "search_index": 0, 110 | "set_only_once": 0, 111 | "translatable": 0, 112 | "unique": 0 113 | }, 114 | { 115 | "allow_bulk_edit": 0, 116 | "allow_in_quick_entry": 0, 117 | "allow_on_submit": 0, 118 | "bold": 0, 119 | "collapsible": 0, 120 | "columns": 0, 121 | "default": "", 122 | "fieldname": "address_display", 123 | "fieldtype": "HTML", 124 | "hidden": 0, 125 | "ignore_user_permissions": 0, 126 | "ignore_xss_filter": 0, 127 | "in_filter": 0, 128 | "in_global_search": 0, 129 | "in_list_view": 0, 130 | "in_standard_filter": 0, 131 | "label": "Address Display", 132 | "length": 0, 133 | "no_copy": 0, 134 | "permlevel": 0, 135 | "precision": "", 136 | "print_hide": 0, 137 | "print_hide_if_no_value": 0, 138 | "read_only": 1, 139 | "remember_last_selected_value": 0, 140 | "report_hide": 0, 141 | "reqd": 0, 142 | "search_index": 0, 143 | "set_only_once": 0, 144 | "translatable": 0, 145 | "unique": 0 146 | } 147 | ], 148 | "has_web_view": 0, 149 | "hide_heading": 0, 150 | "hide_toolbar": 0, 151 | "idx": 0, 152 | "image_view": 0, 153 | "in_create": 0, 154 | "is_submittable": 0, 155 | "issingle": 0, 156 | "istable": 0, 157 | "max_attachments": 0, 158 | "modified": "2019-04-29 20:01:29.973824", 159 | "modified_by": "raffael.meyer@tueit.de", 160 | "module": "IT Management", 161 | "name": "Location", 162 | "name_case": "", 163 | "owner": "wolfram.schmidt@tueit.de", 164 | "permissions": [ 165 | { 166 | "amend": 0, 167 | "cancel": 0, 168 | "create": 1, 169 | "delete": 1, 170 | "email": 1, 171 | "export": 1, 172 | "if_owner": 0, 173 | "import": 0, 174 | "permlevel": 0, 175 | "print": 1, 176 | "read": 1, 177 | "report": 1, 178 | "role": "System Manager", 179 | "set_user_permissions": 0, 180 | "share": 1, 181 | "submit": 0, 182 | "write": 1 183 | }, 184 | { 185 | "amend": 0, 186 | "cancel": 0, 187 | "create": 1, 188 | "delete": 1, 189 | "email": 1, 190 | "export": 1, 191 | "if_owner": 0, 192 | "import": 0, 193 | "permlevel": 0, 194 | "print": 1, 195 | "read": 1, 196 | "report": 1, 197 | "role": "Support Team", 198 | "set_user_permissions": 0, 199 | "share": 1, 200 | "submit": 0, 201 | "write": 1 202 | }, 203 | { 204 | "amend": 0, 205 | "cancel": 0, 206 | "create": 1, 207 | "delete": 1, 208 | "email": 1, 209 | "export": 1, 210 | "if_owner": 0, 211 | "import": 0, 212 | "permlevel": 0, 213 | "print": 1, 214 | "read": 1, 215 | "report": 1, 216 | "role": "Administrator", 217 | "set_user_permissions": 0, 218 | "share": 1, 219 | "submit": 0, 220 | "write": 1 221 | } 222 | ], 223 | "quick_entry": 1, 224 | "read_only": 0, 225 | "read_only_onload": 0, 226 | "show_name_in_global_search": 0, 227 | "sort_field": "modified", 228 | "sort_order": "DESC", 229 | "title_field": "title", 230 | "track_changes": 1, 231 | "track_seen": 0, 232 | "track_views": 0 233 | } -------------------------------------------------------------------------------- /it_management/it_management/doctype/location/location.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 3 | # For license information, please see license.txt 4 | 5 | from __future__ import unicode_literals 6 | import frappe 7 | from frappe.model.document import Document 8 | 9 | class Location(Document): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/location/location_dashboard.py: -------------------------------------------------------------------------------- 1 | from __future__ import unicode_literals 2 | from frappe import _ 3 | 4 | 5 | def get_data(): 6 | return { 7 | 'fieldname': 'location', 8 | 'non_standard_fieldnames': { 9 | 'IT Ticket': 'dynamic_name' 10 | }, 11 | 'transactions': [ 12 | { 13 | 'label': _('Rooms'), 14 | 'items': ['Location Room'] 15 | }, 16 | { 17 | 'label': _('Service'), 18 | 'items': ['IT Ticket'] 19 | } 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/location/test_location.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | // rename this file from _test_[name] to test_[name] to activate 3 | // and remove above this line 4 | 5 | QUnit.test("test: Location", function (assert) { 6 | let done = assert.async(); 7 | 8 | // number of asserts 9 | assert.expect(1); 10 | 11 | frappe.run_serially([ 12 | // insert a new Location 13 | () => frappe.tests.make('Location', [ 14 | // values to be set 15 | {key: 'value'} 16 | ]), 17 | () => { 18 | assert.equal(cur_frm.doc.key, 'value'); 19 | }, 20 | () => done() 21 | ]); 22 | 23 | }); 24 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/location/test_location.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and Contributors 3 | # See license.txt 4 | from __future__ import unicode_literals 5 | 6 | import frappe 7 | import unittest 8 | 9 | class TestLocation(unittest.TestCase): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/location_room/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyf-de/erpnext_it-management/84d2cb4c8148d4175d8ac39d94fb6bfaa3da5188/it_management/it_management/doctype/location_room/__init__.py -------------------------------------------------------------------------------- /it_management/it_management/doctype/location_room/location_room.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 2 | // For license information, please see license.txt 3 | 4 | frappe.ui.form.on('Location Room', { 5 | refresh: function(frm) { 6 | 7 | } 8 | }); 9 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/location_room/location_room.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 3 | # For license information, please see license.txt 4 | 5 | from __future__ import unicode_literals 6 | import frappe 7 | from frappe.model.document import Document 8 | 9 | class LocationRoom(Document): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/location_room/location_room_dashboard.py: -------------------------------------------------------------------------------- 1 | from __future__ import unicode_literals 2 | from frappe import _ 3 | 4 | 5 | def get_data(): 6 | return { 7 | 'fieldname': 'location_room', 8 | 'non_standard_fieldnames': { 9 | 'IT Ticket': 'dynamic_name' 10 | }, 11 | 'transactions': [ 12 | { 13 | 'label': _('Configuration Items'), 14 | 'items': ['Configuration Item'] 15 | }, 16 | { 17 | 'label': _('Service'), 18 | 'items': ['IT Ticket'] 19 | } 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/location_room/test_location_room.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | // rename this file from _test_[name] to test_[name] to activate 3 | // and remove above this line 4 | 5 | QUnit.test("test: Location Room", function (assert) { 6 | let done = assert.async(); 7 | 8 | // number of asserts 9 | assert.expect(1); 10 | 11 | frappe.run_serially([ 12 | // insert a new Location Room 13 | () => frappe.tests.make('Location Room', [ 14 | // values to be set 15 | {key: 'value'} 16 | ]), 17 | () => { 18 | assert.equal(cur_frm.doc.key, 'value'); 19 | }, 20 | () => done() 21 | ]); 22 | 23 | }); 24 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/location_room/test_location_room.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and Contributors 3 | # See license.txt 4 | from __future__ import unicode_literals 5 | 6 | import frappe 7 | import unittest 8 | 9 | class TestLocationRoom(unittest.TestCase): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/location_room_table/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyf-de/erpnext_it-management/84d2cb4c8148d4175d8ac39d94fb6bfaa3da5188/it_management/it_management/doctype/location_room_table/__init__.py -------------------------------------------------------------------------------- /it_management/it_management/doctype/location_room_table/location_room_table.json: -------------------------------------------------------------------------------- 1 | { 2 | "allow_copy": 0, 3 | "allow_guest_to_view": 0, 4 | "allow_import": 0, 5 | "allow_rename": 0, 6 | "autoname": "", 7 | "beta": 0, 8 | "creation": "2018-11-23 16:53:02.995179", 9 | "custom": 0, 10 | "docstatus": 0, 11 | "doctype": "DocType", 12 | "document_type": "", 13 | "editable_grid": 1, 14 | "engine": "InnoDB", 15 | "fields": [ 16 | { 17 | "allow_bulk_edit": 0, 18 | "allow_on_submit": 0, 19 | "bold": 0, 20 | "collapsible": 0, 21 | "columns": 0, 22 | "fieldname": "room", 23 | "fieldtype": "Link", 24 | "hidden": 0, 25 | "ignore_user_permissions": 0, 26 | "ignore_xss_filter": 0, 27 | "in_filter": 0, 28 | "in_global_search": 0, 29 | "in_list_view": 1, 30 | "in_standard_filter": 0, 31 | "label": "Room", 32 | "length": 0, 33 | "no_copy": 0, 34 | "options": "Location Room", 35 | "permlevel": 0, 36 | "precision": "", 37 | "print_hide": 0, 38 | "print_hide_if_no_value": 0, 39 | "read_only": 0, 40 | "remember_last_selected_value": 0, 41 | "report_hide": 0, 42 | "reqd": 0, 43 | "search_index": 0, 44 | "set_only_once": 0, 45 | "unique": 0 46 | }, 47 | { 48 | "allow_bulk_edit": 0, 49 | "allow_on_submit": 0, 50 | "bold": 0, 51 | "collapsible": 0, 52 | "columns": 0, 53 | "fieldname": "floor", 54 | "fieldtype": "Select", 55 | "hidden": 0, 56 | "ignore_user_permissions": 0, 57 | "ignore_xss_filter": 0, 58 | "in_filter": 0, 59 | "in_global_search": 0, 60 | "in_list_view": 1, 61 | "in_standard_filter": 0, 62 | "label": "Floor", 63 | "length": 0, 64 | "no_copy": 0, 65 | "options": "\n3. UG\n2. UG\n1. UG\nEG\n1. OG\n2. OG\n3. OG\n4. OG\n5. OG", 66 | "permlevel": 0, 67 | "precision": "", 68 | "print_hide": 0, 69 | "print_hide_if_no_value": 0, 70 | "read_only": 0, 71 | "remember_last_selected_value": 0, 72 | "report_hide": 0, 73 | "reqd": 0, 74 | "search_index": 0, 75 | "set_only_once": 0, 76 | "unique": 0 77 | }, 78 | { 79 | "allow_bulk_edit": 0, 80 | "allow_on_submit": 0, 81 | "bold": 0, 82 | "collapsible": 0, 83 | "columns": 0, 84 | "description": "Please further describe Details on the specific Location", 85 | "fieldname": "note", 86 | "fieldtype": "Small Text", 87 | "hidden": 0, 88 | "ignore_user_permissions": 0, 89 | "ignore_xss_filter": 0, 90 | "in_filter": 0, 91 | "in_global_search": 0, 92 | "in_list_view": 1, 93 | "in_standard_filter": 0, 94 | "label": "Note", 95 | "length": 0, 96 | "no_copy": 0, 97 | "permlevel": 0, 98 | "precision": "", 99 | "print_hide": 0, 100 | "print_hide_if_no_value": 0, 101 | "read_only": 0, 102 | "remember_last_selected_value": 0, 103 | "report_hide": 0, 104 | "reqd": 0, 105 | "search_index": 0, 106 | "set_only_once": 0, 107 | "unique": 0 108 | } 109 | ], 110 | "has_web_view": 0, 111 | "hide_heading": 0, 112 | "hide_toolbar": 0, 113 | "idx": 0, 114 | "image_view": 0, 115 | "in_create": 0, 116 | "is_submittable": 0, 117 | "issingle": 0, 118 | "istable": 1, 119 | "max_attachments": 0, 120 | "modified": "2019-02-16 01:39:23.106838", 121 | "modified_by": "Administrator", 122 | "module": "IT Management", 123 | "name": "Location Room Table", 124 | "name_case": "", 125 | "owner": "wolfram.schmidt@tueit.de", 126 | "permissions": [], 127 | "quick_entry": 1, 128 | "read_only": 0, 129 | "read_only_onload": 0, 130 | "show_name_in_global_search": 0, 131 | "sort_field": "modified", 132 | "sort_order": "DESC", 133 | "track_changes": 1, 134 | "track_seen": 0 135 | } -------------------------------------------------------------------------------- /it_management/it_management/doctype/location_room_table/location_room_table.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 3 | # For license information, please see license.txt 4 | 5 | from __future__ import unicode_literals 6 | import frappe 7 | from frappe.model.document import Document 8 | 9 | class LocationRoomTable(Document): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/network_interface_controller_table/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyf-de/erpnext_it-management/84d2cb4c8148d4175d8ac39d94fb6bfaa3da5188/it_management/it_management/doctype/network_interface_controller_table/__init__.py -------------------------------------------------------------------------------- /it_management/it_management/doctype/network_interface_controller_table/network_interface_controller_table.json: -------------------------------------------------------------------------------- 1 | { 2 | "allow_copy": 0, 3 | "allow_events_in_timeline": 0, 4 | "allow_guest_to_view": 0, 5 | "allow_import": 0, 6 | "allow_rename": 0, 7 | "autoname": "NIC-Table-.#####", 8 | "beta": 0, 9 | "creation": "2018-10-12 17:57:17.158259", 10 | "custom": 0, 11 | "docstatus": 0, 12 | "doctype": "DocType", 13 | "document_type": "", 14 | "editable_grid": 1, 15 | "engine": "InnoDB", 16 | "fields": [ 17 | { 18 | "allow_bulk_edit": 0, 19 | "allow_in_quick_entry": 0, 20 | "allow_on_submit": 0, 21 | "bold": 0, 22 | "collapsible": 0, 23 | "columns": 0, 24 | "default": "", 25 | "fieldname": "ip_address", 26 | "fieldtype": "Link", 27 | "hidden": 0, 28 | "ignore_user_permissions": 0, 29 | "ignore_xss_filter": 0, 30 | "in_filter": 0, 31 | "in_global_search": 0, 32 | "in_list_view": 1, 33 | "in_standard_filter": 0, 34 | "label": "IP Address", 35 | "length": 0, 36 | "no_copy": 0, 37 | "options": "IP Address", 38 | "permlevel": 0, 39 | "precision": "", 40 | "print_hide": 0, 41 | "print_hide_if_no_value": 0, 42 | "read_only": 0, 43 | "remember_last_selected_value": 0, 44 | "report_hide": 0, 45 | "reqd": 0, 46 | "search_index": 0, 47 | "set_only_once": 0, 48 | "translatable": 0, 49 | "unique": 0 50 | }, 51 | { 52 | "allow_bulk_edit": 0, 53 | "allow_in_quick_entry": 0, 54 | "allow_on_submit": 0, 55 | "bold": 0, 56 | "collapsible": 0, 57 | "columns": 0, 58 | "description": "Use : as separator", 59 | "fieldname": "mac_address", 60 | "fieldtype": "Data", 61 | "hidden": 0, 62 | "ignore_user_permissions": 0, 63 | "ignore_xss_filter": 0, 64 | "in_filter": 0, 65 | "in_global_search": 0, 66 | "in_list_view": 1, 67 | "in_standard_filter": 0, 68 | "label": "MAC Address", 69 | "length": 17, 70 | "no_copy": 0, 71 | "permlevel": 0, 72 | "precision": "", 73 | "print_hide": 0, 74 | "print_hide_if_no_value": 0, 75 | "read_only": 0, 76 | "remember_last_selected_value": 0, 77 | "report_hide": 0, 78 | "reqd": 0, 79 | "search_index": 0, 80 | "set_only_once": 0, 81 | "translatable": 0, 82 | "unique": 0 83 | }, 84 | { 85 | "allow_bulk_edit": 0, 86 | "allow_in_quick_entry": 0, 87 | "allow_on_submit": 0, 88 | "bold": 0, 89 | "collapsible": 0, 90 | "columns": 0, 91 | "fieldname": "note", 92 | "fieldtype": "Small Text", 93 | "hidden": 0, 94 | "ignore_user_permissions": 0, 95 | "ignore_xss_filter": 0, 96 | "in_filter": 0, 97 | "in_global_search": 0, 98 | "in_list_view": 1, 99 | "in_standard_filter": 0, 100 | "label": "Note", 101 | "length": 0, 102 | "no_copy": 0, 103 | "permlevel": 0, 104 | "precision": "", 105 | "print_hide": 0, 106 | "print_hide_if_no_value": 0, 107 | "read_only": 0, 108 | "remember_last_selected_value": 0, 109 | "report_hide": 0, 110 | "reqd": 0, 111 | "search_index": 0, 112 | "set_only_once": 0, 113 | "translatable": 0, 114 | "unique": 0 115 | }, 116 | { 117 | "allow_bulk_edit": 0, 118 | "allow_in_quick_entry": 0, 119 | "allow_on_submit": 0, 120 | "bold": 0, 121 | "collapsible": 0, 122 | "columns": 0, 123 | "fieldname": "hostname", 124 | "fieldtype": "Data", 125 | "hidden": 0, 126 | "ignore_user_permissions": 0, 127 | "ignore_xss_filter": 0, 128 | "in_filter": 0, 129 | "in_global_search": 0, 130 | "in_list_view": 1, 131 | "in_standard_filter": 0, 132 | "label": "Hostname", 133 | "length": 0, 134 | "no_copy": 0, 135 | "permlevel": 0, 136 | "precision": "", 137 | "print_hide": 0, 138 | "print_hide_if_no_value": 0, 139 | "read_only": 0, 140 | "remember_last_selected_value": 0, 141 | "report_hide": 0, 142 | "reqd": 0, 143 | "search_index": 0, 144 | "set_only_once": 0, 145 | "translatable": 0, 146 | "unique": 0 147 | } 148 | ], 149 | "has_web_view": 0, 150 | "hide_heading": 0, 151 | "hide_toolbar": 0, 152 | "idx": 0, 153 | "image_view": 0, 154 | "in_create": 0, 155 | "is_submittable": 0, 156 | "issingle": 0, 157 | "istable": 1, 158 | "max_attachments": 0, 159 | "modified": "2019-04-09 12:45:06.148127", 160 | "modified_by": "Administrator", 161 | "module": "IT Management", 162 | "name": "Network Interface Controller Table", 163 | "name_case": "", 164 | "owner": "wolfram.schmidt@tueit.de", 165 | "permissions": [], 166 | "quick_entry": 1, 167 | "read_only": 0, 168 | "read_only_onload": 0, 169 | "show_name_in_global_search": 0, 170 | "sort_field": "modified", 171 | "sort_order": "DESC", 172 | "track_changes": 1, 173 | "track_seen": 0, 174 | "track_views": 0 175 | } -------------------------------------------------------------------------------- /it_management/it_management/doctype/network_interface_controller_table/network_interface_controller_table.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 3 | # For license information, please see license.txt 4 | 5 | from __future__ import unicode_literals 6 | import frappe 7 | from frappe.model.document import Document 8 | 9 | class NetworkInterfaceControllerTable(Document): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/network_jack/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyf-de/erpnext_it-management/84d2cb4c8148d4175d8ac39d94fb6bfaa3da5188/it_management/it_management/doctype/network_jack/__init__.py -------------------------------------------------------------------------------- /it_management/it_management/doctype/network_jack/network_jack.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 2 | // For license information, please see license.txt 3 | 4 | frappe.ui.form.on('Network Jack', { 5 | refresh: function(frm) { 6 | 7 | } 8 | }); 9 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/network_jack/network_jack.json: -------------------------------------------------------------------------------- 1 | { 2 | "allow_copy": 0, 3 | "allow_events_in_timeline": 0, 4 | "allow_guest_to_view": 0, 5 | "allow_import": 0, 6 | "allow_rename": 0, 7 | "autoname": "format:{label}-{location_room}", 8 | "beta": 0, 9 | "creation": "2019-03-14 10:29:17.467432", 10 | "custom": 0, 11 | "docstatus": 0, 12 | "doctype": "DocType", 13 | "document_type": "Setup", 14 | "editable_grid": 1, 15 | "engine": "InnoDB", 16 | "fields": [ 17 | { 18 | "allow_bulk_edit": 0, 19 | "allow_in_quick_entry": 0, 20 | "allow_on_submit": 0, 21 | "bold": 0, 22 | "collapsible": 0, 23 | "columns": 0, 24 | "fieldname": "location_room", 25 | "fieldtype": "Link", 26 | "hidden": 0, 27 | "ignore_user_permissions": 0, 28 | "ignore_xss_filter": 0, 29 | "in_filter": 0, 30 | "in_global_search": 0, 31 | "in_list_view": 0, 32 | "in_standard_filter": 0, 33 | "label": "Location Room", 34 | "length": 0, 35 | "no_copy": 0, 36 | "options": "Location Room", 37 | "permlevel": 0, 38 | "precision": "", 39 | "print_hide": 0, 40 | "print_hide_if_no_value": 0, 41 | "read_only": 0, 42 | "remember_last_selected_value": 0, 43 | "report_hide": 0, 44 | "reqd": 0, 45 | "search_index": 0, 46 | "set_only_once": 0, 47 | "translatable": 0, 48 | "unique": 0 49 | }, 50 | { 51 | "allow_bulk_edit": 0, 52 | "allow_in_quick_entry": 0, 53 | "allow_on_submit": 0, 54 | "bold": 0, 55 | "collapsible": 0, 56 | "columns": 0, 57 | "fieldname": "label", 58 | "fieldtype": "Data", 59 | "hidden": 0, 60 | "ignore_user_permissions": 0, 61 | "ignore_xss_filter": 0, 62 | "in_filter": 0, 63 | "in_global_search": 0, 64 | "in_list_view": 0, 65 | "in_standard_filter": 0, 66 | "label": "Label", 67 | "length": 0, 68 | "no_copy": 0, 69 | "permlevel": 0, 70 | "precision": "", 71 | "print_hide": 0, 72 | "print_hide_if_no_value": 0, 73 | "read_only": 0, 74 | "remember_last_selected_value": 0, 75 | "report_hide": 0, 76 | "reqd": 0, 77 | "search_index": 0, 78 | "set_only_once": 0, 79 | "translatable": 0, 80 | "unique": 0 81 | }, 82 | { 83 | "allow_bulk_edit": 0, 84 | "allow_in_quick_entry": 0, 85 | "allow_on_submit": 0, 86 | "bold": 0, 87 | "collapsible": 0, 88 | "columns": 0, 89 | "fieldname": "network_jack", 90 | "fieldtype": "Link", 91 | "hidden": 0, 92 | "ignore_user_permissions": 0, 93 | "ignore_xss_filter": 0, 94 | "in_filter": 0, 95 | "in_global_search": 0, 96 | "in_list_view": 0, 97 | "in_standard_filter": 0, 98 | "label": "Network Jack", 99 | "length": 0, 100 | "no_copy": 0, 101 | "options": "Network Jack", 102 | "permlevel": 0, 103 | "precision": "", 104 | "print_hide": 0, 105 | "print_hide_if_no_value": 0, 106 | "read_only": 0, 107 | "remember_last_selected_value": 0, 108 | "report_hide": 0, 109 | "reqd": 0, 110 | "search_index": 0, 111 | "set_only_once": 0, 112 | "translatable": 0, 113 | "unique": 0 114 | } 115 | ], 116 | "has_web_view": 0, 117 | "hide_heading": 0, 118 | "hide_toolbar": 0, 119 | "idx": 0, 120 | "image_view": 0, 121 | "in_create": 0, 122 | "is_submittable": 0, 123 | "issingle": 0, 124 | "istable": 0, 125 | "max_attachments": 0, 126 | "modified": "2019-03-22 16:20:52.766717", 127 | "modified_by": "Administrator", 128 | "module": "IT Management", 129 | "name": "Network Jack", 130 | "name_case": "", 131 | "owner": "Administrator", 132 | "permissions": [ 133 | { 134 | "amend": 0, 135 | "cancel": 0, 136 | "create": 1, 137 | "delete": 1, 138 | "email": 1, 139 | "export": 1, 140 | "if_owner": 0, 141 | "import": 0, 142 | "permlevel": 0, 143 | "print": 1, 144 | "read": 1, 145 | "report": 1, 146 | "role": "System Manager", 147 | "set_user_permissions": 0, 148 | "share": 1, 149 | "submit": 0, 150 | "write": 1 151 | } 152 | ], 153 | "quick_entry": 1, 154 | "read_only": 0, 155 | "read_only_onload": 0, 156 | "show_name_in_global_search": 0, 157 | "sort_field": "modified", 158 | "sort_order": "DESC", 159 | "track_changes": 1, 160 | "track_seen": 0, 161 | "track_views": 0 162 | } 163 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/network_jack/network_jack.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 3 | # For license information, please see license.txt 4 | 5 | from __future__ import unicode_literals 6 | import frappe 7 | from frappe.model.document import Document 8 | 9 | class NetworkJack(Document): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/network_jack/network_jack_dashboard.py: -------------------------------------------------------------------------------- 1 | """ 2 | """ 3 | from __future__ import unicode_literals 4 | from frappe import _ 5 | 6 | 7 | def get_data(): 8 | """ 9 | """ 10 | return { 11 | 'fieldname': 'network_jack', 12 | 'non_standard_fieldnames': { 13 | 'IT Ticket': 'dynamic_name' 14 | }, 15 | 'transactions': [ 16 | { 17 | 'label': _('Service'), 18 | 'items': ['IT Ticket'] 19 | } 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/network_jack/test_network_jack.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | // rename this file from _test_[name] to test_[name] to activate 3 | // and remove above this line 4 | 5 | QUnit.test("test: Network Jack", function (assert) { 6 | let done = assert.async(); 7 | 8 | // number of asserts 9 | assert.expect(1); 10 | 11 | frappe.run_serially([ 12 | // insert a new Network Jack 13 | () => frappe.tests.make('Network Jack', [ 14 | // values to be set 15 | {key: 'value'} 16 | ]), 17 | () => { 18 | assert.equal(cur_frm.doc.key, 'value'); 19 | }, 20 | () => done() 21 | ]); 22 | 23 | }); 24 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/network_jack/test_network_jack.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and Contributors 3 | # See license.txt 4 | from __future__ import unicode_literals 5 | 6 | import frappe 7 | import unittest 8 | 9 | class TestNetworkJack(unittest.TestCase): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/project_configuration_item_table/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyf-de/erpnext_it-management/84d2cb4c8148d4175d8ac39d94fb6bfaa3da5188/it_management/it_management/doctype/project_configuration_item_table/__init__.py -------------------------------------------------------------------------------- /it_management/it_management/doctype/project_configuration_item_table/project_configuration_item_table.json: -------------------------------------------------------------------------------- 1 | { 2 | "allow_copy": 0, 3 | "allow_guest_to_view": 0, 4 | "allow_import": 0, 5 | "allow_rename": 0, 6 | "autoname": "", 7 | "beta": 0, 8 | "creation": "2019-01-22 14:47:40.416506", 9 | "custom": 0, 10 | "docstatus": 0, 11 | "doctype": "DocType", 12 | "document_type": "", 13 | "editable_grid": 1, 14 | "engine": "InnoDB", 15 | "fields": [ 16 | { 17 | "allow_bulk_edit": 0, 18 | "allow_on_submit": 0, 19 | "bold": 0, 20 | "collapsible": 0, 21 | "columns": 0, 22 | "fieldname": "note", 23 | "fieldtype": "Small Text", 24 | "hidden": 0, 25 | "ignore_user_permissions": 0, 26 | "ignore_xss_filter": 0, 27 | "in_filter": 0, 28 | "in_global_search": 0, 29 | "in_list_view": 1, 30 | "in_standard_filter": 0, 31 | "label": "Note", 32 | "length": 0, 33 | "no_copy": 0, 34 | "permlevel": 0, 35 | "precision": "", 36 | "print_hide": 0, 37 | "print_hide_if_no_value": 0, 38 | "read_only": 0, 39 | "remember_last_selected_value": 0, 40 | "report_hide": 0, 41 | "reqd": 0, 42 | "search_index": 0, 43 | "set_only_once": 0, 44 | "unique": 0 45 | }, 46 | { 47 | "allow_bulk_edit": 0, 48 | "allow_on_submit": 0, 49 | "bold": 0, 50 | "collapsible": 0, 51 | "columns": 0, 52 | "fieldname": "linked_configuration_item", 53 | "fieldtype": "Link", 54 | "hidden": 0, 55 | "ignore_user_permissions": 0, 56 | "ignore_xss_filter": 0, 57 | "in_filter": 0, 58 | "in_global_search": 0, 59 | "in_list_view": 1, 60 | "in_standard_filter": 0, 61 | "label": "Linked Configuration Item", 62 | "length": 0, 63 | "no_copy": 0, 64 | "options": "Configuration Item", 65 | "permlevel": 0, 66 | "precision": "", 67 | "print_hide": 0, 68 | "print_hide_if_no_value": 0, 69 | "read_only": 0, 70 | "remember_last_selected_value": 0, 71 | "report_hide": 0, 72 | "reqd": 0, 73 | "search_index": 0, 74 | "set_only_once": 0, 75 | "unique": 0 76 | }, 77 | { 78 | "allow_bulk_edit": 0, 79 | "allow_on_submit": 0, 80 | "bold": 0, 81 | "collapsible": 0, 82 | "columns": 0, 83 | "fieldname": "checkbox", 84 | "fieldtype": "Check", 85 | "hidden": 0, 86 | "ignore_user_permissions": 0, 87 | "ignore_xss_filter": 0, 88 | "in_filter": 0, 89 | "in_global_search": 0, 90 | "in_list_view": 1, 91 | "in_standard_filter": 0, 92 | "label": "Checkbox", 93 | "length": 0, 94 | "no_copy": 0, 95 | "permlevel": 0, 96 | "precision": "", 97 | "print_hide": 0, 98 | "print_hide_if_no_value": 0, 99 | "read_only": 0, 100 | "remember_last_selected_value": 0, 101 | "report_hide": 0, 102 | "reqd": 0, 103 | "search_index": 0, 104 | "set_only_once": 0, 105 | "unique": 0 106 | } 107 | ], 108 | "has_web_view": 0, 109 | "hide_heading": 0, 110 | "hide_toolbar": 0, 111 | "idx": 0, 112 | "image_view": 0, 113 | "in_create": 0, 114 | "is_submittable": 0, 115 | "issingle": 0, 116 | "istable": 1, 117 | "max_attachments": 0, 118 | "modified": "2019-02-16 01:38:06.341901", 119 | "modified_by": "Administrator", 120 | "module": "IT Management", 121 | "name": "Project Configuration Item Table", 122 | "name_case": "", 123 | "owner": "wolfram.schmidt@tueit.de", 124 | "permissions": [], 125 | "quick_entry": 1, 126 | "read_only": 0, 127 | "read_only_onload": 0, 128 | "show_name_in_global_search": 0, 129 | "sort_field": "modified", 130 | "sort_order": "DESC", 131 | "track_changes": 1, 132 | "track_seen": 0 133 | } -------------------------------------------------------------------------------- /it_management/it_management/doctype/project_configuration_item_table/project_configuration_item_table.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 3 | # For license information, please see license.txt 4 | 5 | from __future__ import unicode_literals 6 | import frappe 7 | from frappe.model.document import Document 8 | 9 | class ProjectConfigurationItemTable(Document): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/socket/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyf-de/erpnext_it-management/84d2cb4c8148d4175d8ac39d94fb6bfaa3da5188/it_management/it_management/doctype/socket/__init__.py -------------------------------------------------------------------------------- /it_management/it_management/doctype/socket/socket.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 2 | // For license information, please see license.txt 3 | 4 | frappe.ui.form.on('Socket', { 5 | refresh: function(frm) { 6 | 7 | } 8 | }); 9 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/socket/socket.json: -------------------------------------------------------------------------------- 1 | { 2 | "allow_copy": 0, 3 | "allow_events_in_timeline": 0, 4 | "allow_guest_to_view": 0, 5 | "allow_import": 0, 6 | "allow_rename": 0, 7 | "autoname": "", 8 | "beta": 0, 9 | "creation": "2019-03-13 12:37:32.181683", 10 | "custom": 0, 11 | "docstatus": 0, 12 | "doctype": "DocType", 13 | "document_type": "", 14 | "editable_grid": 1, 15 | "engine": "InnoDB", 16 | "fields": [ 17 | { 18 | "allow_bulk_edit": 0, 19 | "allow_in_quick_entry": 0, 20 | "allow_on_submit": 0, 21 | "bold": 0, 22 | "collapsible": 0, 23 | "columns": 0, 24 | "fieldname": "location_room", 25 | "fieldtype": "Link", 26 | "hidden": 0, 27 | "ignore_user_permissions": 0, 28 | "ignore_xss_filter": 0, 29 | "in_filter": 0, 30 | "in_global_search": 0, 31 | "in_list_view": 0, 32 | "in_standard_filter": 0, 33 | "label": "Location Room", 34 | "length": 0, 35 | "no_copy": 0, 36 | "options": "Location Room", 37 | "permlevel": 0, 38 | "precision": "", 39 | "print_hide": 0, 40 | "print_hide_if_no_value": 0, 41 | "read_only": 0, 42 | "remember_last_selected_value": 0, 43 | "report_hide": 0, 44 | "reqd": 0, 45 | "search_index": 0, 46 | "set_only_once": 0, 47 | "translatable": 0, 48 | "unique": 0 49 | }, 50 | { 51 | "allow_bulk_edit": 0, 52 | "allow_in_quick_entry": 0, 53 | "allow_on_submit": 0, 54 | "bold": 0, 55 | "collapsible": 0, 56 | "columns": 0, 57 | "fieldname": "label", 58 | "fieldtype": "Data", 59 | "hidden": 0, 60 | "ignore_user_permissions": 0, 61 | "ignore_xss_filter": 0, 62 | "in_filter": 0, 63 | "in_global_search": 0, 64 | "in_list_view": 0, 65 | "in_standard_filter": 0, 66 | "label": "Label", 67 | "length": 0, 68 | "no_copy": 0, 69 | "permlevel": 0, 70 | "precision": "", 71 | "print_hide": 0, 72 | "print_hide_if_no_value": 0, 73 | "read_only": 0, 74 | "remember_last_selected_value": 0, 75 | "report_hide": 0, 76 | "reqd": 0, 77 | "search_index": 0, 78 | "set_only_once": 0, 79 | "translatable": 0, 80 | "unique": 0 81 | }, 82 | { 83 | "allow_bulk_edit": 0, 84 | "allow_in_quick_entry": 0, 85 | "allow_on_submit": 0, 86 | "bold": 0, 87 | "collapsible": 0, 88 | "columns": 0, 89 | "fieldname": "socket", 90 | "fieldtype": "Link", 91 | "hidden": 0, 92 | "ignore_user_permissions": 0, 93 | "ignore_xss_filter": 0, 94 | "in_filter": 0, 95 | "in_global_search": 0, 96 | "in_list_view": 0, 97 | "in_standard_filter": 0, 98 | "label": "Socket", 99 | "length": 0, 100 | "no_copy": 0, 101 | "options": "Socket", 102 | "permlevel": 0, 103 | "precision": "", 104 | "print_hide": 0, 105 | "print_hide_if_no_value": 0, 106 | "read_only": 0, 107 | "remember_last_selected_value": 0, 108 | "report_hide": 0, 109 | "reqd": 0, 110 | "search_index": 0, 111 | "set_only_once": 0, 112 | "translatable": 0, 113 | "unique": 0 114 | } 115 | ], 116 | "has_web_view": 0, 117 | "hide_heading": 0, 118 | "hide_toolbar": 0, 119 | "idx": 0, 120 | "image_view": 0, 121 | "in_create": 0, 122 | "is_submittable": 0, 123 | "issingle": 0, 124 | "istable": 0, 125 | "max_attachments": 0, 126 | "modified": "2019-03-13 12:37:32.181683", 127 | "modified_by": "Administrator", 128 | "module": "IT Management", 129 | "name": "Socket", 130 | "name_case": "", 131 | "owner": "Administrator", 132 | "permissions": [ 133 | { 134 | "amend": 0, 135 | "cancel": 0, 136 | "create": 1, 137 | "delete": 1, 138 | "email": 1, 139 | "export": 1, 140 | "if_owner": 0, 141 | "import": 0, 142 | "permlevel": 0, 143 | "print": 1, 144 | "read": 1, 145 | "report": 1, 146 | "role": "System Manager", 147 | "set_user_permissions": 0, 148 | "share": 1, 149 | "submit": 0, 150 | "write": 1 151 | } 152 | ], 153 | "quick_entry": 1, 154 | "read_only": 0, 155 | "read_only_onload": 0, 156 | "show_name_in_global_search": 0, 157 | "sort_field": "modified", 158 | "sort_order": "DESC", 159 | "track_changes": 1, 160 | "track_seen": 0, 161 | "track_views": 0 162 | } -------------------------------------------------------------------------------- /it_management/it_management/doctype/socket/socket.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 3 | # For license information, please see license.txt 4 | 5 | from __future__ import unicode_literals 6 | import frappe 7 | from frappe.model.document import Document 8 | 9 | class Socket(Document): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/socket/socket_dashboard.py: -------------------------------------------------------------------------------- 1 | """ 2 | """ 3 | from __future__ import unicode_literals 4 | from frappe import _ 5 | 6 | 7 | def get_data(): 8 | """ 9 | """ 10 | return { 11 | 'fieldname': 'socket', 12 | 'non_standard_fieldnames': { 13 | 'IT Ticket': 'dynamic_name' 14 | }, 15 | 'transactions': [ 16 | { 17 | 'label': _('Service'), 18 | 'items': ['IT Ticket'] 19 | } 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/socket/test_socket.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | // rename this file from _test_[name] to test_[name] to activate 3 | // and remove above this line 4 | 5 | QUnit.test("test: Socket", function (assert) { 6 | let done = assert.async(); 7 | 8 | // number of asserts 9 | assert.expect(1); 10 | 11 | frappe.run_serially([ 12 | // insert a new Socket 13 | () => frappe.tests.make('Socket', [ 14 | // values to be set 15 | {key: 'value'} 16 | ]), 17 | () => { 18 | assert.equal(cur_frm.doc.key, 'value'); 19 | }, 20 | () => done() 21 | ]); 22 | 23 | }); 24 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/socket/test_socket.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and Contributors 3 | # See license.txt 4 | from __future__ import unicode_literals 5 | 6 | import frappe 7 | import unittest 8 | 9 | class TestSocket(unittest.TestCase): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/software_instance/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyf-de/erpnext_it-management/84d2cb4c8148d4175d8ac39d94fb6bfaa3da5188/it_management/it_management/doctype/software_instance/__init__.py -------------------------------------------------------------------------------- /it_management/it_management/doctype/software_instance/software_instance.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 2 | // For license information, please see license.txt 3 | 4 | frappe.ui.form.on('Software Instance', { 5 | refresh: function(frm) { 6 | 7 | } 8 | }); 9 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/software_instance/software_instance.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 3 | # For license information, please see license.txt 4 | 5 | from __future__ import unicode_literals 6 | import frappe 7 | from frappe.model.document import Document 8 | 9 | class SoftwareInstance(Document): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/software_instance/software_instance_dashboard.py: -------------------------------------------------------------------------------- 1 | from __future__ import unicode_literals 2 | from frappe import _ 3 | 4 | 5 | def get_data(): 6 | return { 7 | 'fieldname': 'software_instance', 8 | 'non_standard_fieldnames': { 9 | 'IT Ticket': 'dynamic_name' 10 | }, 11 | 'transactions': [ 12 | { 13 | 'label': _('Users and Accounts'), 14 | 'items': ['User Account'] 15 | }, 16 | { 17 | 'label': _('Service'), 18 | 'items': ['IT Ticket'] 19 | } 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/software_instance/test_software_instance.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | // rename this file from _test_[name] to test_[name] to activate 3 | // and remove above this line 4 | 5 | QUnit.test("test: Software Instance", function (assert) { 6 | let done = assert.async(); 7 | 8 | // number of asserts 9 | assert.expect(1); 10 | 11 | frappe.run_serially([ 12 | // insert a new Software Instance 13 | () => frappe.tests.make('Software Instance', [ 14 | // values to be set 15 | {key: 'value'} 16 | ]), 17 | () => { 18 | assert.equal(cur_frm.doc.key, 'value'); 19 | }, 20 | () => done() 21 | ]); 22 | 23 | }); 24 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/software_instance/test_software_instance.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and Contributors 3 | # See license.txt 4 | from __future__ import unicode_literals 5 | 6 | import frappe 7 | import unittest 8 | 9 | class TestSoftwareInstance(unittest.TestCase): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/software_instance_table/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyf-de/erpnext_it-management/84d2cb4c8148d4175d8ac39d94fb6bfaa3da5188/it_management/it_management/doctype/software_instance_table/__init__.py -------------------------------------------------------------------------------- /it_management/it_management/doctype/software_instance_table/software_instance_table.json: -------------------------------------------------------------------------------- 1 | { 2 | "allow_copy": 0, 3 | "allow_events_in_timeline": 0, 4 | "allow_guest_to_view": 0, 5 | "allow_import": 0, 6 | "allow_rename": 0, 7 | "autoname": "", 8 | "beta": 0, 9 | "creation": "2019-03-01 22:51:24.049223", 10 | "custom": 0, 11 | "docstatus": 0, 12 | "doctype": "DocType", 13 | "document_type": "", 14 | "editable_grid": 1, 15 | "engine": "InnoDB", 16 | "fields": [ 17 | { 18 | "allow_bulk_edit": 0, 19 | "allow_in_quick_entry": 0, 20 | "allow_on_submit": 0, 21 | "bold": 0, 22 | "collapsible": 0, 23 | "columns": 0, 24 | "fieldname": "note", 25 | "fieldtype": "Data", 26 | "hidden": 0, 27 | "ignore_user_permissions": 0, 28 | "ignore_xss_filter": 0, 29 | "in_filter": 0, 30 | "in_global_search": 0, 31 | "in_list_view": 1, 32 | "in_standard_filter": 0, 33 | "label": "Note", 34 | "length": 0, 35 | "no_copy": 0, 36 | "permlevel": 0, 37 | "precision": "", 38 | "print_hide": 0, 39 | "print_hide_if_no_value": 0, 40 | "read_only": 0, 41 | "remember_last_selected_value": 0, 42 | "report_hide": 0, 43 | "reqd": 0, 44 | "search_index": 0, 45 | "set_only_once": 0, 46 | "translatable": 0, 47 | "unique": 0 48 | }, 49 | { 50 | "allow_bulk_edit": 0, 51 | "allow_in_quick_entry": 0, 52 | "allow_on_submit": 0, 53 | "bold": 0, 54 | "collapsible": 0, 55 | "columns": 0, 56 | "fieldname": "software_instance", 57 | "fieldtype": "Link", 58 | "hidden": 0, 59 | "ignore_user_permissions": 0, 60 | "ignore_xss_filter": 0, 61 | "in_filter": 0, 62 | "in_global_search": 0, 63 | "in_list_view": 1, 64 | "in_standard_filter": 0, 65 | "label": "Software Instance", 66 | "length": 0, 67 | "no_copy": 0, 68 | "options": "Software Instance", 69 | "permlevel": 0, 70 | "precision": "", 71 | "print_hide": 0, 72 | "print_hide_if_no_value": 0, 73 | "read_only": 0, 74 | "remember_last_selected_value": 0, 75 | "report_hide": 0, 76 | "reqd": 1, 77 | "search_index": 0, 78 | "set_only_once": 0, 79 | "translatable": 0, 80 | "unique": 0 81 | } 82 | ], 83 | "has_web_view": 0, 84 | "hide_heading": 0, 85 | "hide_toolbar": 0, 86 | "idx": 0, 87 | "image_view": 0, 88 | "in_create": 0, 89 | "is_submittable": 0, 90 | "issingle": 0, 91 | "istable": 1, 92 | "max_attachments": 0, 93 | "modified": "2019-04-09 12:31:36.388878", 94 | "modified_by": "Administrator", 95 | "module": "IT Management", 96 | "name": "Software Instance Table", 97 | "name_case": "", 98 | "owner": "Administrator", 99 | "permissions": [], 100 | "quick_entry": 1, 101 | "read_only": 0, 102 | "read_only_onload": 0, 103 | "show_name_in_global_search": 0, 104 | "sort_field": "modified", 105 | "sort_order": "DESC", 106 | "track_changes": 1, 107 | "track_seen": 0, 108 | "track_views": 0 109 | } -------------------------------------------------------------------------------- /it_management/it_management/doctype/software_instance_table/software_instance_table.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 3 | # For license information, please see license.txt 4 | 5 | from __future__ import unicode_literals 6 | import frappe 7 | from frappe.model.document import Document 8 | 9 | class SoftwareInstanceTable(Document): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/software_version/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyf-de/erpnext_it-management/84d2cb4c8148d4175d8ac39d94fb6bfaa3da5188/it_management/it_management/doctype/software_version/__init__.py -------------------------------------------------------------------------------- /it_management/it_management/doctype/software_version/software_version.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 2 | // For license information, please see license.txt 3 | 4 | frappe.ui.form.on('Software Version', { 5 | refresh: function(frm) { 6 | 7 | } 8 | }); 9 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/software_version/software_version.json: -------------------------------------------------------------------------------- 1 | { 2 | "allow_copy": 0, 3 | "allow_guest_to_view": 0, 4 | "allow_import": 1, 5 | "allow_rename": 0, 6 | "autoname": "field:sw_version", 7 | "beta": 0, 8 | "creation": "2018-10-19 09:37:04.062804", 9 | "custom": 0, 10 | "docstatus": 0, 11 | "doctype": "DocType", 12 | "document_type": "", 13 | "editable_grid": 1, 14 | "engine": "InnoDB", 15 | "fields": [ 16 | { 17 | "allow_bulk_edit": 0, 18 | "allow_on_submit": 0, 19 | "bold": 0, 20 | "collapsible": 0, 21 | "columns": 0, 22 | "fieldname": "sw_version", 23 | "fieldtype": "Data", 24 | "hidden": 0, 25 | "ignore_user_permissions": 0, 26 | "ignore_xss_filter": 0, 27 | "in_filter": 0, 28 | "in_global_search": 0, 29 | "in_list_view": 1, 30 | "in_standard_filter": 0, 31 | "label": "Software Version", 32 | "length": 0, 33 | "no_copy": 0, 34 | "permlevel": 0, 35 | "precision": "", 36 | "print_hide": 0, 37 | "print_hide_if_no_value": 0, 38 | "read_only": 0, 39 | "remember_last_selected_value": 0, 40 | "report_hide": 0, 41 | "reqd": 1, 42 | "search_index": 0, 43 | "set_only_once": 0, 44 | "unique": 1 45 | } 46 | ], 47 | "has_web_view": 0, 48 | "hide_heading": 0, 49 | "hide_toolbar": 0, 50 | "idx": 0, 51 | "image_view": 0, 52 | "in_create": 0, 53 | "is_submittable": 0, 54 | "issingle": 0, 55 | "istable": 0, 56 | "max_attachments": 0, 57 | "modified": "2019-02-16 01:37:28.986975", 58 | "modified_by": "Administrator", 59 | "module": "IT Management", 60 | "name": "Software Version", 61 | "name_case": "", 62 | "owner": "wolfram.schmidt@tueit.de", 63 | "permissions": [ 64 | { 65 | "amend": 0, 66 | "apply_user_permissions": 0, 67 | "cancel": 0, 68 | "create": 1, 69 | "delete": 1, 70 | "email": 1, 71 | "export": 1, 72 | "if_owner": 0, 73 | "import": 0, 74 | "permlevel": 0, 75 | "print": 1, 76 | "read": 1, 77 | "report": 1, 78 | "role": "System Manager", 79 | "set_user_permissions": 0, 80 | "share": 1, 81 | "submit": 0, 82 | "write": 1 83 | }, 84 | { 85 | "amend": 0, 86 | "apply_user_permissions": 0, 87 | "cancel": 0, 88 | "create": 1, 89 | "delete": 1, 90 | "email": 1, 91 | "export": 1, 92 | "if_owner": 0, 93 | "import": 0, 94 | "permlevel": 0, 95 | "print": 1, 96 | "read": 1, 97 | "report": 1, 98 | "role": "Support Team", 99 | "set_user_permissions": 0, 100 | "share": 1, 101 | "submit": 0, 102 | "write": 1 103 | } 104 | ], 105 | "quick_entry": 1, 106 | "read_only": 0, 107 | "read_only_onload": 0, 108 | "show_name_in_global_search": 0, 109 | "sort_field": "modified", 110 | "sort_order": "DESC", 111 | "track_changes": 1, 112 | "track_seen": 0 113 | } -------------------------------------------------------------------------------- /it_management/it_management/doctype/software_version/software_version.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 3 | # For license information, please see license.txt 4 | 5 | from __future__ import unicode_literals 6 | import frappe 7 | from frappe.model.document import Document 8 | 9 | class SoftwareVersion(Document): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/software_version/software_version_dashboard.py: -------------------------------------------------------------------------------- 1 | from __future__ import unicode_literals 2 | from frappe import _ 3 | 4 | 5 | def get_data(): 6 | return { 7 | 'fieldname': 'software_version', 8 | 'non_standard_fieldnames': { 9 | 'IT Ticket': 'dynamic_name' 10 | }, 11 | 'transactions': [ 12 | { 13 | 'label': _('Service'), 14 | 'items': ['IT Ticket'] 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/software_version/test_software_version.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | // rename this file from _test_[name] to test_[name] to activate 3 | // and remove above this line 4 | 5 | QUnit.test("test: Software Version", function (assert) { 6 | let done = assert.async(); 7 | 8 | // number of asserts 9 | assert.expect(1); 10 | 11 | frappe.run_serially([ 12 | // insert a new Software Version 13 | () => frappe.tests.make('Software Version', [ 14 | // values to be set 15 | {key: 'value'} 16 | ]), 17 | () => { 18 | assert.equal(cur_frm.doc.key, 'value'); 19 | }, 20 | () => done() 21 | ]); 22 | 23 | }); 24 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/software_version/test_software_version.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and Contributors 3 | # See license.txt 4 | from __future__ import unicode_literals 5 | 6 | import frappe 7 | import unittest 8 | 9 | class TestSoftwareVersion(unittest.TestCase): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/solution/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyf-de/erpnext_it-management/84d2cb4c8148d4175d8ac39d94fb6bfaa3da5188/it_management/it_management/doctype/solution/__init__.py -------------------------------------------------------------------------------- /it_management/it_management/doctype/solution/solution.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 2 | // For license information, please see license.txt 3 | 4 | frappe.ui.form.on('Solution', { 5 | refresh: function(frm) { 6 | 7 | } 8 | }); 9 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/solution/solution.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 3 | # For license information, please see license.txt 4 | 5 | from __future__ import unicode_literals 6 | import frappe 7 | from frappe.model.document import Document 8 | 9 | class Solution(Document): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/solution/solution_dashboard.py: -------------------------------------------------------------------------------- 1 | from __future__ import unicode_literals 2 | from frappe import _ 3 | 4 | 5 | def get_data(): 6 | return { 7 | 'fieldname': 'solution', 8 | 'non_standard_fieldnames': { 9 | 'IT Ticket': 'dynamic_name' 10 | }, 11 | 'transactions': [ 12 | { 13 | 'label': _('User Accounts and Groups'), 14 | 'items': ['User Account', 'User Group'] 15 | }, 16 | { 17 | 'label': _('Software Instances'), 18 | 'items': ['Software Instance'] 19 | }, 20 | { 21 | 'label': _('Configuration Items & Solutions'), 22 | 'items': ['Configuration Item', 'Solution'] 23 | }, 24 | { 25 | 'label': _('Service'), 26 | 'items': ['IT Ticket'] 27 | } 28 | ] 29 | } 30 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/solution/test_solution.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | // rename this file from _test_[name] to test_[name] to activate 3 | // and remove above this line 4 | 5 | QUnit.test("test: Solution", function (assert) { 6 | let done = assert.async(); 7 | 8 | // number of asserts 9 | assert.expect(1); 10 | 11 | frappe.run_serially([ 12 | // insert a new Solution 13 | () => frappe.tests.make('Solution', [ 14 | // values to be set 15 | {key: 'value'} 16 | ]), 17 | () => { 18 | assert.equal(cur_frm.doc.key, 'value'); 19 | }, 20 | () => done() 21 | ]); 22 | 23 | }); 24 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/solution/test_solution.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and Contributors 3 | # See license.txt 4 | from __future__ import unicode_literals 5 | 6 | import frappe 7 | import unittest 8 | 9 | class TestSolution(unittest.TestCase): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/solution_table/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyf-de/erpnext_it-management/84d2cb4c8148d4175d8ac39d94fb6bfaa3da5188/it_management/it_management/doctype/solution_table/__init__.py -------------------------------------------------------------------------------- /it_management/it_management/doctype/solution_table/solution_table.json: -------------------------------------------------------------------------------- 1 | { 2 | "allow_copy": 0, 3 | "allow_guest_to_view": 0, 4 | "allow_import": 0, 5 | "allow_rename": 0, 6 | "autoname": "naming_series:", 7 | "beta": 0, 8 | "creation": "2019-02-26 19:46:41.526577", 9 | "custom": 0, 10 | "docstatus": 0, 11 | "doctype": "DocType", 12 | "document_type": "", 13 | "editable_grid": 1, 14 | "engine": "InnoDB", 15 | "fields": [ 16 | { 17 | "allow_bulk_edit": 0, 18 | "allow_on_submit": 0, 19 | "bold": 0, 20 | "collapsible": 0, 21 | "columns": 0, 22 | "fieldname": "naming_series", 23 | "fieldtype": "Data", 24 | "hidden": 1, 25 | "ignore_user_permissions": 0, 26 | "ignore_xss_filter": 0, 27 | "in_filter": 0, 28 | "in_global_search": 0, 29 | "in_list_view": 0, 30 | "in_standard_filter": 0, 31 | "label": "Naming Series", 32 | "length": 0, 33 | "no_copy": 0, 34 | "options": "SoluTbl-", 35 | "permlevel": 0, 36 | "precision": "", 37 | "print_hide": 0, 38 | "print_hide_if_no_value": 0, 39 | "read_only": 0, 40 | "remember_last_selected_value": 0, 41 | "report_hide": 0, 42 | "reqd": 0, 43 | "search_index": 0, 44 | "set_only_once": 0, 45 | "unique": 0 46 | }, 47 | { 48 | "allow_bulk_edit": 0, 49 | "allow_on_submit": 0, 50 | "bold": 0, 51 | "collapsible": 0, 52 | "columns": 0, 53 | "fieldname": "note", 54 | "fieldtype": "Small Text", 55 | "hidden": 0, 56 | "ignore_user_permissions": 0, 57 | "ignore_xss_filter": 0, 58 | "in_filter": 0, 59 | "in_global_search": 0, 60 | "in_list_view": 1, 61 | "in_standard_filter": 0, 62 | "label": "Note", 63 | "length": 0, 64 | "no_copy": 0, 65 | "permlevel": 0, 66 | "precision": "", 67 | "print_hide": 0, 68 | "print_hide_if_no_value": 0, 69 | "read_only": 0, 70 | "remember_last_selected_value": 0, 71 | "report_hide": 0, 72 | "reqd": 0, 73 | "search_index": 0, 74 | "set_only_once": 0, 75 | "unique": 0 76 | }, 77 | { 78 | "allow_bulk_edit": 0, 79 | "allow_on_submit": 0, 80 | "bold": 0, 81 | "collapsible": 0, 82 | "columns": 0, 83 | "fieldname": "solution", 84 | "fieldtype": "Link", 85 | "hidden": 0, 86 | "ignore_user_permissions": 0, 87 | "ignore_xss_filter": 0, 88 | "in_filter": 0, 89 | "in_global_search": 0, 90 | "in_list_view": 1, 91 | "in_standard_filter": 0, 92 | "label": "Solution", 93 | "length": 0, 94 | "no_copy": 0, 95 | "options": "Solution", 96 | "permlevel": 0, 97 | "precision": "", 98 | "print_hide": 0, 99 | "print_hide_if_no_value": 0, 100 | "read_only": 0, 101 | "remember_last_selected_value": 0, 102 | "report_hide": 0, 103 | "reqd": 1, 104 | "search_index": 0, 105 | "set_only_once": 0, 106 | "unique": 0 107 | } 108 | ], 109 | "has_web_view": 0, 110 | "hide_heading": 0, 111 | "hide_toolbar": 0, 112 | "idx": 0, 113 | "image_view": 0, 114 | "in_create": 0, 115 | "is_submittable": 0, 116 | "issingle": 0, 117 | "istable": 1, 118 | "max_attachments": 0, 119 | "modified": "2019-02-28 17:30:16.106997", 120 | "modified_by": "Administrator", 121 | "module": "IT Management", 122 | "name": "Solution Table", 123 | "name_case": "", 124 | "owner": "Administrator", 125 | "permissions": [], 126 | "quick_entry": 1, 127 | "read_only": 0, 128 | "read_only_onload": 0, 129 | "show_name_in_global_search": 0, 130 | "sort_field": "modified", 131 | "sort_order": "DESC", 132 | "track_changes": 1, 133 | "track_seen": 0 134 | } -------------------------------------------------------------------------------- /it_management/it_management/doctype/solution_table/solution_table.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 3 | # For license information, please see license.txt 4 | 5 | from __future__ import unicode_literals 6 | import frappe 7 | from frappe.model.document import Document 8 | 9 | class SolutionTable(Document): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/solution_type/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyf-de/erpnext_it-management/84d2cb4c8148d4175d8ac39d94fb6bfaa3da5188/it_management/it_management/doctype/solution_type/__init__.py -------------------------------------------------------------------------------- /it_management/it_management/doctype/solution_type/solution_type.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 2 | // For license information, please see license.txt 3 | 4 | frappe.ui.form.on('Solution Type', { 5 | refresh: function(frm) { 6 | 7 | } 8 | }); 9 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/solution_type/solution_type.json: -------------------------------------------------------------------------------- 1 | { 2 | "allow_copy": 0, 3 | "allow_events_in_timeline": 0, 4 | "allow_guest_to_view": 0, 5 | "allow_import": 0, 6 | "allow_rename": 0, 7 | "autoname": "field:title", 8 | "beta": 0, 9 | "creation": "2019-06-24 17:58:42.432056", 10 | "custom": 0, 11 | "docstatus": 0, 12 | "doctype": "DocType", 13 | "document_type": "", 14 | "editable_grid": 1, 15 | "engine": "InnoDB", 16 | "fields": [ 17 | { 18 | "allow_bulk_edit": 0, 19 | "allow_in_quick_entry": 0, 20 | "allow_on_submit": 0, 21 | "bold": 0, 22 | "collapsible": 0, 23 | "columns": 0, 24 | "fetch_if_empty": 0, 25 | "fieldname": "title", 26 | "fieldtype": "Data", 27 | "hidden": 0, 28 | "ignore_user_permissions": 0, 29 | "ignore_xss_filter": 0, 30 | "in_filter": 0, 31 | "in_global_search": 0, 32 | "in_list_view": 1, 33 | "in_standard_filter": 0, 34 | "label": "Title", 35 | "length": 0, 36 | "no_copy": 0, 37 | "permlevel": 0, 38 | "precision": "", 39 | "print_hide": 0, 40 | "print_hide_if_no_value": 0, 41 | "read_only": 0, 42 | "remember_last_selected_value": 0, 43 | "report_hide": 0, 44 | "reqd": 1, 45 | "search_index": 0, 46 | "set_only_once": 0, 47 | "translatable": 0, 48 | "unique": 1 49 | }, 50 | { 51 | "allow_bulk_edit": 0, 52 | "allow_in_quick_entry": 0, 53 | "allow_on_submit": 0, 54 | "bold": 0, 55 | "collapsible": 0, 56 | "columns": 0, 57 | "fetch_if_empty": 0, 58 | "fieldname": "section_break_2", 59 | "fieldtype": "Section Break", 60 | "hidden": 0, 61 | "ignore_user_permissions": 0, 62 | "ignore_xss_filter": 0, 63 | "in_filter": 0, 64 | "in_global_search": 0, 65 | "in_list_view": 0, 66 | "in_standard_filter": 0, 67 | "length": 0, 68 | "no_copy": 0, 69 | "permlevel": 0, 70 | "precision": "", 71 | "print_hide": 0, 72 | "print_hide_if_no_value": 0, 73 | "read_only": 0, 74 | "remember_last_selected_value": 0, 75 | "report_hide": 0, 76 | "reqd": 0, 77 | "search_index": 0, 78 | "set_only_once": 0, 79 | "translatable": 0, 80 | "unique": 0 81 | }, 82 | { 83 | "allow_bulk_edit": 0, 84 | "allow_in_quick_entry": 0, 85 | "allow_on_submit": 0, 86 | "bold": 0, 87 | "collapsible": 0, 88 | "columns": 0, 89 | "fetch_if_empty": 0, 90 | "fieldname": "description", 91 | "fieldtype": "Text", 92 | "hidden": 0, 93 | "ignore_user_permissions": 0, 94 | "ignore_xss_filter": 0, 95 | "in_filter": 0, 96 | "in_global_search": 0, 97 | "in_list_view": 0, 98 | "in_standard_filter": 0, 99 | "label": "Description", 100 | "length": 0, 101 | "no_copy": 0, 102 | "permlevel": 0, 103 | "precision": "", 104 | "print_hide": 0, 105 | "print_hide_if_no_value": 0, 106 | "read_only": 0, 107 | "remember_last_selected_value": 0, 108 | "report_hide": 0, 109 | "reqd": 0, 110 | "search_index": 0, 111 | "set_only_once": 0, 112 | "translatable": 0, 113 | "unique": 0 114 | } 115 | ], 116 | "has_web_view": 0, 117 | "hide_heading": 0, 118 | "hide_toolbar": 0, 119 | "idx": 0, 120 | "image_view": 0, 121 | "in_create": 0, 122 | "is_submittable": 0, 123 | "issingle": 0, 124 | "istable": 0, 125 | "max_attachments": 0, 126 | "modified": "2019-06-24 17:58:42.432056", 127 | "modified_by": "Administrator", 128 | "module": "IT Management", 129 | "name": "Solution Type", 130 | "name_case": "", 131 | "owner": "Administrator", 132 | "permissions": [ 133 | { 134 | "amend": 0, 135 | "cancel": 0, 136 | "create": 1, 137 | "delete": 1, 138 | "email": 1, 139 | "export": 1, 140 | "if_owner": 0, 141 | "import": 0, 142 | "permlevel": 0, 143 | "print": 1, 144 | "read": 1, 145 | "report": 1, 146 | "role": "System Manager", 147 | "set_user_permissions": 0, 148 | "share": 1, 149 | "submit": 0, 150 | "write": 1 151 | }, 152 | { 153 | "amend": 0, 154 | "cancel": 0, 155 | "create": 0, 156 | "delete": 0, 157 | "email": 1, 158 | "export": 1, 159 | "if_owner": 0, 160 | "import": 0, 161 | "permlevel": 0, 162 | "print": 1, 163 | "read": 1, 164 | "report": 1, 165 | "role": "Support Team", 166 | "set_user_permissions": 0, 167 | "share": 1, 168 | "submit": 0, 169 | "write": 0 170 | } 171 | ], 172 | "quick_entry": 1, 173 | "read_only": 0, 174 | "read_only_onload": 0, 175 | "show_name_in_global_search": 0, 176 | "sort_field": "modified", 177 | "sort_order": "DESC", 178 | "title_field": "", 179 | "track_changes": 1, 180 | "track_seen": 0, 181 | "track_views": 0 182 | } -------------------------------------------------------------------------------- /it_management/it_management/doctype/solution_type/solution_type.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 3 | # For license information, please see license.txt 4 | 5 | from __future__ import unicode_literals 6 | import frappe 7 | from frappe.model.document import Document 8 | 9 | class SolutionType(Document): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/solution_type/solution_type_dashboard.py: -------------------------------------------------------------------------------- 1 | from __future__ import unicode_literals 2 | from frappe import _ 3 | 4 | 5 | def get_data(): 6 | return { 7 | 'fieldname': 'solution_type', 8 | 'non_standard_fieldnames': { 9 | 'Solution': 'type' 10 | }, 11 | 'transactions': [ 12 | { 13 | 'label': _('Solutions'), 14 | 'items': ['Solution'] 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/solution_type/test_solution_type.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | // rename this file from _test_[name] to test_[name] to activate 3 | // and remove above this line 4 | 5 | QUnit.test("test: Solution Type", function (assert) { 6 | let done = assert.async(); 7 | 8 | // number of asserts 9 | assert.expect(1); 10 | 11 | frappe.run_serially([ 12 | // insert a new Solution Type 13 | () => frappe.tests.make('Solution Type', [ 14 | // values to be set 15 | {key: 'value'} 16 | ]), 17 | () => { 18 | assert.equal(cur_frm.doc.key, 'value'); 19 | }, 20 | () => done() 21 | ]); 22 | 23 | }); 24 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/solution_type/test_solution_type.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and Contributors 3 | # See license.txt 4 | from __future__ import unicode_literals 5 | 6 | import frappe 7 | import unittest 8 | 9 | class TestSolutionType(unittest.TestCase): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/storage/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyf-de/erpnext_it-management/84d2cb4c8148d4175d8ac39d94fb6bfaa3da5188/it_management/it_management/doctype/storage/__init__.py -------------------------------------------------------------------------------- /it_management/it_management/doctype/storage/storage.json: -------------------------------------------------------------------------------- 1 | { 2 | "allow_copy": 0, 3 | "allow_guest_to_view": 0, 4 | "allow_import": 0, 5 | "allow_rename": 0, 6 | "autoname": "", 7 | "beta": 0, 8 | "creation": "2018-10-10 10:20:57.801260", 9 | "custom": 0, 10 | "description": "", 11 | "docstatus": 0, 12 | "doctype": "DocType", 13 | "document_type": "", 14 | "editable_grid": 1, 15 | "engine": "InnoDB", 16 | "fields": [ 17 | { 18 | "allow_bulk_edit": 0, 19 | "allow_on_submit": 0, 20 | "bold": 0, 21 | "collapsible": 0, 22 | "columns": 0, 23 | "description": "Total Size in GB", 24 | "fieldname": "size", 25 | "fieldtype": "Int", 26 | "hidden": 0, 27 | "ignore_user_permissions": 0, 28 | "ignore_xss_filter": 0, 29 | "in_filter": 0, 30 | "in_global_search": 0, 31 | "in_list_view": 1, 32 | "in_standard_filter": 0, 33 | "label": "Size in GB", 34 | "length": 0, 35 | "no_copy": 0, 36 | "permlevel": 0, 37 | "precision": "", 38 | "print_hide": 0, 39 | "print_hide_if_no_value": 0, 40 | "read_only": 0, 41 | "remember_last_selected_value": 0, 42 | "report_hide": 0, 43 | "reqd": 0, 44 | "search_index": 0, 45 | "set_only_once": 0, 46 | "unique": 0 47 | }, 48 | { 49 | "allow_bulk_edit": 0, 50 | "allow_on_submit": 0, 51 | "bold": 0, 52 | "collapsible": 0, 53 | "columns": 2, 54 | "fieldname": "is_raid", 55 | "fieldtype": "Check", 56 | "hidden": 0, 57 | "ignore_user_permissions": 0, 58 | "ignore_xss_filter": 0, 59 | "in_filter": 0, 60 | "in_global_search": 0, 61 | "in_list_view": 1, 62 | "in_standard_filter": 0, 63 | "label": "RAID", 64 | "length": 0, 65 | "no_copy": 0, 66 | "permlevel": 0, 67 | "precision": "", 68 | "print_hide": 0, 69 | "print_hide_if_no_value": 0, 70 | "read_only": 0, 71 | "remember_last_selected_value": 0, 72 | "report_hide": 0, 73 | "reqd": 0, 74 | "search_index": 0, 75 | "set_only_once": 0, 76 | "unique": 0 77 | }, 78 | { 79 | "allow_bulk_edit": 0, 80 | "allow_on_submit": 0, 81 | "bold": 0, 82 | "collapsible": 0, 83 | "columns": 0, 84 | "fieldname": "raid_level", 85 | "fieldtype": "Select", 86 | "hidden": 0, 87 | "ignore_user_permissions": 0, 88 | "ignore_xss_filter": 0, 89 | "in_filter": 0, 90 | "in_global_search": 0, 91 | "in_list_view": 1, 92 | "in_standard_filter": 0, 93 | "label": "RAID Level", 94 | "length": 0, 95 | "no_copy": 0, 96 | "options": "\nRAID1\nRAID5\nRAID6\nRAID10\nZ-RAID1\nZ-RAID5\nZ-RAID6\nZ-RAID10", 97 | "permlevel": 0, 98 | "precision": "", 99 | "print_hide": 0, 100 | "print_hide_if_no_value": 0, 101 | "read_only": 0, 102 | "remember_last_selected_value": 0, 103 | "report_hide": 0, 104 | "reqd": 0, 105 | "search_index": 0, 106 | "set_only_once": 0, 107 | "unique": 0 108 | }, 109 | { 110 | "allow_bulk_edit": 0, 111 | "allow_on_submit": 0, 112 | "bold": 0, 113 | "collapsible": 0, 114 | "columns": 0, 115 | "fieldname": "column_break_4", 116 | "fieldtype": "Column Break", 117 | "hidden": 0, 118 | "ignore_user_permissions": 0, 119 | "ignore_xss_filter": 0, 120 | "in_filter": 0, 121 | "in_global_search": 0, 122 | "in_list_view": 0, 123 | "in_standard_filter": 0, 124 | "length": 0, 125 | "no_copy": 0, 126 | "permlevel": 0, 127 | "precision": "", 128 | "print_hide": 0, 129 | "print_hide_if_no_value": 0, 130 | "read_only": 0, 131 | "remember_last_selected_value": 0, 132 | "report_hide": 0, 133 | "reqd": 0, 134 | "search_index": 0, 135 | "set_only_once": 0, 136 | "unique": 0 137 | }, 138 | { 139 | "allow_bulk_edit": 0, 140 | "allow_on_submit": 0, 141 | "bold": 0, 142 | "collapsible": 0, 143 | "columns": 0, 144 | "fieldname": "note", 145 | "fieldtype": "Text", 146 | "hidden": 0, 147 | "ignore_user_permissions": 0, 148 | "ignore_xss_filter": 0, 149 | "in_filter": 0, 150 | "in_global_search": 0, 151 | "in_list_view": 0, 152 | "in_standard_filter": 0, 153 | "label": "Note", 154 | "length": 0, 155 | "no_copy": 0, 156 | "permlevel": 0, 157 | "precision": "", 158 | "print_hide": 0, 159 | "print_hide_if_no_value": 0, 160 | "read_only": 0, 161 | "remember_last_selected_value": 0, 162 | "report_hide": 0, 163 | "reqd": 0, 164 | "search_index": 0, 165 | "set_only_once": 0, 166 | "unique": 0 167 | } 168 | ], 169 | "has_web_view": 0, 170 | "hide_heading": 0, 171 | "hide_toolbar": 0, 172 | "idx": 0, 173 | "image_view": 0, 174 | "in_create": 0, 175 | "is_submittable": 0, 176 | "issingle": 0, 177 | "istable": 1, 178 | "max_attachments": 0, 179 | "modified": "2019-02-16 01:37:46.026892", 180 | "modified_by": "Administrator", 181 | "module": "IT Management", 182 | "name": "Storage", 183 | "name_case": "", 184 | "owner": "wolfram.schmidt@tueit.de", 185 | "permissions": [], 186 | "quick_entry": 1, 187 | "read_only": 0, 188 | "read_only_onload": 0, 189 | "show_name_in_global_search": 0, 190 | "sort_field": "modified", 191 | "sort_order": "DESC", 192 | "track_changes": 1, 193 | "track_seen": 0 194 | } -------------------------------------------------------------------------------- /it_management/it_management/doctype/storage/storage.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 3 | # For license information, please see license.txt 4 | 5 | from __future__ import unicode_literals 6 | import frappe 7 | from frappe.model.document import Document 8 | 9 | class Storage(Document): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/storage/storage_dashboard.py: -------------------------------------------------------------------------------- 1 | from __future__ import unicode_literals 2 | from frappe import _ 3 | 4 | 5 | def get_data(): 6 | return { 7 | 'fieldname': 'storage', 8 | 'non_standard_fieldnames': { 9 | 'IT Ticket': 'dynamic_name' 10 | }, 11 | 'transactions': [ 12 | { 13 | 'label': _('Service'), 14 | 'items': ['IT Ticket'] 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/subnet/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyf-de/erpnext_it-management/84d2cb4c8148d4175d8ac39d94fb6bfaa3da5188/it_management/it_management/doctype/subnet/__init__.py -------------------------------------------------------------------------------- /it_management/it_management/doctype/subnet/subnet.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 2 | // For license information, please see license.txt 3 | 4 | frappe.ui.form.on('Subnet', { 5 | refresh: function(frm) { 6 | 7 | } 8 | }); 9 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/subnet/subnet.json: -------------------------------------------------------------------------------- 1 | { 2 | "allow_copy": 0, 3 | "allow_guest_to_view": 0, 4 | "allow_import": 0, 5 | "allow_rename": 0, 6 | "autoname": "", 7 | "beta": 0, 8 | "creation": "2019-02-16 12:48:03.697678", 9 | "custom": 0, 10 | "docstatus": 0, 11 | "doctype": "DocType", 12 | "document_type": "System", 13 | "editable_grid": 1, 14 | "engine": "InnoDB", 15 | "fields": [ 16 | { 17 | "allow_bulk_edit": 0, 18 | "allow_on_submit": 0, 19 | "bold": 0, 20 | "collapsible": 0, 21 | "columns": 0, 22 | "fieldname": "subnet_block", 23 | "fieldtype": "Link", 24 | "hidden": 0, 25 | "ignore_user_permissions": 0, 26 | "ignore_xss_filter": 0, 27 | "in_filter": 0, 28 | "in_global_search": 0, 29 | "in_list_view": 0, 30 | "in_standard_filter": 0, 31 | "label": "Subnet Block", 32 | "length": 0, 33 | "no_copy": 0, 34 | "options": "Subnet Block", 35 | "permlevel": 0, 36 | "precision": "", 37 | "print_hide": 0, 38 | "print_hide_if_no_value": 0, 39 | "read_only": 0, 40 | "remember_last_selected_value": 0, 41 | "report_hide": 0, 42 | "reqd": 0, 43 | "search_index": 0, 44 | "set_only_once": 0, 45 | "unique": 0 46 | }, 47 | { 48 | "allow_bulk_edit": 0, 49 | "allow_on_submit": 0, 50 | "bold": 0, 51 | "collapsible": 0, 52 | "columns": 0, 53 | "fieldname": "subnet_ipv4", 54 | "fieldtype": "Data", 55 | "hidden": 0, 56 | "ignore_user_permissions": 0, 57 | "ignore_xss_filter": 0, 58 | "in_filter": 0, 59 | "in_global_search": 0, 60 | "in_list_view": 0, 61 | "in_standard_filter": 0, 62 | "label": "Subnet IPv4", 63 | "length": 0, 64 | "no_copy": 0, 65 | "permlevel": 0, 66 | "precision": "", 67 | "print_hide": 0, 68 | "print_hide_if_no_value": 0, 69 | "read_only": 0, 70 | "remember_last_selected_value": 0, 71 | "report_hide": 0, 72 | "reqd": 0, 73 | "search_index": 0, 74 | "set_only_once": 0, 75 | "unique": 0 76 | }, 77 | { 78 | "allow_bulk_edit": 0, 79 | "allow_on_submit": 0, 80 | "bold": 0, 81 | "collapsible": 0, 82 | "columns": 0, 83 | "fieldname": "subnet_mask", 84 | "fieldtype": "Data", 85 | "hidden": 0, 86 | "ignore_user_permissions": 0, 87 | "ignore_xss_filter": 0, 88 | "in_filter": 0, 89 | "in_global_search": 0, 90 | "in_list_view": 0, 91 | "in_standard_filter": 0, 92 | "label": "Subnet Mask", 93 | "length": 0, 94 | "no_copy": 0, 95 | "permlevel": 0, 96 | "precision": "", 97 | "print_hide": 0, 98 | "print_hide_if_no_value": 0, 99 | "read_only": 0, 100 | "remember_last_selected_value": 0, 101 | "report_hide": 0, 102 | "reqd": 0, 103 | "search_index": 0, 104 | "set_only_once": 0, 105 | "unique": 0 106 | }, 107 | { 108 | "allow_bulk_edit": 0, 109 | "allow_on_submit": 0, 110 | "bold": 0, 111 | "collapsible": 0, 112 | "columns": 0, 113 | "fieldname": "rules_gateway", 114 | "fieldtype": "Small Text", 115 | "hidden": 0, 116 | "ignore_user_permissions": 0, 117 | "ignore_xss_filter": 0, 118 | "in_filter": 0, 119 | "in_global_search": 0, 120 | "in_list_view": 0, 121 | "in_standard_filter": 0, 122 | "label": "Rules Gateway", 123 | "length": 0, 124 | "no_copy": 0, 125 | "permlevel": 0, 126 | "precision": "", 127 | "print_hide": 0, 128 | "print_hide_if_no_value": 0, 129 | "read_only": 0, 130 | "remember_last_selected_value": 0, 131 | "report_hide": 0, 132 | "reqd": 0, 133 | "search_index": 0, 134 | "set_only_once": 0, 135 | "unique": 0 136 | } 137 | ], 138 | "has_web_view": 0, 139 | "hide_heading": 0, 140 | "hide_toolbar": 0, 141 | "idx": 0, 142 | "image_view": 0, 143 | "in_create": 0, 144 | "is_submittable": 0, 145 | "issingle": 0, 146 | "istable": 0, 147 | "max_attachments": 0, 148 | "modified": "2019-02-26 20:30:23.746986", 149 | "modified_by": "Administrator", 150 | "module": "IT Management", 151 | "name": "Subnet", 152 | "name_case": "", 153 | "owner": "wolfram.schmidt@tueit.de", 154 | "permissions": [ 155 | { 156 | "amend": 0, 157 | "apply_user_permissions": 0, 158 | "cancel": 0, 159 | "create": 1, 160 | "delete": 1, 161 | "email": 1, 162 | "export": 1, 163 | "if_owner": 0, 164 | "import": 0, 165 | "permlevel": 0, 166 | "print": 1, 167 | "read": 1, 168 | "report": 1, 169 | "role": "System Manager", 170 | "set_user_permissions": 0, 171 | "share": 1, 172 | "submit": 0, 173 | "write": 1 174 | } 175 | ], 176 | "quick_entry": 1, 177 | "read_only": 0, 178 | "read_only_onload": 0, 179 | "search_fields": "subnet_block,subnet_ipv4", 180 | "show_name_in_global_search": 0, 181 | "sort_field": "modified", 182 | "sort_order": "DESC", 183 | "timeline_field": "subnet_block", 184 | "track_changes": 1, 185 | "track_seen": 0 186 | } -------------------------------------------------------------------------------- /it_management/it_management/doctype/subnet/subnet.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 3 | # For license information, please see license.txt 4 | 5 | from __future__ import unicode_literals 6 | import frappe 7 | from frappe.model.document import Document 8 | 9 | class Subnet(Document): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/subnet/subnet_dashboard.py: -------------------------------------------------------------------------------- 1 | from __future__ import unicode_literals 2 | from frappe import _ 3 | 4 | 5 | def get_data(): 6 | return { 7 | 'fieldname': 'subnet', 8 | 'non_standard_fieldnames': { 9 | 'IT Ticket': 'dynamic_name' 10 | }, 11 | 'transactions': [ 12 | { 13 | 'label': _('Service'), 14 | 'items': ['IT Ticket'] 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/subnet/test_subnet.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | // rename this file from _test_[name] to test_[name] to activate 3 | // and remove above this line 4 | 5 | QUnit.test("test: Subnet", function (assert) { 6 | let done = assert.async(); 7 | 8 | // number of asserts 9 | assert.expect(1); 10 | 11 | frappe.run_serially([ 12 | // insert a new Subnet 13 | () => frappe.tests.make('Subnet', [ 14 | // values to be set 15 | {key: 'value'} 16 | ]), 17 | () => { 18 | assert.equal(cur_frm.doc.key, 'value'); 19 | }, 20 | () => done() 21 | ]); 22 | 23 | }); 24 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/subnet/test_subnet.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and Contributors 3 | # See license.txt 4 | from __future__ import unicode_literals 5 | 6 | import frappe 7 | import unittest 8 | 9 | class TestSubnet(unittest.TestCase): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/subnet_block/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyf-de/erpnext_it-management/84d2cb4c8148d4175d8ac39d94fb6bfaa3da5188/it_management/it_management/doctype/subnet_block/__init__.py -------------------------------------------------------------------------------- /it_management/it_management/doctype/subnet_block/subnet_block.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 2 | // For license information, please see license.txt 3 | 4 | frappe.ui.form.on('Subnet Block', { 5 | refresh: function(frm) { 6 | 7 | } 8 | }); 9 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/subnet_block/subnet_block.json: -------------------------------------------------------------------------------- 1 | { 2 | "allow_copy": 0, 3 | "allow_guest_to_view": 0, 4 | "allow_import": 0, 5 | "allow_rename": 0, 6 | "autoname": "field:customer", 7 | "beta": 0, 8 | "creation": "2019-02-16 12:42:37.937315", 9 | "custom": 0, 10 | "docstatus": 0, 11 | "doctype": "DocType", 12 | "document_type": "Other", 13 | "editable_grid": 1, 14 | "engine": "InnoDB", 15 | "fields": [ 16 | { 17 | "allow_bulk_edit": 0, 18 | "allow_on_submit": 0, 19 | "bold": 0, 20 | "collapsible": 0, 21 | "columns": 0, 22 | "fieldname": "customer", 23 | "fieldtype": "Link", 24 | "hidden": 0, 25 | "ignore_user_permissions": 0, 26 | "ignore_xss_filter": 0, 27 | "in_filter": 0, 28 | "in_global_search": 0, 29 | "in_list_view": 0, 30 | "in_standard_filter": 0, 31 | "label": "Customer", 32 | "length": 0, 33 | "no_copy": 0, 34 | "options": "Customer", 35 | "permlevel": 0, 36 | "precision": "", 37 | "print_hide": 0, 38 | "print_hide_if_no_value": 0, 39 | "read_only": 0, 40 | "remember_last_selected_value": 0, 41 | "report_hide": 0, 42 | "reqd": 0, 43 | "search_index": 0, 44 | "set_only_once": 0, 45 | "unique": 0 46 | }, 47 | { 48 | "allow_bulk_edit": 0, 49 | "allow_on_submit": 0, 50 | "bold": 0, 51 | "collapsible": 0, 52 | "columns": 0, 53 | "fieldname": "location", 54 | "fieldtype": "Link", 55 | "hidden": 0, 56 | "ignore_user_permissions": 0, 57 | "ignore_xss_filter": 0, 58 | "in_filter": 0, 59 | "in_global_search": 0, 60 | "in_list_view": 0, 61 | "in_standard_filter": 0, 62 | "label": "Location", 63 | "length": 0, 64 | "no_copy": 0, 65 | "options": "Address", 66 | "permlevel": 0, 67 | "precision": "", 68 | "print_hide": 0, 69 | "print_hide_if_no_value": 0, 70 | "read_only": 0, 71 | "remember_last_selected_value": 0, 72 | "report_hide": 0, 73 | "reqd": 0, 74 | "search_index": 0, 75 | "set_only_once": 0, 76 | "unique": 0 77 | }, 78 | { 79 | "allow_bulk_edit": 0, 80 | "allow_on_submit": 0, 81 | "bold": 0, 82 | "collapsible": 0, 83 | "columns": 0, 84 | "fieldname": "firstip", 85 | "fieldtype": "Data", 86 | "hidden": 0, 87 | "ignore_user_permissions": 0, 88 | "ignore_xss_filter": 0, 89 | "in_filter": 0, 90 | "in_global_search": 0, 91 | "in_list_view": 0, 92 | "in_standard_filter": 0, 93 | "label": "First IP", 94 | "length": 0, 95 | "no_copy": 0, 96 | "permlevel": 0, 97 | "precision": "", 98 | "print_hide": 0, 99 | "print_hide_if_no_value": 0, 100 | "read_only": 0, 101 | "remember_last_selected_value": 0, 102 | "report_hide": 0, 103 | "reqd": 0, 104 | "search_index": 0, 105 | "set_only_once": 0, 106 | "unique": 0 107 | }, 108 | { 109 | "allow_bulk_edit": 0, 110 | "allow_on_submit": 0, 111 | "bold": 0, 112 | "collapsible": 0, 113 | "columns": 0, 114 | "fieldname": "lastip", 115 | "fieldtype": "Data", 116 | "hidden": 0, 117 | "ignore_user_permissions": 0, 118 | "ignore_xss_filter": 0, 119 | "in_filter": 0, 120 | "in_global_search": 0, 121 | "in_list_view": 0, 122 | "in_standard_filter": 0, 123 | "label": "Last IP", 124 | "length": 0, 125 | "no_copy": 0, 126 | "permlevel": 0, 127 | "precision": "", 128 | "print_hide": 0, 129 | "print_hide_if_no_value": 0, 130 | "read_only": 0, 131 | "remember_last_selected_value": 0, 132 | "report_hide": 0, 133 | "reqd": 0, 134 | "search_index": 0, 135 | "set_only_once": 0, 136 | "unique": 0 137 | } 138 | ], 139 | "has_web_view": 0, 140 | "hide_heading": 0, 141 | "hide_toolbar": 0, 142 | "idx": 0, 143 | "image_view": 0, 144 | "in_create": 0, 145 | "is_submittable": 0, 146 | "issingle": 0, 147 | "istable": 0, 148 | "max_attachments": 0, 149 | "modified": "2019-02-26 20:30:49.773896", 150 | "modified_by": "Administrator", 151 | "module": "IT Management", 152 | "name": "Subnet Block", 153 | "name_case": "", 154 | "owner": "wolfram.schmidt@tueit.de", 155 | "permissions": [ 156 | { 157 | "amend": 0, 158 | "apply_user_permissions": 0, 159 | "cancel": 0, 160 | "create": 1, 161 | "delete": 1, 162 | "email": 1, 163 | "export": 1, 164 | "if_owner": 0, 165 | "import": 0, 166 | "permlevel": 0, 167 | "print": 1, 168 | "read": 1, 169 | "report": 1, 170 | "role": "System Manager", 171 | "set_user_permissions": 0, 172 | "share": 1, 173 | "submit": 0, 174 | "write": 1 175 | } 176 | ], 177 | "quick_entry": 1, 178 | "read_only": 0, 179 | "read_only_onload": 0, 180 | "search_fields": "customer,location,firstip", 181 | "show_name_in_global_search": 0, 182 | "sort_field": "modified", 183 | "sort_order": "DESC", 184 | "track_changes": 1, 185 | "track_seen": 0 186 | } -------------------------------------------------------------------------------- /it_management/it_management/doctype/subnet_block/subnet_block.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 3 | # For license information, please see license.txt 4 | 5 | from __future__ import unicode_literals 6 | import frappe 7 | from frappe.model.document import Document 8 | 9 | class SubnetBlock(Document): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/subnet_block/subnet_block_dashboard.py: -------------------------------------------------------------------------------- 1 | from __future__ import unicode_literals 2 | from frappe import _ 3 | 4 | 5 | def get_data(): 6 | return { 7 | 'fieldname': 'subnet_block', 8 | 'non_standard_fieldnames': { 9 | 'IT Ticket': 'dynamic_name' 10 | }, 11 | 'transactions': [ 12 | { 13 | 'label': _('Service'), 14 | 'items': ['IT Ticket'] 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/subnet_block/test_subnet_block.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | // rename this file from _test_[name] to test_[name] to activate 3 | // and remove above this line 4 | 5 | QUnit.test("test: Subnet Block", function (assert) { 6 | let done = assert.async(); 7 | 8 | // number of asserts 9 | assert.expect(1); 10 | 11 | frappe.run_serially([ 12 | // insert a new Subnet Block 13 | () => frappe.tests.make('Subnet Block', [ 14 | // values to be set 15 | {key: 'value'} 16 | ]), 17 | () => { 18 | assert.equal(cur_frm.doc.key, 'value'); 19 | }, 20 | () => done() 21 | ]); 22 | 23 | }); 24 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/subnet_block/test_subnet_block.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and Contributors 3 | # See license.txt 4 | from __future__ import unicode_literals 5 | 6 | import frappe 7 | import unittest 8 | 9 | class TestSubnetBlock(unittest.TestCase): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/task_checklist/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyf-de/erpnext_it-management/84d2cb4c8148d4175d8ac39d94fb6bfaa3da5188/it_management/it_management/doctype/task_checklist/__init__.py -------------------------------------------------------------------------------- /it_management/it_management/doctype/task_checklist/task_checklist.json: -------------------------------------------------------------------------------- 1 | { 2 | "allow_copy": 0, 3 | "allow_guest_to_view": 0, 4 | "allow_import": 0, 5 | "allow_rename": 0, 6 | "beta": 0, 7 | "creation": "2018-11-02 17:36:32.052548", 8 | "custom": 0, 9 | "docstatus": 0, 10 | "doctype": "DocType", 11 | "document_type": "", 12 | "editable_grid": 1, 13 | "engine": "InnoDB", 14 | "fields": [ 15 | { 16 | "allow_bulk_edit": 0, 17 | "allow_on_submit": 0, 18 | "bold": 0, 19 | "collapsible": 0, 20 | "columns": 0, 21 | "description": "", 22 | "fieldname": "custom", 23 | "fieldtype": "Data", 24 | "hidden": 0, 25 | "ignore_user_permissions": 0, 26 | "ignore_xss_filter": 0, 27 | "in_filter": 0, 28 | "in_global_search": 0, 29 | "in_list_view": 1, 30 | "in_standard_filter": 0, 31 | "label": "Description", 32 | "length": 0, 33 | "no_copy": 0, 34 | "permlevel": 0, 35 | "precision": "", 36 | "print_hide": 0, 37 | "print_hide_if_no_value": 0, 38 | "read_only": 0, 39 | "remember_last_selected_value": 0, 40 | "report_hide": 0, 41 | "reqd": 0, 42 | "search_index": 0, 43 | "set_only_once": 0, 44 | "unique": 0 45 | }, 46 | { 47 | "allow_bulk_edit": 0, 48 | "allow_on_submit": 0, 49 | "bold": 0, 50 | "collapsible": 0, 51 | "columns": 0, 52 | "fieldname": "configuration_item", 53 | "fieldtype": "Link", 54 | "hidden": 0, 55 | "ignore_user_permissions": 0, 56 | "ignore_xss_filter": 0, 57 | "in_filter": 0, 58 | "in_global_search": 0, 59 | "in_list_view": 1, 60 | "in_standard_filter": 0, 61 | "label": "Configuration Item", 62 | "length": 0, 63 | "no_copy": 0, 64 | "options": "Configuration Item", 65 | "permlevel": 0, 66 | "precision": "", 67 | "print_hide": 0, 68 | "print_hide_if_no_value": 0, 69 | "read_only": 0, 70 | "remember_last_selected_value": 0, 71 | "report_hide": 0, 72 | "reqd": 0, 73 | "search_index": 0, 74 | "set_only_once": 0, 75 | "unique": 0 76 | }, 77 | { 78 | "allow_bulk_edit": 0, 79 | "allow_on_submit": 0, 80 | "bold": 0, 81 | "collapsible": 0, 82 | "columns": 0, 83 | "fieldname": "check", 84 | "fieldtype": "Check", 85 | "hidden": 0, 86 | "ignore_user_permissions": 0, 87 | "ignore_xss_filter": 0, 88 | "in_filter": 0, 89 | "in_global_search": 0, 90 | "in_list_view": 1, 91 | "in_standard_filter": 0, 92 | "label": "Check", 93 | "length": 0, 94 | "no_copy": 0, 95 | "permlevel": 0, 96 | "precision": "", 97 | "print_hide": 0, 98 | "print_hide_if_no_value": 0, 99 | "read_only": 0, 100 | "remember_last_selected_value": 0, 101 | "report_hide": 0, 102 | "reqd": 0, 103 | "search_index": 0, 104 | "set_only_once": 0, 105 | "unique": 0 106 | }, 107 | { 108 | "allow_bulk_edit": 0, 109 | "allow_on_submit": 0, 110 | "bold": 0, 111 | "collapsible": 0, 112 | "columns": 0, 113 | "description": "For additional notes", 114 | "fieldname": "note", 115 | "fieldtype": "Small Text", 116 | "hidden": 0, 117 | "ignore_user_permissions": 0, 118 | "ignore_xss_filter": 0, 119 | "in_filter": 0, 120 | "in_global_search": 0, 121 | "in_list_view": 0, 122 | "in_standard_filter": 0, 123 | "label": "Note", 124 | "length": 0, 125 | "no_copy": 0, 126 | "permlevel": 0, 127 | "precision": "", 128 | "print_hide": 0, 129 | "print_hide_if_no_value": 0, 130 | "read_only": 0, 131 | "remember_last_selected_value": 0, 132 | "report_hide": 0, 133 | "reqd": 0, 134 | "search_index": 0, 135 | "set_only_once": 0, 136 | "unique": 0 137 | } 138 | ], 139 | "has_web_view": 0, 140 | "hide_heading": 0, 141 | "hide_toolbar": 0, 142 | "idx": 0, 143 | "image_view": 0, 144 | "in_create": 0, 145 | "is_submittable": 0, 146 | "issingle": 0, 147 | "istable": 1, 148 | "max_attachments": 0, 149 | "modified": "2019-03-07 16:33:39.086165", 150 | "modified_by": "Administrator", 151 | "module": "IT Management", 152 | "name": "Task Checklist", 153 | "name_case": "", 154 | "owner": "wolfram.schmidt@tueit.de", 155 | "permissions": [], 156 | "quick_entry": 1, 157 | "read_only": 0, 158 | "read_only_onload": 0, 159 | "show_name_in_global_search": 0, 160 | "sort_field": "modified", 161 | "sort_order": "DESC", 162 | "track_changes": 1, 163 | "track_seen": 0 164 | } -------------------------------------------------------------------------------- /it_management/it_management/doctype/task_checklist/task_checklist.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 3 | # For license information, please see license.txt 4 | 5 | from __future__ import unicode_literals 6 | import frappe 7 | from frappe.model.document import Document 8 | 9 | class TaskChecklist(Document): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/task_configuration_item_table/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyf-de/erpnext_it-management/84d2cb4c8148d4175d8ac39d94fb6bfaa3da5188/it_management/it_management/doctype/task_configuration_item_table/__init__.py -------------------------------------------------------------------------------- /it_management/it_management/doctype/task_configuration_item_table/task_configuration_item_table.json: -------------------------------------------------------------------------------- 1 | { 2 | "allow_copy": 0, 3 | "allow_guest_to_view": 0, 4 | "allow_import": 0, 5 | "allow_rename": 0, 6 | "autoname": "naming_series:", 7 | "beta": 0, 8 | "creation": "2018-10-12 12:56:20.584681", 9 | "custom": 0, 10 | "docstatus": 0, 11 | "doctype": "DocType", 12 | "document_type": "", 13 | "editable_grid": 1, 14 | "engine": "InnoDB", 15 | "fields": [ 16 | { 17 | "allow_bulk_edit": 0, 18 | "allow_on_submit": 0, 19 | "bold": 0, 20 | "collapsible": 0, 21 | "columns": 0, 22 | "fieldname": "naming_series", 23 | "fieldtype": "Select", 24 | "hidden": 1, 25 | "ignore_user_permissions": 0, 26 | "ignore_xss_filter": 0, 27 | "in_filter": 0, 28 | "in_global_search": 0, 29 | "in_list_view": 0, 30 | "in_standard_filter": 0, 31 | "label": "Series", 32 | "length": 0, 33 | "no_copy": 0, 34 | "options": "CIS-", 35 | "permlevel": 0, 36 | "precision": "", 37 | "print_hide": 0, 38 | "print_hide_if_no_value": 0, 39 | "read_only": 0, 40 | "remember_last_selected_value": 0, 41 | "report_hide": 0, 42 | "reqd": 0, 43 | "search_index": 0, 44 | "set_only_once": 0, 45 | "unique": 0 46 | }, 47 | { 48 | "allow_bulk_edit": 0, 49 | "allow_on_submit": 0, 50 | "bold": 0, 51 | "collapsible": 0, 52 | "columns": 0, 53 | "fieldname": "note", 54 | "fieldtype": "Small Text", 55 | "hidden": 0, 56 | "ignore_user_permissions": 0, 57 | "ignore_xss_filter": 0, 58 | "in_filter": 0, 59 | "in_global_search": 0, 60 | "in_list_view": 1, 61 | "in_standard_filter": 0, 62 | "label": "Note", 63 | "length": 0, 64 | "no_copy": 0, 65 | "permlevel": 0, 66 | "precision": "", 67 | "print_hide": 0, 68 | "print_hide_if_no_value": 0, 69 | "read_only": 0, 70 | "remember_last_selected_value": 0, 71 | "report_hide": 0, 72 | "reqd": 0, 73 | "search_index": 0, 74 | "set_only_once": 0, 75 | "unique": 0 76 | }, 77 | { 78 | "allow_bulk_edit": 0, 79 | "allow_on_submit": 0, 80 | "bold": 0, 81 | "collapsible": 0, 82 | "columns": 0, 83 | "fieldname": "linked_configuration_item", 84 | "fieldtype": "Link", 85 | "hidden": 0, 86 | "ignore_user_permissions": 0, 87 | "ignore_xss_filter": 0, 88 | "in_filter": 0, 89 | "in_global_search": 0, 90 | "in_list_view": 1, 91 | "in_standard_filter": 0, 92 | "label": "Linked Configuration Item", 93 | "length": 0, 94 | "no_copy": 0, 95 | "options": "Configuration Item", 96 | "permlevel": 0, 97 | "precision": "", 98 | "print_hide": 0, 99 | "print_hide_if_no_value": 0, 100 | "read_only": 0, 101 | "remember_last_selected_value": 0, 102 | "report_hide": 0, 103 | "reqd": 0, 104 | "search_index": 0, 105 | "set_only_once": 0, 106 | "unique": 0 107 | }, 108 | { 109 | "allow_bulk_edit": 0, 110 | "allow_on_submit": 0, 111 | "bold": 0, 112 | "collapsible": 0, 113 | "columns": 0, 114 | "fieldname": "column_break_4", 115 | "fieldtype": "Column Break", 116 | "hidden": 0, 117 | "ignore_user_permissions": 0, 118 | "ignore_xss_filter": 0, 119 | "in_filter": 0, 120 | "in_global_search": 0, 121 | "in_list_view": 0, 122 | "in_standard_filter": 0, 123 | "length": 0, 124 | "no_copy": 0, 125 | "permlevel": 0, 126 | "precision": "", 127 | "print_hide": 0, 128 | "print_hide_if_no_value": 0, 129 | "read_only": 0, 130 | "remember_last_selected_value": 0, 131 | "report_hide": 0, 132 | "reqd": 0, 133 | "search_index": 0, 134 | "set_only_once": 0, 135 | "unique": 0 136 | }, 137 | { 138 | "allow_bulk_edit": 0, 139 | "allow_on_submit": 0, 140 | "bold": 0, 141 | "collapsible": 0, 142 | "columns": 0, 143 | "fieldname": "solution", 144 | "fieldtype": "Link", 145 | "hidden": 0, 146 | "ignore_user_permissions": 0, 147 | "ignore_xss_filter": 0, 148 | "in_filter": 0, 149 | "in_global_search": 0, 150 | "in_list_view": 0, 151 | "in_standard_filter": 0, 152 | "label": "Solution", 153 | "length": 0, 154 | "no_copy": 0, 155 | "options": "Solution", 156 | "permlevel": 0, 157 | "precision": "", 158 | "print_hide": 0, 159 | "print_hide_if_no_value": 0, 160 | "read_only": 0, 161 | "remember_last_selected_value": 0, 162 | "report_hide": 0, 163 | "reqd": 0, 164 | "search_index": 0, 165 | "set_only_once": 0, 166 | "unique": 0 167 | } 168 | ], 169 | "has_web_view": 0, 170 | "hide_heading": 0, 171 | "hide_toolbar": 0, 172 | "idx": 0, 173 | "image_view": 0, 174 | "in_create": 0, 175 | "is_submittable": 0, 176 | "issingle": 0, 177 | "istable": 1, 178 | "max_attachments": 0, 179 | "modified": "2019-02-26 20:38:25.147869", 180 | "modified_by": "Administrator", 181 | "module": "IT Management", 182 | "name": "Task Configuration Item Table", 183 | "name_case": "", 184 | "owner": "wolfram.schmidt@tueit.de", 185 | "permissions": [], 186 | "quick_entry": 1, 187 | "read_only": 0, 188 | "read_only_onload": 0, 189 | "show_name_in_global_search": 0, 190 | "sort_field": "modified", 191 | "sort_order": "DESC", 192 | "track_changes": 1, 193 | "track_seen": 0 194 | } -------------------------------------------------------------------------------- /it_management/it_management/doctype/task_configuration_item_table/task_configuration_item_table.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 3 | # For license information, please see license.txt 4 | 5 | from __future__ import unicode_literals 6 | import frappe 7 | from frappe.model.document import Document 8 | 9 | class TaskConfigurationItemTable(Document): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/user_account/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyf-de/erpnext_it-management/84d2cb4c8148d4175d8ac39d94fb6bfaa3da5188/it_management/it_management/doctype/user_account/__init__.py -------------------------------------------------------------------------------- /it_management/it_management/doctype/user_account/test_user_account.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | // rename this file from _test_[name] to test_[name] to activate 3 | // and remove above this line 4 | 5 | QUnit.test("test: User Account", function (assert) { 6 | let done = assert.async(); 7 | 8 | // number of asserts 9 | assert.expect(1); 10 | 11 | frappe.run_serially([ 12 | // insert a new User Account 13 | () => frappe.tests.make('User Account', [ 14 | // values to be set 15 | {key: 'value'} 16 | ]), 17 | () => { 18 | assert.equal(cur_frm.doc.key, 'value'); 19 | }, 20 | () => done() 21 | ]); 22 | 23 | }); 24 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/user_account/test_user_account.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and Contributors 3 | # See license.txt 4 | from __future__ import unicode_literals 5 | 6 | import frappe 7 | import unittest 8 | 9 | class TestUserAccount(unittest.TestCase): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/user_account/user_account.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 2 | // For license information, please see license.txt 3 | 4 | frappe.ui.form.on('User Account', { 5 | refresh: function(frm) { 6 | 7 | } 8 | }); 9 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/user_account/user_account.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 3 | # For license information, please see license.txt 4 | 5 | from __future__ import unicode_literals 6 | import frappe 7 | from frappe.model.document import Document 8 | 9 | class UserAccount(Document): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/user_account/user_account_dashboard.py: -------------------------------------------------------------------------------- 1 | from __future__ import unicode_literals 2 | from frappe import _ 3 | 4 | 5 | def get_data(): 6 | return { 7 | 'fieldname': 'user_account', 8 | 'non_standard_fieldnames': { 9 | 'IT Ticket': 'dynamic_name' 10 | }, 11 | 'transactions': [ 12 | { 13 | 'label': _('Used in'), 14 | 'items': ['Solution', 'User Account'] 15 | }, 16 | { 17 | 'label': _('Service'), 18 | 'items': ['IT Ticket'] 19 | } 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/user_account_table/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyf-de/erpnext_it-management/84d2cb4c8148d4175d8ac39d94fb6bfaa3da5188/it_management/it_management/doctype/user_account_table/__init__.py -------------------------------------------------------------------------------- /it_management/it_management/doctype/user_account_table/user_account_table.json: -------------------------------------------------------------------------------- 1 | { 2 | "allow_copy": 0, 3 | "allow_guest_to_view": 0, 4 | "allow_import": 0, 5 | "allow_rename": 0, 6 | "beta": 0, 7 | "creation": "2019-03-01 22:32:20.622090", 8 | "custom": 0, 9 | "docstatus": 0, 10 | "doctype": "DocType", 11 | "document_type": "", 12 | "editable_grid": 1, 13 | "engine": "InnoDB", 14 | "fields": [ 15 | { 16 | "allow_bulk_edit": 0, 17 | "allow_on_submit": 0, 18 | "bold": 0, 19 | "collapsible": 0, 20 | "columns": 0, 21 | "fieldname": "note", 22 | "fieldtype": "Data", 23 | "hidden": 0, 24 | "ignore_user_permissions": 0, 25 | "ignore_xss_filter": 0, 26 | "in_filter": 0, 27 | "in_global_search": 0, 28 | "in_list_view": 1, 29 | "in_standard_filter": 0, 30 | "label": "Note", 31 | "length": 0, 32 | "no_copy": 0, 33 | "permlevel": 0, 34 | "precision": "", 35 | "print_hide": 0, 36 | "print_hide_if_no_value": 0, 37 | "read_only": 0, 38 | "remember_last_selected_value": 0, 39 | "report_hide": 0, 40 | "reqd": 0, 41 | "search_index": 0, 42 | "set_only_once": 0, 43 | "unique": 0 44 | }, 45 | { 46 | "allow_bulk_edit": 0, 47 | "allow_on_submit": 0, 48 | "bold": 0, 49 | "collapsible": 0, 50 | "columns": 0, 51 | "fieldname": "user_account", 52 | "fieldtype": "Link", 53 | "hidden": 0, 54 | "ignore_user_permissions": 0, 55 | "ignore_xss_filter": 0, 56 | "in_filter": 0, 57 | "in_global_search": 0, 58 | "in_list_view": 1, 59 | "in_standard_filter": 0, 60 | "label": "User Account", 61 | "length": 0, 62 | "no_copy": 0, 63 | "options": "User Account", 64 | "permlevel": 0, 65 | "precision": "", 66 | "print_hide": 0, 67 | "print_hide_if_no_value": 0, 68 | "read_only": 0, 69 | "remember_last_selected_value": 0, 70 | "report_hide": 0, 71 | "reqd": 0, 72 | "search_index": 0, 73 | "set_only_once": 0, 74 | "unique": 0 75 | } 76 | ], 77 | "has_web_view": 0, 78 | "hide_heading": 0, 79 | "hide_toolbar": 0, 80 | "idx": 0, 81 | "image_view": 0, 82 | "in_create": 0, 83 | "is_submittable": 0, 84 | "issingle": 0, 85 | "istable": 1, 86 | "max_attachments": 0, 87 | "modified": "2019-03-07 16:14:29.686325", 88 | "modified_by": "Administrator", 89 | "module": "IT Management", 90 | "name": "User Account Table", 91 | "name_case": "", 92 | "owner": "Administrator", 93 | "permissions": [], 94 | "quick_entry": 1, 95 | "read_only": 0, 96 | "read_only_onload": 0, 97 | "show_name_in_global_search": 0, 98 | "sort_field": "modified", 99 | "sort_order": "DESC", 100 | "track_changes": 1, 101 | "track_seen": 0 102 | } -------------------------------------------------------------------------------- /it_management/it_management/doctype/user_account_table/user_account_table.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 3 | # For license information, please see license.txt 4 | 5 | from __future__ import unicode_literals 6 | import frappe 7 | from frappe.model.document import Document 8 | 9 | class UserAccountTable(Document): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/user_group/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyf-de/erpnext_it-management/84d2cb4c8148d4175d8ac39d94fb6bfaa3da5188/it_management/it_management/doctype/user_group/__init__.py -------------------------------------------------------------------------------- /it_management/it_management/doctype/user_group/test_user_group.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | // rename this file from _test_[name] to test_[name] to activate 3 | // and remove above this line 4 | 5 | QUnit.test("test: User Group", function (assert) { 6 | let done = assert.async(); 7 | 8 | // number of asserts 9 | assert.expect(1); 10 | 11 | frappe.run_serially([ 12 | // insert a new User Group 13 | () => frappe.tests.make('User Group', [ 14 | // values to be set 15 | {key: 'value'} 16 | ]), 17 | () => { 18 | assert.equal(cur_frm.doc.key, 'value'); 19 | }, 20 | () => done() 21 | ]); 22 | 23 | }); 24 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/user_group/test_user_group.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and Contributors 3 | # See license.txt 4 | from __future__ import unicode_literals 5 | 6 | import frappe 7 | import unittest 8 | 9 | class TestUserGroup(unittest.TestCase): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/user_group/user_group.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 2 | // For license information, please see license.txt 3 | 4 | frappe.ui.form.on('User Group', { 5 | refresh: function(frm) { 6 | 7 | } 8 | }); 9 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/user_group/user_group.json: -------------------------------------------------------------------------------- 1 | { 2 | "allow_copy": 0, 3 | "allow_guest_to_view": 0, 4 | "allow_import": 0, 5 | "allow_rename": 0, 6 | "beta": 0, 7 | "creation": "2019-02-18 22:32:00.349783", 8 | "custom": 0, 9 | "docstatus": 0, 10 | "doctype": "DocType", 11 | "document_type": "", 12 | "editable_grid": 1, 13 | "engine": "InnoDB", 14 | "fields": [ 15 | { 16 | "allow_bulk_edit": 0, 17 | "allow_on_submit": 0, 18 | "bold": 0, 19 | "collapsible": 0, 20 | "columns": 0, 21 | "fieldname": "name1", 22 | "fieldtype": "Data", 23 | "hidden": 0, 24 | "ignore_user_permissions": 0, 25 | "ignore_xss_filter": 0, 26 | "in_filter": 0, 27 | "in_global_search": 0, 28 | "in_list_view": 0, 29 | "in_standard_filter": 0, 30 | "label": "Name", 31 | "length": 0, 32 | "no_copy": 0, 33 | "permlevel": 0, 34 | "precision": "", 35 | "print_hide": 0, 36 | "print_hide_if_no_value": 0, 37 | "read_only": 0, 38 | "remember_last_selected_value": 0, 39 | "report_hide": 0, 40 | "reqd": 0, 41 | "search_index": 0, 42 | "set_only_once": 0, 43 | "unique": 0 44 | }, 45 | { 46 | "allow_bulk_edit": 0, 47 | "allow_on_submit": 0, 48 | "bold": 0, 49 | "collapsible": 0, 50 | "columns": 0, 51 | "fieldname": "solution", 52 | "fieldtype": "Link", 53 | "hidden": 0, 54 | "ignore_user_permissions": 0, 55 | "ignore_xss_filter": 0, 56 | "in_filter": 0, 57 | "in_global_search": 0, 58 | "in_list_view": 0, 59 | "in_standard_filter": 0, 60 | "label": "Solution", 61 | "length": 0, 62 | "no_copy": 0, 63 | "options": "Solution", 64 | "permlevel": 0, 65 | "precision": "", 66 | "print_hide": 0, 67 | "print_hide_if_no_value": 0, 68 | "read_only": 0, 69 | "remember_last_selected_value": 0, 70 | "report_hide": 0, 71 | "reqd": 0, 72 | "search_index": 0, 73 | "set_only_once": 0, 74 | "unique": 0 75 | }, 76 | { 77 | "allow_bulk_edit": 0, 78 | "allow_on_submit": 0, 79 | "bold": 0, 80 | "collapsible": 0, 81 | "columns": 0, 82 | "fieldname": "user_accounts", 83 | "fieldtype": "Data", 84 | "hidden": 1, 85 | "ignore_user_permissions": 0, 86 | "ignore_xss_filter": 0, 87 | "in_filter": 0, 88 | "in_global_search": 0, 89 | "in_list_view": 0, 90 | "in_standard_filter": 0, 91 | "label": "User Accounts", 92 | "length": 0, 93 | "no_copy": 0, 94 | "permlevel": 0, 95 | "precision": "", 96 | "print_hide": 0, 97 | "print_hide_if_no_value": 0, 98 | "read_only": 0, 99 | "remember_last_selected_value": 0, 100 | "report_hide": 0, 101 | "reqd": 0, 102 | "search_index": 0, 103 | "set_only_once": 0, 104 | "unique": 0 105 | } 106 | ], 107 | "has_web_view": 0, 108 | "hide_heading": 0, 109 | "hide_toolbar": 0, 110 | "idx": 0, 111 | "image_view": 0, 112 | "in_create": 0, 113 | "is_submittable": 0, 114 | "issingle": 0, 115 | "istable": 0, 116 | "max_attachments": 0, 117 | "modified": "2019-02-26 17:18:24.731661", 118 | "modified_by": "Administrator", 119 | "module": "IT Management", 120 | "name": "User Group", 121 | "name_case": "", 122 | "owner": "wolfram.schmidt@tueit.de", 123 | "permissions": [ 124 | { 125 | "amend": 0, 126 | "apply_user_permissions": 0, 127 | "cancel": 0, 128 | "create": 1, 129 | "delete": 1, 130 | "email": 1, 131 | "export": 1, 132 | "if_owner": 0, 133 | "import": 0, 134 | "permlevel": 0, 135 | "print": 1, 136 | "read": 1, 137 | "report": 1, 138 | "role": "System Manager", 139 | "set_user_permissions": 0, 140 | "share": 1, 141 | "submit": 0, 142 | "write": 1 143 | } 144 | ], 145 | "quick_entry": 1, 146 | "read_only": 0, 147 | "read_only_onload": 0, 148 | "show_name_in_global_search": 0, 149 | "sort_field": "modified", 150 | "sort_order": "DESC", 151 | "track_changes": 1, 152 | "track_seen": 0 153 | } -------------------------------------------------------------------------------- /it_management/it_management/doctype/user_group/user_group.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups, and contributors 3 | # For license information, please see license.txt 4 | 5 | from __future__ import unicode_literals 6 | import frappe 7 | from frappe.model.document import Document 8 | 9 | class UserGroup(Document): 10 | pass 11 | -------------------------------------------------------------------------------- /it_management/it_management/doctype/user_group/user_group_dashboard.py: -------------------------------------------------------------------------------- 1 | from __future__ import unicode_literals 2 | from frappe import _ 3 | 4 | 5 | def get_data(): 6 | return { 7 | 'fieldname': 'user_group', 8 | 'non_standard_fieldnames': { 9 | 'IT Ticket': 'dynamic_name' 10 | }, 11 | 'transactions': [ 12 | { 13 | 'label': _('Service'), 14 | 'items': ['IT Ticket'] 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /it_management/modules.txt: -------------------------------------------------------------------------------- 1 | IT Management -------------------------------------------------------------------------------- /it_management/patches.txt: -------------------------------------------------------------------------------- 1 | it_management.patches.0_1.task_checklist 2 | it_management.patches.0_1.configuration_item_table 3 | it_management.patches.0_2.it_ticket 4 | it_management.patches.0_2.ci_type 5 | it_management.patches.0_2.solution_type 6 | it_management.patches.0_3.task_checklist 7 | -------------------------------------------------------------------------------- /it_management/patches/0_1/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyf-de/erpnext_it-management/84d2cb4c8148d4175d8ac39d94fb6bfaa3da5188/it_management/patches/0_1/__init__.py -------------------------------------------------------------------------------- /it_management/patches/0_1/configuration_item_table.py: -------------------------------------------------------------------------------- 1 | import frappe 2 | from frappe.exceptions import DoesNotExistError 3 | 4 | """ 5 | Column `linked_configuration_item` in `Configuration Item Table` has been renamed to `configuration_item` 6 | 7 | UPDATE `tabConfiguration Item Table` 8 | SET configuration_item = linked_configuration_item 9 | WHERE linked_configuration_item is not NULL and configuration_item is NULL 10 | """ 11 | 12 | def execute(): 13 | try: 14 | frappe.get_last_doc("Configuration Item Table") 15 | except DoesNotExistError: 16 | return 17 | 18 | filters={'linked_configuration_item':("!=", ""), 'configuration_item':("=", "")} 19 | cit_list = frappe.get_list("Configuration Item Table", filters=filters) 20 | 21 | for name in cit_list: 22 | tl = frappe.get_doc("Configuration Item Table", name) 23 | tl.configuration_item = tl.linked_configuration_item 24 | tl.save() 25 | -------------------------------------------------------------------------------- /it_management/patches/0_1/task_checklist.py: -------------------------------------------------------------------------------- 1 | import frappe 2 | from frappe.exceptions import DoesNotExistError 3 | 4 | """ 5 | `checklist_table` in `Task` has been renamed to `task_checklist` 6 | """ 7 | 8 | def execute(): 9 | try: 10 | frappe.get_last_doc("Task Checklist") 11 | except DoesNotExistError: 12 | return 13 | 14 | tc_list = frappe.get_list("Task Checklist", filters={'parentfield':'checklist_table'}) 15 | 16 | for name in tc_list: 17 | tl = frappe.get_doc("Task Checklist", name) 18 | tl.parentfield = 'task_checklist' 19 | tl.save() 20 | 21 | -------------------------------------------------------------------------------- /it_management/patches/0_2/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyf-de/erpnext_it-management/84d2cb4c8148d4175d8ac39d94fb6bfaa3da5188/it_management/patches/0_2/__init__.py -------------------------------------------------------------------------------- /it_management/patches/0_2/ci_type.py: -------------------------------------------------------------------------------- 1 | """ 2 | Create a Configuration Item Type for each option of the former Selection. 3 | Reason: Configuration Item -> Type changed from Select to Link. 4 | """ 5 | import frappe 6 | from frappe.exceptions import DoesNotExistError 7 | 8 | 9 | def execute(): 10 | ci_types = [ 11 | "Client", 12 | "Hypervisor", 13 | "Infrastructure", 14 | "Machine, Modality", 15 | "Network Device", 16 | "Peripheral", 17 | "Phone", 18 | "Printer, Scanner, Fax", 19 | "Server", 20 | "Share", 21 | "Sonstiges" 22 | ] 23 | 24 | frappe.reload_doc('it_management', 'doctype', 'configuration_item_type') 25 | 26 | for name in ci_types: 27 | try: 28 | ci_type = frappe.get_doc({ 29 | "doctype": "Configuration Item Type", 30 | "title": name 31 | }) 32 | ci_type.save() 33 | except frappe.DuplicateEntryError: 34 | continue 35 | -------------------------------------------------------------------------------- /it_management/patches/0_2/it_ticket.py: -------------------------------------------------------------------------------- 1 | """ 2 | IT Ticket: Change fieldname `title` to `subject` for better EMail compatibility. 3 | """ 4 | import frappe 5 | from frappe.exceptions import DoesNotExistError 6 | 7 | 8 | def execute(): 9 | try: 10 | frappe.get_last_doc("IT Ticket") 11 | except DoesNotExistError: 12 | return 13 | 14 | tickets = frappe.get_list("IT Ticket", filters={"title":("!=", "")}) 15 | 16 | for name in tickets: 17 | ticket = frappe.get_doc("IT Ticket", name) 18 | ticket.subject = ticket.title 19 | ticket.save() 20 | -------------------------------------------------------------------------------- /it_management/patches/0_2/it_ticket_type.py: -------------------------------------------------------------------------------- 1 | """ 2 | Create a IT Ticket Type for each option of the former Selection. 3 | Reason: IT Ticket -> Type changed from Select to Link. 4 | """ 5 | import frappe 6 | from frappe.exceptions import DoesNotExistError 7 | 8 | 9 | def execute(): 10 | ticket_types = [ 11 | "Incident", 12 | "Problem", 13 | "Change" 14 | ] 15 | 16 | frappe.reload_doc('it_management', 'doctype', 'it_ticket_type') 17 | 18 | for name in ticket_types: 19 | try: 20 | itt = frappe.get_doc({ 21 | "doctype": "IT Ticket Type", 22 | "title": name 23 | }) 24 | itt.save() 25 | except frappe.DuplicateEntryError: 26 | continue 27 | -------------------------------------------------------------------------------- /it_management/patches/0_2/solution_type.py: -------------------------------------------------------------------------------- 1 | """ 2 | Create a Solution Type for each option of the former Selection. 3 | Reason: Solution -> Type changed from Select to Link. 4 | """ 5 | import frappe 6 | 7 | 8 | def execute(): 9 | solution_types = [ 10 | "Network", 11 | "Prozess", 12 | "Backup", 13 | "Industry related", 14 | "Other" 15 | ] 16 | 17 | frappe.reload_doc('it_management', 'doctype', 'solution_type') 18 | 19 | for name in solution_types: 20 | try: 21 | solution_type = frappe.get_doc({ 22 | "doctype": "Solution Type", 23 | "title": name 24 | }) 25 | solution_type.save() 26 | except frappe.DuplicateEntryError: 27 | continue 28 | -------------------------------------------------------------------------------- /it_management/patches/0_3/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyf-de/erpnext_it-management/84d2cb4c8148d4175d8ac39d94fb6bfaa3da5188/it_management/patches/0_3/__init__.py -------------------------------------------------------------------------------- /it_management/patches/0_3/task_checklist.py: -------------------------------------------------------------------------------- 1 | """Migrate Task Checklist to IT Management Table.""" 2 | import frappe 3 | from frappe.exceptions import DoesNotExistError 4 | 5 | 6 | def execute(): 7 | try: 8 | frappe.get_last_doc("Task Checklist") 9 | except DoesNotExistError: 10 | return 11 | 12 | filters = {'parenttype':("=", "Task")} 13 | task_checklist = frappe.get_all("Task Checklist", filters=filters, fields="*") 14 | 15 | for checklist_row in task_checklist: 16 | try: 17 | task = frappe.get_doc("Task", checklist_row['parent']) 18 | except DoesNotExistError: 19 | continue 20 | 21 | task.append('it_management_table', { 22 | 'idx': checklist_row['idx'], 23 | 'note': checklist_row['custom'], 24 | 'dynamic_type': 'Configuration Item', 25 | 'dynamic_name': checklist_row['configuration_item'], 26 | 'checked': checklist_row['check'] 27 | }) 28 | task.save() 29 | -------------------------------------------------------------------------------- /it_management/patches/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyf-de/erpnext_it-management/84d2cb4c8148d4175d8ac39d94fb6bfaa3da5188/it_management/patches/__init__.py -------------------------------------------------------------------------------- /it_management/public/js/communication.js: -------------------------------------------------------------------------------- 1 | frappe.ui.form.on('Communication', { 2 | refresh: function (frm) { 3 | cur_frm.add_custom_button('IT Ticket', function () { frm.trigger('make_ticket') }, 'Make'); 4 | }, 5 | make_ticket: function (frm) { 6 | let options = { 7 | 'doctype': 'IT Ticket', 8 | 'subject': frm.doc.subject, 9 | 'description': frm.doc.content, 10 | }; 11 | if ((frm.doc.reference_doctype) && (frm.doc.reference_name)) { 12 | if (frm.doc.reference_doctype === 'Customer') { 13 | options['customer'] = frm.get_field('reference_name').get_value(); 14 | } 15 | if (frm.doc.reference_doctype === 'Project') { 16 | options['project'] = frm.get_field('reference_name').get_value(); 17 | } 18 | if (frm.doc.reference_doctype === 'Task') { 19 | options['task'] = frm.get_field('reference_name').get_value(); 20 | } 21 | } 22 | 23 | frappe.db.insert(options).then((it_ticket) => { 24 | frappe.call({ 25 | method: 'frappe.email.relink', 26 | args: { 27 | 'name': frm.doc.name, 28 | 'reference_doctype': 'IT Ticket', 29 | 'reference_name': it_ticket.name 30 | }, 31 | callback: function () { 32 | frm.refresh(); 33 | } 34 | }); 35 | 36 | frm.timeline.insert_comment('Comment', `${it_ticket.doctype} ${it_ticket.name} created.`); 38 | }); 39 | } 40 | }); 41 | -------------------------------------------------------------------------------- /it_management/public/js/issue.js: -------------------------------------------------------------------------------- 1 | frappe.ui.form.on('Issue', { 2 | refresh: function (frm) { 3 | cur_frm.add_custom_button('IT Ticket', function () { frm.trigger('make_ticket') }, 'Make'); 4 | }, 5 | make_ticket: function (frm) { 6 | let options = { 7 | 'doctype': 'IT Ticket', 8 | 'subject': frm.get_field('subject').get_value(), 9 | 'description': frm.get_field('description').get_value(), 10 | 'project': frm.get_field('project').get_value(), 11 | 'priority': frm.get_field('priority').get_value(), 12 | 'customer': frm.get_field('customer').get_value(), 13 | 'contact': frm.get_field('contact').get_value(), 14 | }; 15 | 16 | frappe.db.insert(options).then((it_ticket) => { 17 | frappe.call({ 18 | method: "it_management.it_management.doctype.it_ticket.it_ticket.relink_email", 19 | args: { 20 | "doctype": "Issue", 21 | "name": frm.doc.name, 22 | "it_ticket": it_ticket.name, 23 | } 24 | }).then(() => frm.refresh()); 25 | 26 | frappe.show_alert({ 27 | indicator: 'green', 28 | message: __(`IT Ticket ${it_ticket.name} created.`), 29 | }).click(() => { 30 | frappe.set_route('Form', 'IT Ticket', it_ticket.name) 31 | }); 32 | 33 | frm.timeline.insert_comment('Comment', `${it_ticket.doctype} ${it_ticket.name} created.`); 35 | }); 36 | } 37 | }); 38 | -------------------------------------------------------------------------------- /it_management/public/js/task.js: -------------------------------------------------------------------------------- 1 | frappe.ui.form.on('Task', { 2 | onload: function (frm) { 3 | // restrict Dynamic Links to IT Mnagement 4 | frm.set_query('dynamic_type', 'it_management_table', function () { 5 | return { 6 | 'filters': { 7 | 'module': 'IT Management', 8 | 'istable': 0, 9 | } 10 | }; 11 | }); 12 | }, 13 | refresh: function (frm) { 14 | cur_frm.add_custom_button('IT Ticket', function () { frm.trigger('make_ticket') }, 'Make'); 15 | }, 16 | make_ticket: function (frm) { 17 | let options = { 18 | 'doctype': 'IT Ticket', 19 | 'subject': frm.get_field('subject').get_value(), 20 | 'description': frm.get_field('description').get_value(), 21 | 'priority': frm.get_field('priority').get_value(), 22 | 'task': frm.doc.name, 23 | 'project': frm.get_field('project').get_value(), 24 | }; 25 | 26 | frappe.db.insert(options).then((it_ticket) => { 27 | frappe.call({ 28 | method: "it_management.it_management.doctype.it_ticket.it_ticket.relink_email", 29 | args: { 30 | "doctype": "Task", 31 | "name": frm.doc.name, 32 | "it_ticket": it_ticket.name, 33 | } 34 | }).then(() => frm.refresh()); 35 | 36 | frappe.show_alert({ 37 | indicator: 'green', 38 | message: __(`IT Ticket ${it_ticket.name} created.`), 39 | }).click(() => { 40 | frappe.set_route('Form', 'IT Ticket', it_ticket.name) 41 | }); 42 | 43 | frm.timeline.insert_comment('Comment', `${it_ticket.doctype} ${it_ticket.name} created.`); 45 | }); 46 | } 47 | }); 48 | -------------------------------------------------------------------------------- /it_management/templates/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyf-de/erpnext_it-management/84d2cb4c8148d4175d8ac39d94fb6bfaa3da5188/it_management/templates/__init__.py -------------------------------------------------------------------------------- /it_management/templates/pages/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyf-de/erpnext_it-management/84d2cb4c8148d4175d8ac39d94fb6bfaa3da5188/it_management/templates/pages/__init__.py -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | frappe -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from setuptools import setup, find_packages 3 | import re, ast 4 | 5 | try: # for pip >= 10 6 | from pip._internal.req import parse_requirements 7 | except ImportError: # for pip <= 9.0.3 8 | from pip.req import parse_requirements 9 | 10 | # get version from __version__ variable in it_management/__init__.py 11 | _version_re = re.compile(r'__version__\s+=\s+(.*)') 12 | 13 | with open('it_management/__init__.py', 'rb') as f: 14 | version = str(ast.literal_eval(_version_re.search( 15 | f.read().decode('utf-8')).group(1))) 16 | 17 | requirements = parse_requirements("requirements.txt", session="") 18 | 19 | setup( 20 | name='it_management', 21 | version=version, 22 | description='Management von IT-Bausteinen. Hierzu gehören', 23 | author='IT-Geräte und IT-Lösungen wie Server, Rechner, Netzwerke und E-Mailserver sowie auch Backups,', 24 | author_email='Dienstleistungsverträge, Accounts und Internetleistungen.info@tueit.de', 25 | packages=find_packages(), 26 | zip_safe=False, 27 | include_package_data=True, 28 | install_requires=[str(ir.req) for ir in requirements], 29 | dependency_links=[str(ir._link) for ir in requirements if ir._link] 30 | ) 31 | --------------------------------------------------------------------------------