Skip to content
Snippets Groups Projects
Commit 6bc0e087 authored by tuhe's avatar tuhe
Browse files

Knowledge map

parent b7e16ad5
No related branches found
No related tags found
No related merge requests found
No preview for this file type
No preview for this file type
No preview for this file type
......@@ -12,8 +12,6 @@ urlpatterns =[
# re_path(r'^present/$', TemplateView.as_view(template_name='kmap/kmap_presentation.html'), name='kmap_present'),
re_path(r'^kmap2/$', views.kmap2, name='kmap2'),
re_path(r'^kmap2_static/$', views.kmap2_static, name='kmap2_static'),
re_path(r'^mm2/$', views.mm2, name="kmap_mm2"),
......
......@@ -28,12 +28,53 @@ def kmap2_static(request):
import json
# from django.http import JsonResponse
def node():
return {}
def node(id,label="Surface Boi", x=155,y=230, parent=None, style_class='nucleic acid feature'):
n = dict()
data = dict(id=id,
bbox=dict(x=x, y=y, w=750, h=155),
label=label,
statesandinfos=[],
language="PD",
color="#000000",
ports=[],
infoboxCalculated=True,
auxunitlayouts={})
data['background-image'] = ""
data['border-width'] =1.25
if parent is not None:
data['parent'] = parent
data['border-color']="#555555",
data['background-color']="#f4a582"
data['background-opacity']=1
data['background-image-opacity']=1
data['text-wrap']="wrap"
data['font-size']=26
data['font-family']="Helvetica"
data['font-style']="normal"
data['font-weight']="normal"
n['position'] = dict(x=x,y=y)
n_extra = dict(group="nodes",
removed=False,
selected=False,
selectable=True,
locked=False,
grabbable=True,
classes="")
n = {**n, **n_extra}
data['class'] = style_class # "nucleic acid feature"
n['data'] = data
return n
style = {}
base = dict(elements={}, # nodes=[], edges=[]
base = dict(elements=dict(nodes=[], edges=[]),
style=[],
zoomingEnabled=True,
userZoomingEnabled=True,
......@@ -47,18 +88,224 @@ base = dict(elements={}, # nodes=[], edges=[]
renderer=dict(name="canvas"),
wheelSensitivity=0.1,
motionBlur=True,
# nodeSep=100,
)
def get_base():
b = base.copy()
b['style'] = [{
"selector": "node",
"style": {
"shape": "rectangle",
"text-halign": "center",
"text-valign": "center",
"font-weight": "normal",
"background-color": "#ffffff",
"opacity": "1",
"border-color": "#555555"
}
},
{
"selector": "node[class = 'simple chemical']",
"style": {
"shape": "ellipse",
"font-size": 14,
"background-color": "#fddbc7"
}
},
{
"selector": "node[class = 'macromolecule']",
"style": {
"shape": "roundrectangle"
}
},
{
"selector": "node[class = 'unspecified entity']",
"style": {
"shape": "ellipse",
"background-color": "#f7f7f7"
}
},
{
"selector": "node[class = 'nucleic acid feature']",
"style": {
"shape": "rectangle",
"background-color": "#f4a582",
}
},
{
"selector": ":parent",
"style": {
"background-opacity": "0.333",
"text-valign": "bottom",
"shape": "barrel",
"text-margin-y": "2px",
"font-weight": "normal",
"border-color": "#555555"
}
},
{
"selector": "node:selected",
"style": {
"background-color": "#33ff00",
"border-color": "#22ee00"
}
},
{
"selector": "edge",
"style": {
"curve-style": "unbundled-bezier",
"width": "2px",
"line-color": "rgb(58,126,207)",
"opacity": "1"
}
},
{
"selector": "edge:selected",
"style": {
"line-color": "#33ff00",
"font-size": "13px",
"text-opacity": "1",
"text-rotation": "autorotate",
"color": "#33ff00",
"font-weight": "bold",
"text-background-shape": "roundrectangle",
"text-background-opacity": "1",
"text-background-padding": "2px"
}
},
{
"selector": "edge[class = 'production']",
"style": {
"target-arrow-shape": "triangle",
"target-arrow-color": "rgb(58,126,207)"
}
},
{
"selector": "edge:selected[class = 'production']",
"style": {
"target-arrow-shape": "triangle",
"target-arrow-color": "#33ff00"
}
},
]
return b
def meeting():
return {}
def corner():
n = node()
pass
def constraint(n1, n2, horizontal=True, gap=10):
if horizontal:
l1 = 'left'
l2 = 'right'
else:
l1, l2 = 'top', 'bottom'
return {l1: n1, l2: n2, 'gap': gap}
def edge(source, target):
id = source+"_"+target
data = dict(id=id)
data['class'] = 'production'
data['source'] = source
data['target'] = target
data['portsource'] = source
data['porttarget'] = target
# data['line-width']
data["line-color"] = "#555555"
data["width"] = 1.25
e = dict()
e['data'] = data
e['group'] = 'edges'
return e
# "bendPointPositions": [],
# "language": "PD",
# "background-image": "",
# "background-color": "#ffffff",
# "cardinality": 0,
# "source": "5c108d5c-88e4-7b97-95a8-67238c33d283",
# "target": "aeee80bf-8280-f4ec-c1f3-26f3a7a0651c",
# "portsource": "5c108d5c-88e4-7b97-95a8-67238c33d283",
# "porttarget": "aeee80bf-8280-f4ec-c1f3-26f3a7a0651c"
# },
# "position": {},
# "group": "edges",
# "removed": false,
# "selected": false,
# "selectable": true,
# "locked": false,
# "grabbable": true,
# "classes": ""
def mm2(request, presentation_mode=0):
response = HttpResponse(content_type='application/x-javascript')
data = {'elements': {'nodes': 'myvar', 'x': 23, 'mlist': []} }
# s = json.dumps(data)
# data = {'elements': {'nodes': 'myvar', 'x': 23, 'mlist': []} }
constrains = []
edges = []
constrains.append(constraint("c0", "root", gap=300))
# constrains.append(constraint("root", "c1", gap=300))
# constrains.append(constraint("c3", "root", gap=300))
# constrains.append(constraint("c4", "root", gap=300))
#
# for i in range(3):
# c = constraint(f'c{i}', f'c{i+1}', horizontal=True, gap=100)
# constrains.append(c)
#
# for i in range(3):
# c = constraint(f'c3', f'c2', horizontal=False, gap=100)
# constrains.append(c)
# c1 = constraint('c1', 'c3', horizontal=True, gap=100)
# c2 = constraint('c0', 'c2', horizontal=True, gap=100)
# constrains.append(c1)
# constrains.append(c2)
data = get_base()
nodes = []
data['elements']['nodes'].append( node('n01', label="Some stuff") )
# data['elements']['nodes'].append()
x0 = 0
y0 = 0
root = node('root', label="Knowledge Map'", x=0, y=0)
nodes.append(root)
for c in [0, 3, 1, 2]:
cor = models.CORNERS[c]
# n = node(f'c{c}', label=cor[1], style_class='submap', x=x0-100, y=x0+100)
n = node(f'c{c}', label=cor[1], x=x0-100, y=x0+100)
nodes.append(n)
edges.append(edge('root', f'c{c}'))
# node = create_node(doc, cor[1], bubble=True, background_color="#d5d57f", color="#787805")
# node = font(doc, node, 16, bold=True)
# node = edge(doc, node, 8)
prejects = models.preject_in_project().filter(arena=cor[0])
for p in prejects:
n = node(f'p{p.id}', p.title, parent=f'c{c}')
n = node(f'p{p.id}', p.title)
nodes.append(n)
# nodes.append()
# node.appendChild(populate_preject(doc, p, presentation_mode))
pass
data['elements']['nodes'] = nodes
data['elements']['edges'] = edges
s = "uwsn = " + json.dumps(data,indent=True)
s += "\n"
cd = dict(relativePlacementConstraint=constrains)
s += "uwsn_constraints = " + json.dumps(cd, indent=True)
response.write(s)
return response
dictionary = {
"id": "04",
......@@ -105,12 +352,12 @@ def mm(request, presentation_mode=0):
response.write(xml)
return response
def edge(doc, node, width=1):
edge = doc.createElement("edge")
edge.setAttribute("STYLE", "sharp_bezier")
edge.setAttribute("WIDTH", "%i"%width)
node.appendChild(edge)
return node
# def edge(doc, node, width=1):
# edge = doc.createElement("edge")
# edge.setAttribute("STYLE", "sharp_bezier")
# edge.setAttribute("WIDTH", "%i"%width)
# node.appendChild(edge)
# return node
def create_node(doc, text, background_color=None, color=None, bubble=None, fork=None, link=None):
node = doc.createElement("node")
......
......@@ -12,6 +12,8 @@ https://docs.djangoproject.com/en/2.0/ref/settings/
import socket
# import os.path
import os
# import kmap.views # Listen for changes?
# import django
# django.setup()
......
No preview for this file type
No preview for this file type
No preview for this file type
from django.apps import AppConfig
# apps.py
from django.apps import AppConfig
# from django.utils.autoreload import autoreload_started
# def my_watchdog(sender, **kwargs):
# sender.watch_dir('../kmap/', '*.py')
# # to listen to multiple files, use watch_dir, e.g.
# # sender.watch_dir('/tmp/', '*.bar')
class PagesAppConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'pages'
# def ready(self):
# autoreload_started.connect(my_watchdog)
\ No newline at end of file
......@@ -15,6 +15,8 @@ from django.views.generic.base import RedirectView
#from django.views.generic.simple import redirect_to
#from django.contrib import admin
from pages import meeting_generics
# import dkbn2.kmap.views
# from dkbn2.kmap import views
def model_info(model):
return {'model' : model}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment