mirror of
https://github.com/itsdave-de/msp.git
synced 2025-05-06 07:25:13 +02:00
initial commit
This commit is contained in:
commit
4f7b75dbe5
6
.gitignore
vendored
Normal file
6
.gitignore
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
.DS_Store
|
||||
*.pyc
|
||||
*.egg-info
|
||||
*.swp
|
||||
tags
|
||||
msp/docs/current
|
18
MANIFEST.in
Normal file
18
MANIFEST.in
Normal file
@ -0,0 +1,18 @@
|
||||
include MANIFEST.in
|
||||
include requirements.txt
|
||||
include *.json
|
||||
include *.md
|
||||
include *.py
|
||||
include *.txt
|
||||
recursive-include msp *.css
|
||||
recursive-include msp *.csv
|
||||
recursive-include msp *.html
|
||||
recursive-include msp *.ico
|
||||
recursive-include msp *.js
|
||||
recursive-include msp *.json
|
||||
recursive-include msp *.md
|
||||
recursive-include msp *.png
|
||||
recursive-include msp *.py
|
||||
recursive-include msp *.svg
|
||||
recursive-include msp *.txt
|
||||
recursive-exclude msp *.pyc
|
7
README.md
Normal file
7
README.md
Normal file
@ -0,0 +1,7 @@
|
||||
## MSP
|
||||
|
||||
App for Managed Service Providers
|
||||
|
||||
#### License
|
||||
|
||||
GPLv3# msp
|
1
license.txt
Normal file
1
license.txt
Normal file
@ -0,0 +1 @@
|
||||
License: GPLv3
|
5
msp/__init__.py
Normal file
5
msp/__init__.py
Normal file
@ -0,0 +1,5 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
__version__ = '0.0.1'
|
||||
|
0
msp/config/__init__.py
Normal file
0
msp/config/__init__.py
Normal file
14
msp/config/desktop.py
Normal file
14
msp/config/desktop.py
Normal file
@ -0,0 +1,14 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
from frappe import _
|
||||
|
||||
def get_data():
|
||||
return [
|
||||
{
|
||||
"module_name": "MSP",
|
||||
"color": "grey",
|
||||
"icon": "octicon octicon-rocket",
|
||||
"type": "module",
|
||||
"label": _("MSP")
|
||||
}
|
||||
]
|
11
msp/config/docs.py
Normal file
11
msp/config/docs.py
Normal file
@ -0,0 +1,11 @@
|
||||
"""
|
||||
Configuration for docs
|
||||
"""
|
||||
|
||||
# source_link = "https://github.com/[org_name]/msp"
|
||||
# docs_base_url = "https://[org_name].github.io/msp"
|
||||
# headline = "App that does everything"
|
||||
# sub_heading = "Yes, you got that right the first time, everything"
|
||||
|
||||
def get_context(context):
|
||||
context.brand_html = "MSP"
|
95
msp/config/msp.py
Normal file
95
msp/config/msp.py
Normal file
@ -0,0 +1,95 @@
|
||||
from __future__ import unicode_literals
|
||||
from frappe import _
|
||||
|
||||
|
||||
|
||||
def get_data():
|
||||
return [
|
||||
{
|
||||
"label": _("Objects"),
|
||||
"items": [
|
||||
{
|
||||
"type": "doctype",
|
||||
"name": "IT Object",
|
||||
"label": _("IT Object"),
|
||||
"description": _("IT Object")
|
||||
},
|
||||
{
|
||||
"type": "doctype",
|
||||
"name": "IP Network",
|
||||
"label": _("IP Network"),
|
||||
"description": _("IP Network")
|
||||
},
|
||||
{
|
||||
"type": "doctype",
|
||||
"name": "IP Address",
|
||||
"label": _("IP Address"),
|
||||
"description": _("IP Address")
|
||||
},
|
||||
{
|
||||
"type": "doctype",
|
||||
"name": "IT User Account",
|
||||
"label": _("IT User Account"),
|
||||
"description": _("IT User Account")
|
||||
},
|
||||
{
|
||||
"type": "doctype",
|
||||
"name": "IT Backup",
|
||||
"label": _("IT Backup"),
|
||||
"description": _("IT Backup")
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": _("Master Data"),
|
||||
"items": [
|
||||
{
|
||||
"type": "doctype",
|
||||
"name": "IT Landscape",
|
||||
"label": _("IT Landscape"),
|
||||
"description": _("IT Landscape")
|
||||
},
|
||||
{
|
||||
"type": "doctype",
|
||||
"name": "IT Object Type",
|
||||
"label": _("IT Object Type"),
|
||||
"description": _("IT Object Type")
|
||||
},
|
||||
{
|
||||
"type": "doctype",
|
||||
"name": "IT Contract",
|
||||
"label": _("IT Contract"),
|
||||
"description": _("IT Contract")
|
||||
},
|
||||
{
|
||||
"type": "doctype",
|
||||
"name": "IT Contract Type",
|
||||
"label": _("IT Contract Type"),
|
||||
"description": _("IT Contract Type")
|
||||
},
|
||||
{
|
||||
"type": "doctype",
|
||||
"name": "IT User Account Type",
|
||||
"label": _("IT User Account Type"),
|
||||
"description": _("IT User Account Type")
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": _("Process Management"),
|
||||
"items": [
|
||||
{
|
||||
"type": "doctype",
|
||||
"name": "IT Checklist",
|
||||
"label": _("IT Checklist"),
|
||||
"description": _("IT Checklist")
|
||||
},
|
||||
{
|
||||
"type": "doctype",
|
||||
"name": "IT Checklist Template",
|
||||
"label": _("IT Checklist Template"),
|
||||
"description": _("IT Checklist Template")
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
129
msp/hooks.py
Normal file
129
msp/hooks.py
Normal file
@ -0,0 +1,129 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
from . import __version__ as app_version
|
||||
|
||||
app_name = "msp"
|
||||
app_title = "MSP"
|
||||
app_publisher = "itsdave GmbH"
|
||||
app_description = "App for Managed Service Providers"
|
||||
app_icon = "octicon octicon-rocket"
|
||||
app_color = "grey"
|
||||
app_email = "dev@itsdave.de"
|
||||
app_license = "GPLv3"
|
||||
|
||||
# Includes in <head>
|
||||
# ------------------
|
||||
|
||||
# include js, css files in header of desk.html
|
||||
# app_include_css = "/assets/msp/css/msp.css"
|
||||
# app_include_js = "/assets/msp/js/msp.js"
|
||||
|
||||
# include js, css files in header of web template
|
||||
# web_include_css = "/assets/msp/css/msp.css"
|
||||
# web_include_js = "/assets/msp/js/msp.js"
|
||||
|
||||
# include js in page
|
||||
# page_js = {"page" : "public/js/file.js"}
|
||||
|
||||
# include js in doctype views
|
||||
# doctype_js = {"doctype" : "public/js/doctype.js"}
|
||||
# doctype_list_js = {"doctype" : "public/js/doctype_list.js"}
|
||||
# doctype_tree_js = {"doctype" : "public/js/doctype_tree.js"}
|
||||
# doctype_calendar_js = {"doctype" : "public/js/doctype_calendar.js"}
|
||||
|
||||
# Home Pages
|
||||
# ----------
|
||||
|
||||
# application home page (will override Website Settings)
|
||||
# home_page = "login"
|
||||
|
||||
# website user home page (by Role)
|
||||
# role_home_page = {
|
||||
# "Role": "home_page"
|
||||
# }
|
||||
|
||||
# Website user home page (by function)
|
||||
# get_website_user_home_page = "msp.utils.get_home_page"
|
||||
|
||||
# Generators
|
||||
# ----------
|
||||
|
||||
# automatically create page for each record of this doctype
|
||||
# website_generators = ["Web Page"]
|
||||
|
||||
# Installation
|
||||
# ------------
|
||||
|
||||
# before_install = "msp.install.before_install"
|
||||
# after_install = "msp.install.after_install"
|
||||
|
||||
# Desk Notifications
|
||||
# ------------------
|
||||
# See frappe.core.notifications.get_notification_config
|
||||
|
||||
# notification_config = "msp.notifications.get_notification_config"
|
||||
|
||||
# Permissions
|
||||
# -----------
|
||||
# Permissions evaluated in scripted ways
|
||||
|
||||
# permission_query_conditions = {
|
||||
# "Event": "frappe.desk.doctype.event.event.get_permission_query_conditions",
|
||||
# }
|
||||
#
|
||||
# has_permission = {
|
||||
# "Event": "frappe.desk.doctype.event.event.has_permission",
|
||||
# }
|
||||
|
||||
# Document Events
|
||||
# ---------------
|
||||
# Hook on document methods and events
|
||||
|
||||
# doc_events = {
|
||||
# "*": {
|
||||
# "on_update": "method",
|
||||
# "on_cancel": "method",
|
||||
# "on_trash": "method"
|
||||
# }
|
||||
# }
|
||||
|
||||
# Scheduled Tasks
|
||||
# ---------------
|
||||
|
||||
# scheduler_events = {
|
||||
# "all": [
|
||||
# "msp.tasks.all"
|
||||
# ],
|
||||
# "daily": [
|
||||
# "msp.tasks.daily"
|
||||
# ],
|
||||
# "hourly": [
|
||||
# "msp.tasks.hourly"
|
||||
# ],
|
||||
# "weekly": [
|
||||
# "msp.tasks.weekly"
|
||||
# ]
|
||||
# "monthly": [
|
||||
# "msp.tasks.monthly"
|
||||
# ]
|
||||
# }
|
||||
|
||||
# Testing
|
||||
# -------
|
||||
|
||||
# before_tests = "msp.install.before_tests"
|
||||
|
||||
# Overriding Methods
|
||||
# ------------------------------
|
||||
#
|
||||
# override_whitelisted_methods = {
|
||||
# "frappe.desk.doctype.event.event.get_events": "msp.event.get_events"
|
||||
# }
|
||||
#
|
||||
# each overriding function accepts a `data` argument;
|
||||
# generated from the base implementation of the doctype dashboard,
|
||||
# along with any modifications made in other Frappe apps
|
||||
# override_doctype_dashboards = {
|
||||
# "Task": "msp.task.get_dashboard_data"
|
||||
# }
|
||||
|
1
msp/modules.txt
Normal file
1
msp/modules.txt
Normal file
@ -0,0 +1 @@
|
||||
MSP
|
0
msp/msp/__init__.py
Normal file
0
msp/msp/__init__.py
Normal file
0
msp/msp/doctype/__init__.py
Normal file
0
msp/msp/doctype/__init__.py
Normal file
0
msp/msp/doctype/ip_address/__init__.py
Normal file
0
msp/msp/doctype/ip_address/__init__.py
Normal file
8
msp/msp/doctype/ip_address/ip_address.js
Normal file
8
msp/msp/doctype/ip_address/ip_address.js
Normal file
@ -0,0 +1,8 @@
|
||||
// Copyright (c) 2021, itsdave GmbH and contributors
|
||||
// For license information, please see license.txt
|
||||
|
||||
frappe.ui.form.on('IP Address', {
|
||||
// refresh: function(frm) {
|
||||
|
||||
// }
|
||||
});
|
80
msp/msp/doctype/ip_address/ip_address.json
Normal file
80
msp/msp/doctype/ip_address/ip_address.json
Normal file
@ -0,0 +1,80 @@
|
||||
{
|
||||
"allow_rename": 1,
|
||||
"autoname": "format:IP-{ip_address}-{it_landscape}",
|
||||
"creation": "2021-03-18 03:15:11.235106",
|
||||
"doctype": "DocType",
|
||||
"editable_grid": 1,
|
||||
"engine": "InnoDB",
|
||||
"field_order": [
|
||||
"title",
|
||||
"ip_address",
|
||||
"protocol",
|
||||
"it_object",
|
||||
"ip_network",
|
||||
"it_landscape"
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"fieldname": "title",
|
||||
"fieldtype": "Data",
|
||||
"label": "Title"
|
||||
},
|
||||
{
|
||||
"fieldname": "ip_address",
|
||||
"fieldtype": "Data",
|
||||
"in_list_view": 1,
|
||||
"label": "IP Address",
|
||||
"reqd": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "protocol",
|
||||
"fieldtype": "Select",
|
||||
"label": "Protocol",
|
||||
"options": "IPv4\nIPv6"
|
||||
},
|
||||
{
|
||||
"fieldname": "it_object",
|
||||
"fieldtype": "Link",
|
||||
"label": "IT Object",
|
||||
"options": "IT Object"
|
||||
},
|
||||
{
|
||||
"fieldname": "it_landscape",
|
||||
"fieldtype": "Link",
|
||||
"label": "IT Landscape",
|
||||
"options": "IT Landscape",
|
||||
"reqd": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "ip_network",
|
||||
"fieldtype": "Link",
|
||||
"label": "IP Network",
|
||||
"options": "IP Network",
|
||||
"reqd": 1
|
||||
}
|
||||
],
|
||||
"modified": "2021-03-24 00:15:34.341218",
|
||||
"modified_by": "Administrator",
|
||||
"module": "MSP",
|
||||
"name": "IP Address",
|
||||
"owner": "Administrator",
|
||||
"permissions": [
|
||||
{
|
||||
"create": 1,
|
||||
"delete": 1,
|
||||
"email": 1,
|
||||
"export": 1,
|
||||
"print": 1,
|
||||
"read": 1,
|
||||
"report": 1,
|
||||
"role": "System Manager",
|
||||
"share": 1,
|
||||
"write": 1
|
||||
}
|
||||
],
|
||||
"quick_entry": 1,
|
||||
"sort_field": "modified",
|
||||
"sort_order": "DESC",
|
||||
"track_changes": 1,
|
||||
"track_views": 1
|
||||
}
|
10
msp/msp/doctype/ip_address/ip_address.py
Normal file
10
msp/msp/doctype/ip_address/ip_address.py
Normal file
@ -0,0 +1,10 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright (c) 2021, itsdave GmbH and contributors
|
||||
# For license information, please see license.txt
|
||||
|
||||
from __future__ import unicode_literals
|
||||
# import frappe
|
||||
from frappe.model.document import Document
|
||||
|
||||
class IPAddress(Document):
|
||||
pass
|
10
msp/msp/doctype/ip_address/test_ip_address.py
Normal file
10
msp/msp/doctype/ip_address/test_ip_address.py
Normal file
@ -0,0 +1,10 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright (c) 2021, itsdave GmbH and Contributors
|
||||
# See license.txt
|
||||
from __future__ import unicode_literals
|
||||
|
||||
# import frappe
|
||||
import unittest
|
||||
|
||||
class TestIPAddress(unittest.TestCase):
|
||||
pass
|
0
msp/msp/doctype/ip_network/__init__.py
Normal file
0
msp/msp/doctype/ip_network/__init__.py
Normal file
18
msp/msp/doctype/ip_network/ip_network.js
Normal file
18
msp/msp/doctype/ip_network/ip_network.js
Normal file
@ -0,0 +1,18 @@
|
||||
// Copyright (c) 2021, itsdave GmbH and contributors
|
||||
// For license information, please see license.txt
|
||||
|
||||
frappe.ui.form.on('IP Network', {
|
||||
|
||||
refresh(frm) {
|
||||
frm.add_custom_button('Calculate Network Data', function(){
|
||||
frappe.call({
|
||||
method: 'msp.msp.doctype.ip_network.ip_network.calculate_network_data',
|
||||
args: { doc: frm.doc.name },
|
||||
callback:function(r){
|
||||
console.log(r.message)
|
||||
frm.reload_doc()
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
});
|
174
msp/msp/doctype/ip_network/ip_network.json
Normal file
174
msp/msp/doctype/ip_network/ip_network.json
Normal file
@ -0,0 +1,174 @@
|
||||
{
|
||||
"allow_rename": 1,
|
||||
"autoname": "format:NET-{network_address}/{cidr_mask}-{it_landscape}",
|
||||
"creation": "2021-03-18 03:13:40.772882",
|
||||
"doctype": "DocType",
|
||||
"editable_grid": 1,
|
||||
"engine": "InnoDB",
|
||||
"field_order": [
|
||||
"network_address",
|
||||
"subnet_mask",
|
||||
"host_min",
|
||||
"host_max",
|
||||
"broadcast",
|
||||
"number_of_hosts",
|
||||
"column_break_4",
|
||||
"cidr_mask",
|
||||
"configuration_section",
|
||||
"default_gateway",
|
||||
"primary_dns",
|
||||
"secondary_dns",
|
||||
"column_break_13",
|
||||
"vlan",
|
||||
"dhcp_server",
|
||||
"1_to_1_nat_network_address",
|
||||
"aditional_data_section",
|
||||
"it_landscape",
|
||||
"description",
|
||||
"customer",
|
||||
"location"
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"fieldname": "description",
|
||||
"fieldtype": "Text Editor",
|
||||
"label": "Description"
|
||||
},
|
||||
{
|
||||
"fieldname": "network_address",
|
||||
"fieldtype": "Data",
|
||||
"in_list_view": 1,
|
||||
"label": "Network Address",
|
||||
"reqd": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "cidr_mask",
|
||||
"fieldtype": "Select",
|
||||
"in_list_view": 1,
|
||||
"label": "CIDR Mask",
|
||||
"options": "24\n25\n26\n27\n28\n29\n30\n31\n32",
|
||||
"reqd": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "subnet_mask",
|
||||
"fieldtype": "Data",
|
||||
"label": "Subnet Mask"
|
||||
},
|
||||
{
|
||||
"fieldname": "broadcast",
|
||||
"fieldtype": "Data",
|
||||
"label": "Broadcast",
|
||||
"read_only": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "host_min",
|
||||
"fieldtype": "Data",
|
||||
"label": "Host min",
|
||||
"read_only": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "host_max",
|
||||
"fieldtype": "Data",
|
||||
"label": "Host max",
|
||||
"read_only": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "number_of_hosts",
|
||||
"fieldtype": "Data",
|
||||
"label": "number of Hosts",
|
||||
"read_only": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "vlan",
|
||||
"fieldtype": "Data",
|
||||
"label": "VLAN"
|
||||
},
|
||||
{
|
||||
"fieldname": "default_gateway",
|
||||
"fieldtype": "Data",
|
||||
"label": "Default Gateway"
|
||||
},
|
||||
{
|
||||
"fieldname": "primary_dns",
|
||||
"fieldtype": "Data",
|
||||
"label": "Primary DNS"
|
||||
},
|
||||
{
|
||||
"fieldname": "secondary_dns",
|
||||
"fieldtype": "Data",
|
||||
"label": "Secondary DNS"
|
||||
},
|
||||
{
|
||||
"fieldname": "dhcp_server",
|
||||
"fieldtype": "Data",
|
||||
"label": "DHCP Server"
|
||||
},
|
||||
{
|
||||
"fieldname": "1_to_1_nat_network_address",
|
||||
"fieldtype": "Data",
|
||||
"label": "1 to 1 NAT Network Address"
|
||||
},
|
||||
{
|
||||
"fieldname": "customer",
|
||||
"fieldtype": "Link",
|
||||
"label": "Customer",
|
||||
"options": "Customer"
|
||||
},
|
||||
{
|
||||
"fieldname": "it_landscape",
|
||||
"fieldtype": "Link",
|
||||
"in_list_view": 1,
|
||||
"label": "IT Landscape",
|
||||
"options": "IT Landscape",
|
||||
"reqd": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "location",
|
||||
"fieldtype": "Link",
|
||||
"label": "Location",
|
||||
"options": "Location"
|
||||
},
|
||||
{
|
||||
"fieldname": "column_break_4",
|
||||
"fieldtype": "Column Break"
|
||||
},
|
||||
{
|
||||
"fieldname": "configuration_section",
|
||||
"fieldtype": "Section Break",
|
||||
"label": "Configuration"
|
||||
},
|
||||
{
|
||||
"fieldname": "column_break_13",
|
||||
"fieldtype": "Column Break"
|
||||
},
|
||||
{
|
||||
"fieldname": "aditional_data_section",
|
||||
"fieldtype": "Section Break",
|
||||
"label": "Aditional Data"
|
||||
}
|
||||
],
|
||||
"modified": "2021-03-24 00:12:13.023565",
|
||||
"modified_by": "Administrator",
|
||||
"module": "MSP",
|
||||
"name": "IP Network",
|
||||
"owner": "Administrator",
|
||||
"permissions": [
|
||||
{
|
||||
"create": 1,
|
||||
"delete": 1,
|
||||
"email": 1,
|
||||
"export": 1,
|
||||
"print": 1,
|
||||
"read": 1,
|
||||
"report": 1,
|
||||
"role": "System Manager",
|
||||
"share": 1,
|
||||
"write": 1
|
||||
}
|
||||
],
|
||||
"quick_entry": 1,
|
||||
"sort_field": "modified",
|
||||
"sort_order": "DESC",
|
||||
"track_changes": 1,
|
||||
"track_views": 1
|
||||
}
|
24
msp/msp/doctype/ip_network/ip_network.py
Normal file
24
msp/msp/doctype/ip_network/ip_network.py
Normal file
@ -0,0 +1,24 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright (c) 2021, itsdave GmbH and contributors
|
||||
# For license information, please see license.txt
|
||||
|
||||
from __future__ import unicode_literals
|
||||
import frappe
|
||||
from ipaddress import IPv4Address, IPv4Network
|
||||
from frappe.model.document import Document
|
||||
|
||||
class IPNetwork(Document):
|
||||
pass
|
||||
|
||||
@frappe.whitelist()
|
||||
def calculate_network_data(doc):
|
||||
net_doc = frappe.get_doc("IP Network", doc)
|
||||
network = IPv4Network(net_doc.network_address + "/" + net_doc.cidr_mask)
|
||||
net_doc.host_min = str(min(list(network.hosts())))
|
||||
net_doc.host_max = str(max(list(network.hosts())))
|
||||
net_doc.number_of_hosts = len(list(network.hosts()))
|
||||
net_doc.subnet_mask = str(network.netmask)
|
||||
net_doc.broadcast = str(network.broadcast_address)
|
||||
net_doc.save()
|
||||
return "please refresh"
|
||||
|
14
msp/msp/doctype/ip_network/ip_network_dashboard.py
Normal file
14
msp/msp/doctype/ip_network/ip_network_dashboard.py
Normal file
@ -0,0 +1,14 @@
|
||||
from __future__ import unicode_literals
|
||||
from frappe import _
|
||||
|
||||
def get_data():
|
||||
return {
|
||||
'heatmap': False,
|
||||
'fieldname': 'ip_network',
|
||||
'transactions': [
|
||||
{
|
||||
'label': _('Objects'),
|
||||
'items': ['IP Address' ]
|
||||
}
|
||||
]
|
||||
}
|
10
msp/msp/doctype/ip_network/test_ip_network.py
Normal file
10
msp/msp/doctype/ip_network/test_ip_network.py
Normal file
@ -0,0 +1,10 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright (c) 2021, itsdave GmbH and Contributors
|
||||
# See license.txt
|
||||
from __future__ import unicode_literals
|
||||
|
||||
# import frappe
|
||||
import unittest
|
||||
|
||||
class TestIPNetwork(unittest.TestCase):
|
||||
pass
|
0
msp/msp/doctype/it_checklist/__init__.py
Normal file
0
msp/msp/doctype/it_checklist/__init__.py
Normal file
8
msp/msp/doctype/it_checklist/it_checklist.js
Normal file
8
msp/msp/doctype/it_checklist/it_checklist.js
Normal file
@ -0,0 +1,8 @@
|
||||
// Copyright (c) 2021, itsdave GmbH and contributors
|
||||
// For license information, please see license.txt
|
||||
|
||||
frappe.ui.form.on('IT Checklist', {
|
||||
// refresh: function(frm) {
|
||||
|
||||
// }
|
||||
});
|
60
msp/msp/doctype/it_checklist/it_checklist.json
Normal file
60
msp/msp/doctype/it_checklist/it_checklist.json
Normal file
@ -0,0 +1,60 @@
|
||||
{
|
||||
"autoname": "ITCL-.#####",
|
||||
"creation": "2021-03-18 02:30:47.686842",
|
||||
"doctype": "DocType",
|
||||
"editable_grid": 1,
|
||||
"engine": "InnoDB",
|
||||
"field_order": [
|
||||
"title",
|
||||
"customer",
|
||||
"it_landscape",
|
||||
"completed_on"
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"fieldname": "title",
|
||||
"fieldtype": "Data",
|
||||
"label": "Title"
|
||||
},
|
||||
{
|
||||
"fieldname": "customer",
|
||||
"fieldtype": "Link",
|
||||
"label": "Customer",
|
||||
"options": "Customer"
|
||||
},
|
||||
{
|
||||
"fieldname": "it_landscape",
|
||||
"fieldtype": "Link",
|
||||
"label": "IT Landscape",
|
||||
"options": "IT Landscape"
|
||||
},
|
||||
{
|
||||
"fieldname": "completed_on",
|
||||
"fieldtype": "Datetime",
|
||||
"label": "Completed on"
|
||||
}
|
||||
],
|
||||
"modified": "2021-03-18 02:30:47.686842",
|
||||
"modified_by": "Administrator",
|
||||
"module": "MSP",
|
||||
"name": "IT Checklist",
|
||||
"owner": "Administrator",
|
||||
"permissions": [
|
||||
{
|
||||
"create": 1,
|
||||
"delete": 1,
|
||||
"email": 1,
|
||||
"export": 1,
|
||||
"print": 1,
|
||||
"read": 1,
|
||||
"report": 1,
|
||||
"role": "System Manager",
|
||||
"share": 1,
|
||||
"write": 1
|
||||
}
|
||||
],
|
||||
"quick_entry": 1,
|
||||
"sort_field": "modified",
|
||||
"sort_order": "DESC",
|
||||
"track_changes": 1
|
||||
}
|
10
msp/msp/doctype/it_checklist/it_checklist.py
Normal file
10
msp/msp/doctype/it_checklist/it_checklist.py
Normal file
@ -0,0 +1,10 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright (c) 2021, itsdave GmbH and contributors
|
||||
# For license information, please see license.txt
|
||||
|
||||
from __future__ import unicode_literals
|
||||
# import frappe
|
||||
from frappe.model.document import Document
|
||||
|
||||
class ITChecklist(Document):
|
||||
pass
|
10
msp/msp/doctype/it_checklist/test_it_checklist.py
Normal file
10
msp/msp/doctype/it_checklist/test_it_checklist.py
Normal file
@ -0,0 +1,10 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright (c) 2021, itsdave GmbH and Contributors
|
||||
# See license.txt
|
||||
from __future__ import unicode_literals
|
||||
|
||||
# import frappe
|
||||
import unittest
|
||||
|
||||
class TestITChecklist(unittest.TestCase):
|
||||
pass
|
0
msp/msp/doctype/it_checklist_template/__init__.py
Normal file
0
msp/msp/doctype/it_checklist_template/__init__.py
Normal file
@ -0,0 +1,8 @@
|
||||
// Copyright (c) 2021, itsdave GmbH and contributors
|
||||
// For license information, please see license.txt
|
||||
|
||||
frappe.ui.form.on('IT Checklist Template', {
|
||||
// refresh: function(frm) {
|
||||
|
||||
// }
|
||||
});
|
@ -0,0 +1,40 @@
|
||||
{
|
||||
"autoname": "ITCLT-.###",
|
||||
"creation": "2021-03-18 02:27:40.328506",
|
||||
"doctype": "DocType",
|
||||
"editable_grid": 1,
|
||||
"engine": "InnoDB",
|
||||
"field_order": [
|
||||
"title"
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"fieldname": "title",
|
||||
"fieldtype": "Data",
|
||||
"label": "Title"
|
||||
}
|
||||
],
|
||||
"modified": "2021-03-18 02:27:40.328506",
|
||||
"modified_by": "Administrator",
|
||||
"module": "MSP",
|
||||
"name": "IT Checklist Template",
|
||||
"owner": "Administrator",
|
||||
"permissions": [
|
||||
{
|
||||
"create": 1,
|
||||
"delete": 1,
|
||||
"email": 1,
|
||||
"export": 1,
|
||||
"print": 1,
|
||||
"read": 1,
|
||||
"report": 1,
|
||||
"role": "System Manager",
|
||||
"share": 1,
|
||||
"write": 1
|
||||
}
|
||||
],
|
||||
"sort_field": "modified",
|
||||
"sort_order": "DESC",
|
||||
"title_field": "title",
|
||||
"track_changes": 1
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright (c) 2021, itsdave GmbH and contributors
|
||||
# For license information, please see license.txt
|
||||
|
||||
from __future__ import unicode_literals
|
||||
# import frappe
|
||||
from frappe.model.document import Document
|
||||
|
||||
class ITChecklistTemplate(Document):
|
||||
pass
|
@ -0,0 +1,10 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright (c) 2021, itsdave GmbH and Contributors
|
||||
# See license.txt
|
||||
from __future__ import unicode_literals
|
||||
|
||||
# import frappe
|
||||
import unittest
|
||||
|
||||
class TestITChecklistTemplate(unittest.TestCase):
|
||||
pass
|
0
msp/msp/doctype/it_contract/__init__.py
Normal file
0
msp/msp/doctype/it_contract/__init__.py
Normal file
8
msp/msp/doctype/it_contract/it_contract.js
Normal file
8
msp/msp/doctype/it_contract/it_contract.js
Normal file
@ -0,0 +1,8 @@
|
||||
// Copyright (c) 2021, itsdave GmbH and contributors
|
||||
// For license information, please see license.txt
|
||||
|
||||
frappe.ui.form.on('IT Contract', {
|
||||
// refresh: function(frm) {
|
||||
|
||||
// }
|
||||
});
|
62
msp/msp/doctype/it_contract/it_contract.json
Normal file
62
msp/msp/doctype/it_contract/it_contract.json
Normal file
@ -0,0 +1,62 @@
|
||||
{
|
||||
"autoname": "ITCON-.#####",
|
||||
"creation": "2021-03-18 02:54:42.727620",
|
||||
"doctype": "DocType",
|
||||
"editable_grid": 1,
|
||||
"engine": "InnoDB",
|
||||
"field_order": [
|
||||
"title",
|
||||
"customer",
|
||||
"it_landscape",
|
||||
"it_contract_type"
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"fieldname": "title",
|
||||
"fieldtype": "Data",
|
||||
"label": "Title"
|
||||
},
|
||||
{
|
||||
"fieldname": "customer",
|
||||
"fieldtype": "Link",
|
||||
"label": "Customer",
|
||||
"options": "Customer"
|
||||
},
|
||||
{
|
||||
"fieldname": "it_landscape",
|
||||
"fieldtype": "Link",
|
||||
"label": "IT Landscape",
|
||||
"options": "IT Landscape"
|
||||
},
|
||||
{
|
||||
"fieldname": "it_contract_type",
|
||||
"fieldtype": "Link",
|
||||
"label": "IT Contract Type",
|
||||
"options": "IT Contract Type"
|
||||
}
|
||||
],
|
||||
"modified": "2021-03-23 21:04:54.623670",
|
||||
"modified_by": "Administrator",
|
||||
"module": "MSP",
|
||||
"name": "IT Contract",
|
||||
"owner": "Administrator",
|
||||
"permissions": [
|
||||
{
|
||||
"create": 1,
|
||||
"delete": 1,
|
||||
"email": 1,
|
||||
"export": 1,
|
||||
"print": 1,
|
||||
"read": 1,
|
||||
"report": 1,
|
||||
"role": "System Manager",
|
||||
"share": 1,
|
||||
"write": 1
|
||||
}
|
||||
],
|
||||
"quick_entry": 1,
|
||||
"sort_field": "modified",
|
||||
"sort_order": "DESC",
|
||||
"title_field": "title",
|
||||
"track_changes": 1
|
||||
}
|
10
msp/msp/doctype/it_contract/it_contract.py
Normal file
10
msp/msp/doctype/it_contract/it_contract.py
Normal file
@ -0,0 +1,10 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright (c) 2021, itsdave GmbH and contributors
|
||||
# For license information, please see license.txt
|
||||
|
||||
from __future__ import unicode_literals
|
||||
# import frappe
|
||||
from frappe.model.document import Document
|
||||
|
||||
class ITContract(Document):
|
||||
pass
|
10
msp/msp/doctype/it_contract/test_it_contract.py
Normal file
10
msp/msp/doctype/it_contract/test_it_contract.py
Normal file
@ -0,0 +1,10 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright (c) 2021, itsdave GmbH and Contributors
|
||||
# See license.txt
|
||||
from __future__ import unicode_literals
|
||||
|
||||
# import frappe
|
||||
import unittest
|
||||
|
||||
class TestITContract(unittest.TestCase):
|
||||
pass
|
0
msp/msp/doctype/it_contract_type/__init__.py
Normal file
0
msp/msp/doctype/it_contract_type/__init__.py
Normal file
8
msp/msp/doctype/it_contract_type/it_contract_type.js
Normal file
8
msp/msp/doctype/it_contract_type/it_contract_type.js
Normal file
@ -0,0 +1,8 @@
|
||||
// Copyright (c) 2021, itsdave GmbH and contributors
|
||||
// For license information, please see license.txt
|
||||
|
||||
frappe.ui.form.on('IT Contract Type', {
|
||||
// refresh: function(frm) {
|
||||
|
||||
// }
|
||||
});
|
40
msp/msp/doctype/it_contract_type/it_contract_type.json
Normal file
40
msp/msp/doctype/it_contract_type/it_contract_type.json
Normal file
@ -0,0 +1,40 @@
|
||||
{
|
||||
"autoname": "field:title",
|
||||
"creation": "2021-03-23 21:03:02.275205",
|
||||
"doctype": "DocType",
|
||||
"editable_grid": 1,
|
||||
"engine": "InnoDB",
|
||||
"field_order": [
|
||||
"title"
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"fieldname": "title",
|
||||
"fieldtype": "Data",
|
||||
"label": "Title",
|
||||
"unique": 1
|
||||
}
|
||||
],
|
||||
"modified": "2021-03-23 21:03:02.275205",
|
||||
"modified_by": "Administrator",
|
||||
"module": "MSP",
|
||||
"name": "IT Contract Type",
|
||||
"owner": "Administrator",
|
||||
"permissions": [
|
||||
{
|
||||
"create": 1,
|
||||
"delete": 1,
|
||||
"email": 1,
|
||||
"export": 1,
|
||||
"print": 1,
|
||||
"read": 1,
|
||||
"report": 1,
|
||||
"role": "System Manager",
|
||||
"share": 1,
|
||||
"write": 1
|
||||
}
|
||||
],
|
||||
"sort_field": "modified",
|
||||
"sort_order": "DESC",
|
||||
"track_changes": 1
|
||||
}
|
10
msp/msp/doctype/it_contract_type/it_contract_type.py
Normal file
10
msp/msp/doctype/it_contract_type/it_contract_type.py
Normal file
@ -0,0 +1,10 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright (c) 2021, itsdave GmbH and contributors
|
||||
# For license information, please see license.txt
|
||||
|
||||
from __future__ import unicode_literals
|
||||
# import frappe
|
||||
from frappe.model.document import Document
|
||||
|
||||
class ITContractType(Document):
|
||||
pass
|
10
msp/msp/doctype/it_contract_type/test_it_contract_type.py
Normal file
10
msp/msp/doctype/it_contract_type/test_it_contract_type.py
Normal file
@ -0,0 +1,10 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright (c) 2021, itsdave GmbH and Contributors
|
||||
# See license.txt
|
||||
from __future__ import unicode_literals
|
||||
|
||||
# import frappe
|
||||
import unittest
|
||||
|
||||
class TestITContractType(unittest.TestCase):
|
||||
pass
|
0
msp/msp/doctype/it_landscape/__init__.py
Normal file
0
msp/msp/doctype/it_landscape/__init__.py
Normal file
8
msp/msp/doctype/it_landscape/it_landscape.js
Normal file
8
msp/msp/doctype/it_landscape/it_landscape.js
Normal file
@ -0,0 +1,8 @@
|
||||
// Copyright (c) 2021, itsdave GmbH and contributors
|
||||
// For license information, please see license.txt
|
||||
|
||||
frappe.ui.form.on('IT Landscape', {
|
||||
// refresh: function(frm) {
|
||||
|
||||
// }
|
||||
});
|
68
msp/msp/doctype/it_landscape/it_landscape.json
Normal file
68
msp/msp/doctype/it_landscape/it_landscape.json
Normal file
@ -0,0 +1,68 @@
|
||||
{
|
||||
"allow_rename": 1,
|
||||
"autoname": "field:abbreviation",
|
||||
"creation": "2021-03-18 01:39:06.814363",
|
||||
"doctype": "DocType",
|
||||
"editable_grid": 1,
|
||||
"engine": "InnoDB",
|
||||
"field_order": [
|
||||
"title",
|
||||
"abbreviation",
|
||||
"customer",
|
||||
"description"
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"fieldname": "title",
|
||||
"fieldtype": "Data",
|
||||
"in_list_view": 1,
|
||||
"in_standard_filter": 1,
|
||||
"label": "Title"
|
||||
},
|
||||
{
|
||||
"fieldname": "customer",
|
||||
"fieldtype": "Link",
|
||||
"in_list_view": 1,
|
||||
"in_standard_filter": 1,
|
||||
"label": "Customer",
|
||||
"options": "Customer"
|
||||
},
|
||||
{
|
||||
"fieldname": "description",
|
||||
"fieldtype": "Text Editor",
|
||||
"label": "Description"
|
||||
},
|
||||
{
|
||||
"fieldname": "abbreviation",
|
||||
"fieldtype": "Data",
|
||||
"in_list_view": 1,
|
||||
"in_standard_filter": 1,
|
||||
"label": "Abbreviation",
|
||||
"unique": 1
|
||||
}
|
||||
],
|
||||
"modified": "2021-03-24 00:34:10.605746",
|
||||
"modified_by": "Administrator",
|
||||
"module": "MSP",
|
||||
"name": "IT Landscape",
|
||||
"owner": "Administrator",
|
||||
"permissions": [
|
||||
{
|
||||
"create": 1,
|
||||
"delete": 1,
|
||||
"email": 1,
|
||||
"export": 1,
|
||||
"print": 1,
|
||||
"read": 1,
|
||||
"report": 1,
|
||||
"role": "System Manager",
|
||||
"share": 1,
|
||||
"write": 1
|
||||
}
|
||||
],
|
||||
"quick_entry": 1,
|
||||
"sort_field": "modified",
|
||||
"sort_order": "DESC",
|
||||
"track_changes": 1,
|
||||
"track_views": 1
|
||||
}
|
27
msp/msp/doctype/it_landscape/it_landscape.py
Normal file
27
msp/msp/doctype/it_landscape/it_landscape.py
Normal file
@ -0,0 +1,27 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright (c) 2021, itsdave GmbH and contributors
|
||||
# For license information, please see license.txt
|
||||
|
||||
from __future__ import unicode_literals
|
||||
import frappe
|
||||
from frappe.model.document import Document
|
||||
|
||||
class ITLandscape(Document):
|
||||
pass
|
||||
|
||||
def get_timeline_data(doctype, name):
|
||||
"""views for linked objects"""
|
||||
return dict(frappe.db.sql("""select unix_timestamp(l.creation), sum(1) as `count`
|
||||
from `tabView Log` as l where
|
||||
(`reference_doctype` = "IT Object" and `reference_name` in (select `name` from `tabIT Object` where `it_landscape` = %s))
|
||||
or
|
||||
(`reference_doctype` = "IP Network" and `reference_name` in (select `name` from `tabIP Network` where `it_landscape` = %s))
|
||||
or
|
||||
(`reference_doctype` = "IP Address" and `reference_name` in (select `name` from `tabIP Address` where `it_landscape` = %s))
|
||||
or
|
||||
(`reference_doctype` = "IT User Account" and `reference_name` in (select `name` from `tabIT User Account` where `it_landscape` = %s))
|
||||
or
|
||||
(`reference_doctype` = "IT Landscape" and `reference_name` = %s)
|
||||
and
|
||||
creation > date_sub(curdate(), interval 1 year)
|
||||
group by date(l.creation);""", (name,name,name,name,name)))
|
19
msp/msp/doctype/it_landscape/it_landscape_dashboard.py
Normal file
19
msp/msp/doctype/it_landscape/it_landscape_dashboard.py
Normal file
@ -0,0 +1,19 @@
|
||||
from __future__ import unicode_literals
|
||||
from frappe import _
|
||||
|
||||
def get_data():
|
||||
return {
|
||||
'heatmap': True,
|
||||
'heatmap_message': _('Based on Views of linked Objects and this Landscape.'),
|
||||
'fieldname': 'it_landscape',
|
||||
'transactions': [
|
||||
{
|
||||
'label': _('Objects'),
|
||||
'items': ['IT Object', 'IT User Account', 'IP Network', 'IP Address' ]
|
||||
},
|
||||
{
|
||||
'label': _('Processes'),
|
||||
'items': ['IT Contract']
|
||||
}
|
||||
]
|
||||
}
|
10
msp/msp/doctype/it_landscape/test_it_landscape.py
Normal file
10
msp/msp/doctype/it_landscape/test_it_landscape.py
Normal file
@ -0,0 +1,10 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright (c) 2021, itsdave GmbH and Contributors
|
||||
# See license.txt
|
||||
from __future__ import unicode_literals
|
||||
|
||||
# import frappe
|
||||
import unittest
|
||||
|
||||
class TestITLandscape(unittest.TestCase):
|
||||
pass
|
0
msp/msp/doctype/it_object/__init__.py
Normal file
0
msp/msp/doctype/it_object/__init__.py
Normal file
8
msp/msp/doctype/it_object/it_object.js
Normal file
8
msp/msp/doctype/it_object/it_object.js
Normal file
@ -0,0 +1,8 @@
|
||||
// Copyright (c) 2021, itsdave GmbH and contributors
|
||||
// For license information, please see license.txt
|
||||
|
||||
frappe.ui.form.on('IT Object', {
|
||||
// refresh: function(frm) {
|
||||
|
||||
// }
|
||||
});
|
149
msp/msp/doctype/it_object/it_object.json
Normal file
149
msp/msp/doctype/it_object/it_object.json
Normal file
@ -0,0 +1,149 @@
|
||||
{
|
||||
"autoname": "ITO-.#####",
|
||||
"creation": "2021-03-18 01:33:25.740040",
|
||||
"doctype": "DocType",
|
||||
"editable_grid": 1,
|
||||
"engine": "InnoDB",
|
||||
"field_order": [
|
||||
"overview_section",
|
||||
"title",
|
||||
"main_ip",
|
||||
"link",
|
||||
"status",
|
||||
"column_break_4",
|
||||
"type",
|
||||
"item",
|
||||
"customer",
|
||||
"it_landscape",
|
||||
"location",
|
||||
"description_section",
|
||||
"description",
|
||||
"image",
|
||||
"network_config_section",
|
||||
"ip_adresses"
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"fieldname": "title",
|
||||
"fieldtype": "Data",
|
||||
"in_standard_filter": 1,
|
||||
"label": "Title"
|
||||
},
|
||||
{
|
||||
"fieldname": "description",
|
||||
"fieldtype": "Text Editor",
|
||||
"label": "Description"
|
||||
},
|
||||
{
|
||||
"fieldname": "item",
|
||||
"fieldtype": "Link",
|
||||
"label": "Item",
|
||||
"options": "Item"
|
||||
},
|
||||
{
|
||||
"fieldname": "network_config_section",
|
||||
"fieldtype": "Section Break",
|
||||
"label": "Advanced Network Config"
|
||||
},
|
||||
{
|
||||
"fieldname": "overview_section",
|
||||
"fieldtype": "Section Break",
|
||||
"label": "Overview"
|
||||
},
|
||||
{
|
||||
"fieldname": "type",
|
||||
"fieldtype": "Link",
|
||||
"label": "Type",
|
||||
"options": "IT Object Type"
|
||||
},
|
||||
{
|
||||
"fieldname": "description_section",
|
||||
"fieldtype": "Section Break",
|
||||
"label": "Description"
|
||||
},
|
||||
{
|
||||
"fieldname": "main_ip",
|
||||
"fieldtype": "Link",
|
||||
"in_list_view": 1,
|
||||
"in_standard_filter": 1,
|
||||
"label": "Main IP Address",
|
||||
"options": "IP Address"
|
||||
},
|
||||
{
|
||||
"fieldname": "location",
|
||||
"fieldtype": "Link",
|
||||
"label": "Location",
|
||||
"options": "Location"
|
||||
},
|
||||
{
|
||||
"fieldname": "it_landscape",
|
||||
"fieldtype": "Link",
|
||||
"in_list_view": 1,
|
||||
"in_standard_filter": 1,
|
||||
"label": "IT Landscape",
|
||||
"options": "IT Landscape"
|
||||
},
|
||||
{
|
||||
"fieldname": "column_break_4",
|
||||
"fieldtype": "Column Break"
|
||||
},
|
||||
{
|
||||
"fieldname": "image",
|
||||
"fieldtype": "Attach Image",
|
||||
"label": "Image"
|
||||
},
|
||||
{
|
||||
"fieldname": "status",
|
||||
"fieldtype": "Select",
|
||||
"in_list_view": 1,
|
||||
"in_standard_filter": 1,
|
||||
"label": "Status",
|
||||
"options": "in Production\nImplementation\nin Maintenance\nDecommissioned"
|
||||
},
|
||||
{
|
||||
"fieldname": "link",
|
||||
"fieldtype": "Link",
|
||||
"label": "Main Admin Account",
|
||||
"options": "IT User Account"
|
||||
},
|
||||
{
|
||||
"fieldname": "customer",
|
||||
"fieldtype": "Link",
|
||||
"label": "Customer",
|
||||
"options": "Customer"
|
||||
},
|
||||
{
|
||||
"fieldname": "ip_adresses",
|
||||
"fieldtype": "Table",
|
||||
"label": "IP Adresses",
|
||||
"options": "IT Object IP Address"
|
||||
}
|
||||
],
|
||||
"image_field": "image",
|
||||
"modified": "2021-03-23 21:28:29.467402",
|
||||
"modified_by": "Administrator",
|
||||
"module": "MSP",
|
||||
"name": "IT Object",
|
||||
"owner": "Administrator",
|
||||
"permissions": [
|
||||
{
|
||||
"create": 1,
|
||||
"delete": 1,
|
||||
"email": 1,
|
||||
"export": 1,
|
||||
"print": 1,
|
||||
"read": 1,
|
||||
"report": 1,
|
||||
"role": "System Manager",
|
||||
"share": 1,
|
||||
"write": 1
|
||||
}
|
||||
],
|
||||
"quick_entry": 1,
|
||||
"search_fields": "title, main_ip, item, description",
|
||||
"sort_field": "modified",
|
||||
"sort_order": "DESC",
|
||||
"title_field": "title",
|
||||
"track_changes": 1,
|
||||
"track_views": 1
|
||||
}
|
10
msp/msp/doctype/it_object/it_object.py
Normal file
10
msp/msp/doctype/it_object/it_object.py
Normal file
@ -0,0 +1,10 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright (c) 2021, itsdave GmbH and contributors
|
||||
# For license information, please see license.txt
|
||||
|
||||
from __future__ import unicode_literals
|
||||
# import frappe
|
||||
from frappe.model.document import Document
|
||||
|
||||
class ITObject(Document):
|
||||
pass
|
10
msp/msp/doctype/it_object/test_it_object.py
Normal file
10
msp/msp/doctype/it_object/test_it_object.py
Normal file
@ -0,0 +1,10 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright (c) 2021, itsdave GmbH and Contributors
|
||||
# See license.txt
|
||||
from __future__ import unicode_literals
|
||||
|
||||
# import frappe
|
||||
import unittest
|
||||
|
||||
class TestITObject(unittest.TestCase):
|
||||
pass
|
0
msp/msp/doctype/it_object_ip_address/__init__.py
Normal file
0
msp/msp/doctype/it_object_ip_address/__init__.py
Normal file
@ -0,0 +1,44 @@
|
||||
{
|
||||
"creation": "2021-03-18 03:40:19.147899",
|
||||
"doctype": "DocType",
|
||||
"editable_grid": 1,
|
||||
"engine": "InnoDB",
|
||||
"field_order": [
|
||||
"ip_address",
|
||||
"interface_caption",
|
||||
"main_address"
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"fieldname": "ip_address",
|
||||
"fieldtype": "Link",
|
||||
"in_list_view": 1,
|
||||
"label": "IP Address",
|
||||
"options": "IP Address"
|
||||
},
|
||||
{
|
||||
"fieldname": "interface_caption",
|
||||
"fieldtype": "Data",
|
||||
"in_list_view": 1,
|
||||
"label": "Interface Caption"
|
||||
},
|
||||
{
|
||||
"default": "0",
|
||||
"fieldname": "main_address",
|
||||
"fieldtype": "Check",
|
||||
"in_list_view": 1,
|
||||
"label": "Main Address"
|
||||
}
|
||||
],
|
||||
"istable": 1,
|
||||
"modified": "2021-03-18 03:46:44.712861",
|
||||
"modified_by": "Administrator",
|
||||
"module": "MSP",
|
||||
"name": "IT Object IP Address",
|
||||
"owner": "Administrator",
|
||||
"permissions": [],
|
||||
"quick_entry": 1,
|
||||
"sort_field": "modified",
|
||||
"sort_order": "DESC",
|
||||
"track_changes": 1
|
||||
}
|
10
msp/msp/doctype/it_object_ip_address/it_object_ip_address.py
Normal file
10
msp/msp/doctype/it_object_ip_address/it_object_ip_address.py
Normal file
@ -0,0 +1,10 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright (c) 2021, itsdave GmbH and contributors
|
||||
# For license information, please see license.txt
|
||||
|
||||
from __future__ import unicode_literals
|
||||
# import frappe
|
||||
from frappe.model.document import Document
|
||||
|
||||
class ITObjectIPAddress(Document):
|
||||
pass
|
0
msp/msp/doctype/it_object_type/__init__.py
Normal file
0
msp/msp/doctype/it_object_type/__init__.py
Normal file
8
msp/msp/doctype/it_object_type/it_object_type.js
Normal file
8
msp/msp/doctype/it_object_type/it_object_type.js
Normal file
@ -0,0 +1,8 @@
|
||||
// Copyright (c) 2021, itsdave GmbH and contributors
|
||||
// For license information, please see license.txt
|
||||
|
||||
frappe.ui.form.on('IT Object Type', {
|
||||
// refresh: function(frm) {
|
||||
|
||||
// }
|
||||
});
|
55
msp/msp/doctype/it_object_type/it_object_type.json
Normal file
55
msp/msp/doctype/it_object_type/it_object_type.json
Normal file
@ -0,0 +1,55 @@
|
||||
{
|
||||
"allow_rename": 1,
|
||||
"autoname": "field:title",
|
||||
"creation": "2021-03-18 01:31:27.823964",
|
||||
"doctype": "DocType",
|
||||
"editable_grid": 1,
|
||||
"engine": "InnoDB",
|
||||
"field_order": [
|
||||
"title",
|
||||
"description",
|
||||
"default_image"
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"fieldname": "title",
|
||||
"fieldtype": "Data",
|
||||
"in_list_view": 1,
|
||||
"label": "Title",
|
||||
"reqd": 1,
|
||||
"unique": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "description",
|
||||
"fieldtype": "Data",
|
||||
"label": "Description"
|
||||
},
|
||||
{
|
||||
"fieldname": "default_image",
|
||||
"fieldtype": "Attach Image",
|
||||
"label": "Default Image"
|
||||
}
|
||||
],
|
||||
"modified": "2021-03-23 21:09:27.176989",
|
||||
"modified_by": "Administrator",
|
||||
"module": "MSP",
|
||||
"name": "IT Object Type",
|
||||
"owner": "Administrator",
|
||||
"permissions": [
|
||||
{
|
||||
"create": 1,
|
||||
"delete": 1,
|
||||
"email": 1,
|
||||
"export": 1,
|
||||
"print": 1,
|
||||
"read": 1,
|
||||
"report": 1,
|
||||
"role": "System Manager",
|
||||
"share": 1,
|
||||
"write": 1
|
||||
}
|
||||
],
|
||||
"sort_field": "modified",
|
||||
"sort_order": "DESC",
|
||||
"track_changes": 1
|
||||
}
|
10
msp/msp/doctype/it_object_type/it_object_type.py
Normal file
10
msp/msp/doctype/it_object_type/it_object_type.py
Normal file
@ -0,0 +1,10 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright (c) 2021, itsdave GmbH and contributors
|
||||
# For license information, please see license.txt
|
||||
|
||||
from __future__ import unicode_literals
|
||||
# import frappe
|
||||
from frappe.model.document import Document
|
||||
|
||||
class ITObjectType(Document):
|
||||
pass
|
10
msp/msp/doctype/it_object_type/test_it_object_type.py
Normal file
10
msp/msp/doctype/it_object_type/test_it_object_type.py
Normal file
@ -0,0 +1,10 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright (c) 2021, itsdave GmbH and Contributors
|
||||
# See license.txt
|
||||
from __future__ import unicode_literals
|
||||
|
||||
# import frappe
|
||||
import unittest
|
||||
|
||||
class TestITObjectType(unittest.TestCase):
|
||||
pass
|
0
msp/msp/doctype/it_user_account/__init__.py
Normal file
0
msp/msp/doctype/it_user_account/__init__.py
Normal file
8
msp/msp/doctype/it_user_account/it_user_account.js
Normal file
8
msp/msp/doctype/it_user_account/it_user_account.js
Normal file
@ -0,0 +1,8 @@
|
||||
// Copyright (c) 2021, itsdave GmbH and contributors
|
||||
// For license information, please see license.txt
|
||||
|
||||
frappe.ui.form.on('IT User Account', {
|
||||
// refresh: function(frm) {
|
||||
|
||||
// }
|
||||
});
|
80
msp/msp/doctype/it_user_account/it_user_account.json
Normal file
80
msp/msp/doctype/it_user_account/it_user_account.json
Normal file
@ -0,0 +1,80 @@
|
||||
{
|
||||
"autoname": "ITUACC-.#####",
|
||||
"creation": "2021-03-18 02:43:33.591837",
|
||||
"doctype": "DocType",
|
||||
"editable_grid": 1,
|
||||
"engine": "InnoDB",
|
||||
"field_order": [
|
||||
"username",
|
||||
"password",
|
||||
"domain",
|
||||
"account_type",
|
||||
"it_landscape",
|
||||
"upn"
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"fieldname": "username",
|
||||
"fieldtype": "Data",
|
||||
"in_list_view": 1,
|
||||
"in_standard_filter": 1,
|
||||
"label": "Username"
|
||||
},
|
||||
{
|
||||
"fieldname": "password",
|
||||
"fieldtype": "Password",
|
||||
"label": "Password"
|
||||
},
|
||||
{
|
||||
"fieldname": "account_type",
|
||||
"fieldtype": "Link",
|
||||
"in_list_view": 1,
|
||||
"in_standard_filter": 1,
|
||||
"label": "Account Type",
|
||||
"options": "IT User Account Type"
|
||||
},
|
||||
{
|
||||
"fieldname": "it_landscape",
|
||||
"fieldtype": "Link",
|
||||
"in_list_view": 1,
|
||||
"in_standard_filter": 1,
|
||||
"label": "IT Landscape",
|
||||
"options": "IT Landscape"
|
||||
},
|
||||
{
|
||||
"fieldname": "domain",
|
||||
"fieldtype": "Data",
|
||||
"in_list_view": 1,
|
||||
"in_standard_filter": 1,
|
||||
"label": "Domain"
|
||||
},
|
||||
{
|
||||
"fieldname": "upn",
|
||||
"fieldtype": "Data",
|
||||
"label": "UPN"
|
||||
}
|
||||
],
|
||||
"modified": "2021-03-24 00:27:17.507476",
|
||||
"modified_by": "Administrator",
|
||||
"module": "MSP",
|
||||
"name": "IT User Account",
|
||||
"owner": "Administrator",
|
||||
"permissions": [
|
||||
{
|
||||
"create": 1,
|
||||
"delete": 1,
|
||||
"email": 1,
|
||||
"export": 1,
|
||||
"print": 1,
|
||||
"read": 1,
|
||||
"report": 1,
|
||||
"role": "System Manager",
|
||||
"share": 1,
|
||||
"write": 1
|
||||
}
|
||||
],
|
||||
"sort_field": "modified",
|
||||
"sort_order": "DESC",
|
||||
"title_field": "upn",
|
||||
"track_changes": 1
|
||||
}
|
10
msp/msp/doctype/it_user_account/it_user_account.py
Normal file
10
msp/msp/doctype/it_user_account/it_user_account.py
Normal file
@ -0,0 +1,10 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright (c) 2021, itsdave GmbH and contributors
|
||||
# For license information, please see license.txt
|
||||
|
||||
from __future__ import unicode_literals
|
||||
# import frappe
|
||||
from frappe.model.document import Document
|
||||
|
||||
class ITUserAccount(Document):
|
||||
pass
|
10
msp/msp/doctype/it_user_account/test_it_user_account.py
Normal file
10
msp/msp/doctype/it_user_account/test_it_user_account.py
Normal file
@ -0,0 +1,10 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright (c) 2021, itsdave GmbH and Contributors
|
||||
# See license.txt
|
||||
from __future__ import unicode_literals
|
||||
|
||||
# import frappe
|
||||
import unittest
|
||||
|
||||
class TestITUserAccount(unittest.TestCase):
|
||||
pass
|
0
msp/msp/doctype/it_user_account_type/__init__.py
Normal file
0
msp/msp/doctype/it_user_account_type/__init__.py
Normal file
@ -0,0 +1,8 @@
|
||||
// Copyright (c) 2021, itsdave GmbH and contributors
|
||||
// For license information, please see license.txt
|
||||
|
||||
frappe.ui.form.on('IT User Account Type', {
|
||||
// refresh: function(frm) {
|
||||
|
||||
// }
|
||||
});
|
@ -0,0 +1,41 @@
|
||||
{
|
||||
"autoname": "field:title",
|
||||
"creation": "2021-03-18 02:44:48.527444",
|
||||
"doctype": "DocType",
|
||||
"editable_grid": 1,
|
||||
"engine": "InnoDB",
|
||||
"field_order": [
|
||||
"title"
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"fieldname": "title",
|
||||
"fieldtype": "Data",
|
||||
"label": "Title",
|
||||
"unique": 1
|
||||
}
|
||||
],
|
||||
"modified": "2021-03-18 02:44:48.527444",
|
||||
"modified_by": "Administrator",
|
||||
"module": "MSP",
|
||||
"name": "IT User Account Type",
|
||||
"owner": "Administrator",
|
||||
"permissions": [
|
||||
{
|
||||
"create": 1,
|
||||
"delete": 1,
|
||||
"email": 1,
|
||||
"export": 1,
|
||||
"print": 1,
|
||||
"read": 1,
|
||||
"report": 1,
|
||||
"role": "System Manager",
|
||||
"share": 1,
|
||||
"write": 1
|
||||
}
|
||||
],
|
||||
"quick_entry": 1,
|
||||
"sort_field": "modified",
|
||||
"sort_order": "DESC",
|
||||
"track_changes": 1
|
||||
}
|
10
msp/msp/doctype/it_user_account_type/it_user_account_type.py
Normal file
10
msp/msp/doctype/it_user_account_type/it_user_account_type.py
Normal file
@ -0,0 +1,10 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright (c) 2021, itsdave GmbH and contributors
|
||||
# For license information, please see license.txt
|
||||
|
||||
from __future__ import unicode_literals
|
||||
# import frappe
|
||||
from frappe.model.document import Document
|
||||
|
||||
class ITUserAccountType(Document):
|
||||
pass
|
@ -0,0 +1,10 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright (c) 2021, itsdave GmbH and Contributors
|
||||
# See license.txt
|
||||
from __future__ import unicode_literals
|
||||
|
||||
# import frappe
|
||||
import unittest
|
||||
|
||||
class TestITUserAccountType(unittest.TestCase):
|
||||
pass
|
0
msp/patches.txt
Normal file
0
msp/patches.txt
Normal file
0
msp/templates/__init__.py
Normal file
0
msp/templates/__init__.py
Normal file
0
msp/templates/pages/__init__.py
Normal file
0
msp/templates/pages/__init__.py
Normal file
2
requirements.txt
Normal file
2
requirements.txt
Normal file
@ -0,0 +1,2 @@
|
||||
frappe
|
||||
ipaddress
|
20
setup.py
Normal file
20
setup.py
Normal file
@ -0,0 +1,20 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from setuptools import setup, find_packages
|
||||
|
||||
with open('requirements.txt') as f:
|
||||
install_requires = f.read().strip().split('\n')
|
||||
|
||||
# get version from __version__ variable in msp/__init__.py
|
||||
from msp import __version__ as version
|
||||
|
||||
setup(
|
||||
name='msp',
|
||||
version=version,
|
||||
description='App for Managed Service Providers',
|
||||
author='itsdave GmbH',
|
||||
author_email='dev@itsdave.de',
|
||||
packages=find_packages(),
|
||||
zip_safe=False,
|
||||
include_package_data=True,
|
||||
install_requires=install_requires
|
||||
)
|
Loading…
x
Reference in New Issue
Block a user