Commit e045ac6a authored by Romain Loth's avatar Romain Loth

better User.is_active + new page with demo css on /services/demo

parent e71f354b
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Complex Systems Community Explorer</title>
<meta name="description" content="">
<meta name="author" content="">
<!-- Les styles -->
<link type="text/css" href="http://fonts.googleapis.com/css?family=Ubuntu" rel="stylesheet">
<link type="text/css" href="static/css/bootstrap.css" rel="stylesheet">
<link type="text/css" href="static/css/bootstrap_index.css" rel="stylesheet">
<link type="text/css" href="static/css/brownian-motion/jquery-ui-1.8.16.custom.css" rel="stylesheet">
<link type="text/css" href="static/css/whoswho.css" rel="stylesheet">
<script type="text/javascript" src="static/js/jquery/jquery-1.7.min.js"></script>
<script type="text/javascript" src="static/js/jquery-ui-1.8.16.custom.min.js"></script>
<script type="text/javascript" src="static/js/bootstrap/bootstrap-dropdown-fade.js"></script>
<script type="text/javascript" src="static/js/misc/underscore.min.js"></script>
<script type="text/javascript" src="static/js/jquery/jquery.highlight-3.js"></script>
<script type="text/javascript" src="static/js/jquery.vticker-min.js"></script>
<script type="text/javascript" src="static/js/misc/json2.js"></script>
<script type="text/javascript" src="static/js/utils.js"></script>
</head>
<body>
<script type="text/javascript" src="static/js/whoswho.js"/></script>
<div class="topbar">
<div class="topbar-inner" style="height:10em">
<div class="container-fluid">
<!-- MAIN NAVBAR -->
<ul class="nav" style="margin-top:5px;">
<li>
<a class="topbarlink" href="index.html"><span class="icon-home icon-white"></i></a>
</li>
<li id="mapping" class="nav-legend">
<span> <strong>SELECT Keywords</strong> </span>
<span> <strong>AND Scholars</strong> </span>
</li>
<li id="refine" class="dropdown">
<a class="btn-default nav-inline-selectable"
onclick='$(this).next(".dropdown-menu").toggle();'
>refine<i class="caret"></i></a>
<ul class="dropdown-menu">
<li>
<a id="addfiltercountry" href="#">Filter by country</a>
</li>
<li>
<a id="addfilterkeyword" href="#">Filter by keyword</a>
</li>
<li>
<a id="addfiltertag" href="#">Filter by community tags</a>
</li>
<li>
<a id="addfilterorganization" href="#">Filter by organization</a>
</li>
<li>
<a id="addfilterlaboratory" href="#">Filter by laboratory</a>
</li>
</ul>
</li>
<li>
<a class="topbarlink" id="print" href="#"> <i class="icon-arrow-right icon-white"></i> <strong>CREATE DIRECTORY</strong></a>
</li>
<li style="margin-top: 10px;">
<span style="color: #fff;"> <strong>&nbsp;OR&nbsp;</strong> </span>
</li>
<li>
<a class="topbarlink" id="generate" href="#"> <i class="icon-arrow-right icon-white"></i> <strong>MAP</strong></a>
</li>
</ul>
<form id="search-form" class="js-search-form pull-right">
<span class="glass js-search-action"><i></i></span>
<input id="search" class="input-small" type="text" name="q" placeholder="Search">
</form>
</div>
</div>
</div>
<div class="container-fluid" style="margin-top:20em;">
<div id="visualization"></div>
<!-- Main hero unit for a primary marketing message or call to action -->
<div class="hero-unit">
<div id="loading" style="padding-left:-175px; margin-left: 27%;">
<img src="static/css/loading.gif" style="border: 0px; opacity: 0.05; " />
</div>
<p>
<!--<form>-->
<input type="text" id="searchname" class="large name" placeholder="Your last name" />
<input type="hidden" id="searchlogin" value=""/>
<img src="static/css/branding/big_arrow.png" alt="" style="border: none; margin-bottom : -19px;" title="" />
<button id="print2" class="btn btn-small btn-primary">
DIRECTORY
</button>
&nbsp;OR&nbsp;
<button id="generate2" class="btn btn-small btn-primary">
MAP
</button>
<!--<a id="printname" href="#"> <strong>PRINT</strong></a>-->
</p>
<br/><br/>
</div>
</div>
</body>
</html>
......@@ -19,18 +19,23 @@ Context:
"""
__author__ = "CNRS"
__copyright__ = "Copyright 2016 ISCPIF-CNRS"
__version__ = "1.4"
__version__ = "1.5"
__email__ = "romain.loth@iscpif.fr"
__status__ = "Dev"
from flask import Flask, render_template, request, \
redirect, url_for, session
from flask_login import fresh_login_required, current_user, login_user
from re import sub
from os import path
from traceback import format_tb
from json import dumps
from datetime import timedelta
# ============== imports ==============
from re import sub
from os import path
from json import dumps
from datetime import timedelta
from urllib.parse import urlparse, urljoin
from traceback import format_tb
from flask import Flask, render_template, request, \
redirect, url_for, session
from flask_login import fresh_login_required, login_required, \
current_user, login_user, logout_user
if __package__ == 'services':
# when we're run via import
......@@ -49,10 +54,9 @@ else:
from db import connect_db, get_or_create_keywords, save_pairs_sch_kw, delete_pairs_sch_kw, get_or_create_affiliation, save_scholar, get_field_aggs
from db_to_tina_api.extractDataCustom import MyExtractor as MySQL
# ============= read config ============
# ============= app creation ============
config = REALCONFIG
# ============= app creation ============
app = Flask("services",
static_folder=path.join(config['HOME'],"static"),
template_folder=path.join(config['HOME'],"templates"))
......@@ -60,10 +64,14 @@ app = Flask("services",
app.config['DEBUG'] = (config['LOG_LEVEL'] == "DEBUG")
app.config['SECRET_KEY'] = 'TODO fill secret key for sessions for login'
# for SSL
app.config['PREFERRED_URL_SCHEME'] = 'https'
# for flask_login
app.config['REMEMBER_COOKIE_DURATION'] = timedelta(seconds=15)
app.config['REMEMBER_COOKIE_NAME'] = 'supercookie'
app.config['MY_VAR'] = 'incredible it works'
cookie_timer = timedelta(hours=2)
app.config['PERMANENT_SESSION_LIFETIME'] = cookie_timer
app.config['REMEMBER_COOKIE_DURATION'] = cookie_timer
app.config['REMEMBER_COOKIE_NAME'] = 'communityexplorer.org cookie'
login_manager.login_view = "login"
login_manager.session_protection = "strong"
......@@ -111,7 +119,6 @@ SOURCE_FIELDS = [
# mandatory minimum of keywords # TODO use
MIN_KW = 5
# ============= views =============
# -----------------------------------------------------------------------
......@@ -120,6 +127,12 @@ MIN_KW = 5
@login_manager.unauthorized_handler
def unauthorized():
"""
Generic handler for all unauthorized
(pages requires login)
NB: Redirecting here is done by @login_required decorators
"""
return render_template(
"message.html",
message = """
......@@ -130,15 +143,38 @@ def unauthorized():
'login': url_for('login', next=request.path, _external=True)}
)
@app.route("/")
def rootstub():
"""
Root of the comex2 app is served by php,
but having this empty stub allows us to use
url_for('rootstub') when redirecting to said php
"""
pass
# /services/index/
@app.route(config['PREFIX']+'/demo/')
def demo():
"""
Demo CSS with alternative index (layout à la notebook)
"""
return render_template(
"alt_index.html",
foo="bar",
# current_user=current_user
)
# /services/
@app.route(config['PREFIX']+'/', methods=['GET'])
@app.route(config['PREFIX']+'/')
def services():
return redirect(url_for('login', _external=True))
# /services/test
# @app.route(config['PREFIX'] + '/test', methods=['GET'])
# def test_stuff():
# return render_template("message.html", message="UCACHE="+sub('<|&|>','::',repr(UCACHE)))
@app.route(config['PREFIX'] + '/test', methods=['GET'])
def test_stuff():
return render_template("message.html", message=url_for('rootstub', _external=True))
# /services/api/aggs
@app.route(config['PREFIX'] + config['API_ROUTE'] + '/aggs')
......@@ -162,8 +198,6 @@ def graph_api():
(originally @ moma/legacy_php_comex/tree/master/comex_install)
(original author S. Castillo)
"""
if 'qtype' in request.args:
graphdb=MySQL(config['SQL_HOST'])
scholars = graphdb.getScholarsList(request.args['qtype'], restparse(request.query_string.decode()))
......@@ -231,9 +265,20 @@ def login():
if login_ok:
# normal user
return redirect(url_for('profile', _external=True))
# POSS "next" request.args (useful when we'll have more pages)
# ---
next_url = request.args.get('next', None)
if next_url:
safe_flag = is_safe_url(next_url, request.host_url)
if safe_flag:
# normal next_url
return(redirect(next_url))
else:
# server name is different than ours
# in next_url so we won't go there
return(redirect(url_for('rootstub', _external=True)))
else:
# no specified next_url => profile
return redirect(url_for('profile', _external=True))
else:
# user exists in doors but has no comex profile yet
......@@ -257,6 +302,13 @@ def login():
)
# /services/user/logout/
@app.route(config['PREFIX'] + config['USR_ROUTE'] + '/logout/')
def logout():
logout_user()
return redirect(url_for('rootstub', _external=True))
# /services/user/profile/
@app.route(config['PREFIX'] + config['USR_ROUTE'] + '/profile/', methods=['GET', 'POST'])
@fresh_login_required
......@@ -271,11 +323,11 @@ def profile():
if current_user.empty:
mlog("INFO", "PROFILE: empty current_user %s" % current_user.uid)
else:
mlog("INFO", "PROFILE: current_user %s\n -" % current_user.uid
+ '\n -'.join([current_user.info['email'],
current_user.info['initials'],
str(current_user.info['keywords']),
current_user.info['country']]
mlog("DEBUG", "PROFILE: current_user %s\n -" % current_user.uid
+ '\n - '.join([current_user.info['email'],
current_user.info['initials'],
str(current_user.info['keywords']),
current_user.info['country']]
)
)
......@@ -464,7 +516,6 @@ def read_record(incoming_data):
if clean_records['org_type'] == 'other' and 'other_org_type' in clean_records:
clean_records['org_type'] = clean_records['other_org_type']
# split for kw_array
kw_array = []
if 'keywords' in clean_records:
......@@ -497,6 +548,16 @@ def sanitize(value):
return san_typed_val
def is_safe_url(target, host_url):
"""
Checks if url is ok for redirects
cf. http://flask.pocoo.org/snippets/62/
"""
ref_url = urlparse(host_url)
test_url = urlparse(urljoin(host_url, target))
return test_url.scheme in ('http', 'https') and ref_url.netloc == test_url.netloc
########### MAIN ###########
# this only uses the dev server (in prod we're run by unicorn and not as main)
if __name__ == "__main__":
......
......@@ -11,7 +11,6 @@ from os import environ, path
from urllib.parse import unquote
from ctypes import c_int32
# ========================== FILL REALCONFIG ===================================
# the main config dict (filled and exposed by this module only)
......
......@@ -8,16 +8,18 @@ __author__ = "CNRS"
__copyright__ = "Copyright 2016 ISCPIF-CNRS"
__email__ = "romain.loth@iscpif.fr"
from re import match
from requests import post
from json import dumps, loads
from datetime import time, timedelta
from flask_login import LoginManager
if __package__ == 'services':
from services.db import connect_db, get_full_scholar
from services.tools import mlog
from services.tools import mlog, REALCONFIG
else:
from db import connect_db, get_full_scholar
from tools import mlog
from tools import mlog, REALCONFIG
# will be exported to main for initialization with app
login_manager = LoginManager()
......@@ -99,11 +101,46 @@ class User(object):
return str(self.uid)
@property
def is_active(self):
def is_active(self,
# 3 months ~ 91 days
legacy_time_active = timedelta(days=91.3125)):
"""
:boolean flag:
uses scholars.status
and self.empty <=> is also active a user who exists
in doors db but not in comex_db
STATUS STR RESULT
"active" flag active
"test" flag active if DEBUG
"legacy:sent_2017-01-01" flag active until 2017/04/01
(ie 2017/01/01 + 3 months)
"""
return (not self.empty and self.info['record_status'] == "active")
if self.empty:
# the user has a doors uid so he's entitled to a login
return True
else:
# ... or has a record_status in comex_db
sirstatus = self.info['record_status']
# maybe occasionaly legacy user
legacystatus = match("legacy:sent_([\d-]{10})",sirstatus)
# boolean result
return (sirstatus == "active"
or (
legacystatus
and
date(*[int(tc) for tc in legacystatus.groups()[0].split('-')]) + legacy_time_active < date.today()
)
or (
sirstatus == "test"
and
REALCONFIG['LOG_LEVEL'] == "DEBUG"
)
)
@property
def is_anonymous(self):
......
.banner-row {
padding: 2.5em 0 ;
/*background-color: #055D9B;*/
/*background-color: #1EB3E6;*/
background-color: #00B4E6;
/*background-color: #FAB612;*/
/*background-color: #EE751C;*/
/*background-color: #F05A1A;*/
}
div.cmx-action-wrap {
text-align: left;
}
img.cmx-action {
width: 12em ;
height: 12em ;
padding: 0em !important;
margin: 1em;
}
.action-announce {
padding: 0;
border: none;
background-color: transparent;
}
.wwwpanel {
box-shadow: .2em .2em teal;
}
.panel-body.wwwthumb {
height: 35em;
width: 100% ;
overflow: hidden;
position: relative ;
}
iframe.wwwthumb {
height: 35em;
width: 100%;
top: 0 ;
left: 0 ;
position: absolute;
background-color: #555;
}
iframe.wwwthumbsmall {
transform:scale(0.7);
height: 48em;
top: -7em ;
position: absolute;
width: 70em;
left: -12em ;
background-color: #555;
border-radius: 5em;
}
.box-highlight {
background-color: #AAA ;
padding: .2em .5em ;
background-color: #B00 ;
}
.box-highlight::after {
content: "x (close)" ;
font-size: .4em;
margin-bottom: .7em;
}
#information-example {
background-color:#AAA;
border-radius: 1em;
padding: .8em;
}
......@@ -4,6 +4,17 @@
.grey { color:#554 ; }
.orange { color:#F96 ; }
/* classic look */
body {
margin: 0;
font-family: Calibri, "Helvetica Neue", Helvetica, sans-serif;
color: #333;
background-color: #fff;
}
/* not used at present but could be useful for autompleted inputs */
.autocomp {
}
......@@ -16,15 +27,16 @@
/* for intro text */
.mini-hero {
margin-top: 1.5em;
font-size: 18px;
font-size: 24px;
line-height: 27px;
font-family: Calibri, "Helvetica Neue", Helvetica, "Droid Sans", sans-serif;
}
/* a "subpage" container */
.subpage {
width: 100%;
max-width: 55em;
max-width: 65em;
display: none ; /*switching page <=> displaying it */
}
......@@ -41,6 +53,7 @@
.question {
padding: 0 1em;
margin-bottom: 2em;
max-width: 52em;
}
.conditional-q {
......
static/img/action_explore.png

32.4 KB

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="84.615532mm"
height="84.415535mm"
viewBox="0 0 299.81881 299.11016"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="action_explore.svg"
inkscape:export-filename="/home/romain/comex/comex2/static/img/action_explore.png"
inkscape:export-xdpi="150.14534"
inkscape:export-ydpi="150.14534">
<defs
id="defs4">
<marker
inkscape:stockid="TriangleInM"
orient="auto"
refY="0.0"
refX="0.0"
id="TriangleInM"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path5285"
d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(-0.4)" />
</marker>
<marker
inkscape:stockid="Arrow1Lstart"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow1Lstart"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path5149"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.8) translate(12.5,0)" />
</marker>
<inkscape:path-effect
effect="spiro"
id="path-effect4326"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0-9"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0-5"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0-7"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0-53"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0-8"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0-93"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0-74"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0-90"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0-85"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0-3"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0-38"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0-97"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0-32"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0-3-3"
is_visible="true" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.4"
inkscape:cx="186.6577"
inkscape:cy="35.235169"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1600"
inkscape:window-height="833"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
fit-margin-top="-0.2"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-170.34956,-223.30853)">
<g
style="stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
id="g5430-7"
transform="matrix(-0.66489989,0,0,-0.66489989,245.09634,194.18484)">
<path
id="path5432-9"
d="m -149.608,-232.492 a 146.626,146.626 0 0 0 -42,-82"
style="fill:none;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
inkscape:connector-curvature="0" />
<path
id="path5434-9"
d="m -191.608,-314.492 c 1.754,-1.781 5.289,-1.808 7.071,-0.054 1.781,1.755 1.807,5.29 0.053,7.071 -1.755,1.781 -5.29,1.808 -7.071,0.054 -1.781,-1.755 -1.808,-5.29 -0.053,-7.071 z"
style="fill:#000000;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
inkscape:connector-curvature="0" />
<path
id="path5436-2"
d="m -191.608,-314.492 c 1.754,-1.781 5.289,-1.808 7.071,-0.054 1.781,1.755 1.807,5.29 0.053,7.071 -1.755,1.781 -5.29,1.808 -7.071,0.054 -1.781,-1.755 -1.808,-5.29 -0.053,-7.071"
style="fill:none;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
inkscape:connector-curvature="0" />
</g>
<g
style="stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
id="g5438-4"
transform="matrix(-0.66489989,0,0,-0.66489989,245.09634,194.18484)">
<path
id="path5440-0"
d="m 6.39167,-234.492 a 319.542,319.542 0 0 0 -155.99967,-1"
style="fill:none;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
inkscape:connector-curvature="0" />
<path
id="path5442-1"
d="m 6.39167,-234.492 c -0.62579,2.42 -3.67199,4.215 -6.092403,3.589 -2.420407,-0.626 -4.215037,-3.672 -3.589247,-6.092 0.62579,-2.421 3.67199,-4.216 6.0924,-3.59 2.42041,0.626 4.21503,3.672 3.58925,6.093 z"
style="fill:#000000;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
inkscape:connector-curvature="0" />
<path
id="path5444-9"
d="m 6.39167,-234.492 c -0.62579,2.42 -3.67199,4.215 -6.092403,3.589 -2.420407,-0.626 -4.215037,-3.672 -3.589247,-6.092 0.62579,-2.421 3.67199,-4.216 6.0924,-3.59 2.42041,0.626 4.21503,3.672 3.58925,6.093"
style="fill:none;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
inkscape:connector-curvature="0" />
</g>
<g
style="stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
id="g5446-1"
transform="matrix(-0.66489989,0,0,-0.66489989,245.09634,194.18484)">
<path
id="path5448-0"
d="m -148.608,-234.492 a 59.3562,59.3562 0 0 0 68.9997,56"
style="fill:none;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
inkscape:connector-curvature="0" />
<path
id="path5450-9"
d="m -79.6083,-178.492 c 0.4085,2.466 -1.6494,5.341 -4.1158,5.749 -2.4664,0.409 -5.3413,-1.649 -5.7498,-4.115 -0.4085,-2.467 1.6494,-5.342 4.1158,-5.75 2.4664,-0.409 5.3413,1.649 5.7498,4.116 z"
style="fill:#000000;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
inkscape:connector-curvature="0" />
<path
id="path5452-7"
d="m -79.6083,-178.492 c 0.4085,2.466 -1.6494,5.341 -4.1158,5.749 -2.4664,0.409 -5.3413,-1.649 -5.7498,-4.115 -0.4085,-2.467 1.6494,-5.342 4.1158,-5.75 2.4664,-0.409 5.3413,1.649 5.7498,4.116"
style="fill:none;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
inkscape:connector-curvature="0" />
</g>
<g
style="stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
id="g5454-5"
transform="matrix(-0.66489989,0,0,-0.66489989,245.09634,194.18484)">
<path
id="path5456-4"
d="m -232.608,-160.492 a 154.563,154.563 0 0 0 82,-72"
style="fill:none;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
inkscape:connector-curvature="0" />
<path
id="path5458-7"
d="m -232.608,-160.492 c -0.88,-2.34 0.579,-5.56 2.919,-6.441 2.34,-0.88 5.56,0.58 6.44,2.92 0.881,2.34 -0.579,5.56 -2.919,6.44 -2.34,0.88 -5.56,-0.579 -6.44,-2.919 z"
style="fill:#000000;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
inkscape:connector-curvature="0" />
<path
id="path5460-9"
d="m -232.608,-160.492 c -0.88,-2.34 0.579,-5.56 2.919,-6.441 2.34,-0.88 5.56,0.58 6.44,2.92 0.881,2.34 -0.579,5.56 -2.919,6.44 -2.34,0.88 -5.56,-0.579 -6.44,-2.919"
style="fill:none;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
inkscape:connector-curvature="0" />
</g>
<g
style="stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
id="g5494-4"
transform="matrix(-0.66489989,0,0,-0.66489989,245.09634,194.18484)">
<path
id="path5496-1"
d="m -82.7971,-177.626 a 150.287,150.287 0 0 0 30.1888,38.081"
style="fill:none;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
inkscape:connector-curvature="0" />
<path
id="path5498-0"
d="m -52.6083,-139.545 c -1.6822,1.849 -5.2138,2.016 -7.0632,0.334 -1.8494,-1.682 -2.0165,-5.214 -0.3343,-7.063 1.6822,-1.849 5.2138,-2.016 7.0631,-0.334 1.8494,1.682 2.0166,5.214 0.3344,7.063 z"
style="fill:#000000;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
inkscape:connector-curvature="0" />
<path
id="path5500-3"
d="m -52.6083,-139.545 c -1.6822,1.849 -5.2138,2.016 -7.0632,0.334 -1.8494,-1.682 -2.0165,-5.214 -0.3343,-7.063 1.6822,-1.849 5.2138,-2.016 7.0631,-0.334 1.8494,1.682 2.0166,5.214 0.3344,7.063"
style="fill:none;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
inkscape:connector-curvature="0" />
</g>
<g
style="stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
id="g5502-3"
transform="matrix(-0.66489989,0,0,-0.66489989,245.09634,194.18484)">
<path
id="path5504-1"
d="m -125.608,-144.545 a 38.3024,38.3024 0 0 0 41.8109,-30.081"
style="fill:none;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
inkscape:connector-curvature="0" />
<path
id="path5506-5"
d="m -125.608,-144.545 c 0.283,-2.484 3.051,-4.684 5.535,-4.4 2.484,0.284 4.684,3.051 4.4,5.535 -0.284,2.484 -3.051,4.684 -5.535,4.4 -2.484,-0.284 -4.684,-3.051 -4.4,-5.535 z"
style="fill:#000000;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
inkscape:connector-curvature="0" />
<path
id="path5508-7"
d="m -125.608,-144.545 c 0.283,-2.484 3.051,-4.684 5.535,-4.4 2.484,0.284 4.684,3.051 4.4,5.535 -0.284,2.484 -3.051,4.684 -5.535,4.4 -2.484,-0.284 -4.684,-3.051 -4.4,-5.535"
style="fill:none;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
inkscape:connector-curvature="0" />
</g>
<g
style="stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
id="g5510-4"
transform="matrix(-0.66489989,0,0,-0.66489989,245.09634,194.18484)">
<path
id="path5512-8"
d="m -34.6083,-220.492 a 41.581,41.581 0 0 0 -46.7824,46.831"
style="fill:none;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
inkscape:connector-curvature="0" />
<path
id="path5514-6"
d="m -34.6083,-220.492 c -0.3358,2.477 -3.1488,4.619 -5.6262,4.283 -2.4773,-0.336 -4.619,-3.149 -4.2833,-5.626 0.3358,-2.478 3.1488,-4.619 5.6262,-4.284 2.4774,0.336 4.619,3.149 4.2833,5.627 z"
style="fill:#000000;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
inkscape:connector-curvature="0" />
<path
id="path5516-5"
d="m -34.6083,-220.492 c -0.3358,2.477 -3.1488,4.619 -5.6262,4.283 -2.4773,-0.336 -4.619,-3.149 -4.2833,-5.626 0.3358,-2.478 3.1488,-4.619 5.6262,-4.284 2.4774,0.336 4.619,3.149 4.2833,5.627"
style="fill:none;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
inkscape:connector-curvature="0" />
</g>
<g
style="stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
id="g5518-8"
transform="matrix(0,-0.66489989,-0.66489989,0,188.95968,231.15129)">
<path
id="path5520-5"
d="m -134.608,-348.545 a 63.34,63.34 0 0 0 24.383,37.002"
style="fill:none;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
inkscape:connector-curvature="0" />
<path
id="path5522-4"
d="m -134.608,-348.545 c 2.436,-0.559 5.432,1.32 5.99,3.757 0.559,2.436 -1.32,5.432 -3.756,5.99 -2.437,0.559 -5.433,-1.32 -5.991,-3.756 -0.558,-2.437 1.32,-5.433 3.757,-5.991 z"
style="fill:#000000;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
inkscape:connector-curvature="0" />
<path
id="path5524-3"
d="m -134.608,-348.545 c 2.436,-0.559 5.432,1.32 5.99,3.757 0.559,2.436 -1.32,5.432 -3.756,5.99 -2.437,0.559 -5.433,-1.32 -5.991,-3.756 -0.558,-2.437 1.32,-5.433 3.757,-5.991"
style="fill:none;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
inkscape:connector-curvature="0" />
</g>
<g
id="g5568-1"
style="stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
transform="matrix(-0.66489989,0,0,-0.66489989,245.09634,194.18484)">
<path
inkscape:connector-curvature="0"
style="fill:none;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
d="M 0.175453,-234.843 A 37.3922,37.3922 0 0 0 42.3642,-211.71"
id="path5570-2" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
d="m 42.3642,-211.71 c 0.4902,2.452 -1.4711,5.393 -3.9226,5.884 -2.4515,0.49 -5.3931,-1.471 -5.8833,-3.923 -0.4902,-2.451 1.4711,-5.393 3.9226,-5.883 2.4515,-0.49 5.3931,1.471 5.8833,3.922 z"
id="path5572-9" />
<path
inkscape:connector-curvature="0"
style="fill:none;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
d="m 42.3642,-211.71 c 0.4902,2.452 -1.4711,5.393 -3.9226,5.884 -2.4515,0.49 -5.3931,-1.471 -5.8833,-3.923 -0.4902,-2.451 1.4711,-5.393 3.9226,-5.883 2.4515,-0.49 5.3931,1.471 5.8833,3.922"
id="path5574-8" />
</g>
<g
id="g5576-2"
style="stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
transform="matrix(-0.66489989,0,0,-0.66489989,245.09634,194.18484)">
<path
inkscape:connector-curvature="0"
style="fill:none;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
d="m -43.6358,-224.71 a 27.7668,27.7668 0 0 0 41.81125,-8.133"
id="path5578-6" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
d="m -43.6358,-224.71 c 1.576,-1.94 5.0926,-2.305 7.0333,-0.729 1.9408,1.576 2.3055,5.092 0.7296,7.033 -1.576,1.941 -5.0927,2.306 -7.0334,0.73 -1.9407,-1.576 -2.3054,-5.093 -0.7295,-7.034 z"
id="path5580-2" />
<path
inkscape:connector-curvature="0"
style="fill:none;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
d="m -43.6358,-224.71 c 1.576,-1.94 5.0926,-2.305 7.0333,-0.729 1.9408,1.576 2.3055,5.092 0.7296,7.033 -1.576,1.941 -5.0927,2.306 -7.0334,0.73 -1.9407,-1.576 -2.3054,-5.093 -0.7295,-7.034"
id="path5582-8" />
</g>
<g
id="g5584-8"
style="stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
transform="matrix(-0.66489989,0,0,-0.66489989,245.09634,194.18484)">
<path
inkscape:connector-curvature="0"
style="fill:none;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
d="M 0.581843,-231.878 A 116.97,116.97 0 0 0 26.3642,-283.71"
id="path5586-4" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
d="m 26.3642,-283.71 c 2.4443,0.525 4.3637,3.494 3.8388,5.939 -0.5249,2.444 -3.4941,4.363 -5.9384,3.838 -2.4443,-0.524 -4.3636,-3.494 -3.8387,-5.938 0.5249,-2.444 3.494,-4.364 5.9383,-3.839 z"
id="path5588-3" />
<path
inkscape:connector-curvature="0"
style="fill:none;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
d="m 26.3642,-283.71 c 2.4443,0.525 4.3637,3.494 3.8388,5.939 -0.5249,2.444 -3.4941,4.363 -5.9384,3.838 -2.4443,-0.524 -4.3636,-3.494 -3.8387,-5.938 0.5249,-2.444 3.494,-4.364 5.9383,-3.839"
id="path5590-0" />
</g>
<g
id="g5610-7"
style="stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
transform="matrix(-0.66489989,0,0,-0.66489989,245.09634,194.18484)">
<path
inkscape:connector-curvature="0"
style="fill:none;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
d="m -230.425,-162.143 a 37.3922,37.3922 0 0 0 42.189,23.133"
id="path5612-0" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
d="m -188.236,-139.01 c 0.49,2.452 -1.471,5.393 -3.922,5.884 -2.452,0.49 -5.394,-1.471 -5.884,-3.923 -0.49,-2.451 1.471,-5.393 3.923,-5.883 2.451,-0.49 5.393,1.471 5.883,3.922 z"
id="path5614-6" />
<path
inkscape:connector-curvature="0"
style="fill:none;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
d="m -188.236,-139.01 c 0.49,2.452 -1.471,5.393 -3.922,5.884 -2.452,0.49 -5.394,-1.471 -5.884,-3.923 -0.49,-2.451 1.471,-5.393 3.923,-5.883 2.451,-0.49 5.393,1.471 5.883,3.922"
id="path5616-9" />
</g>
<g
id="g5618-6"
style="stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
transform="matrix(0,0.66489989,0.66489989,0,502.99222,455.07526)">
<path
inkscape:connector-curvature="0"
style="fill:none;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
d="m -274.236,-152.01 a 27.7668,27.7668 0 0 0 41.811,-8.133"
id="path5620-2" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
d="m -274.236,-152.01 c 1.576,-1.94 5.093,-2.305 7.034,-0.729 1.94,1.576 2.305,5.092 0.729,7.033 -1.576,1.941 -5.093,2.306 -7.033,0.73 -1.941,-1.576 -2.306,-5.093 -0.73,-7.034 z"
id="path5622-5" />
<path
inkscape:connector-curvature="0"
style="fill:none;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
d="m -274.236,-152.01 c 1.576,-1.94 5.093,-2.305 7.034,-0.729 1.94,1.576 2.305,5.092 0.729,7.033 -1.576,1.941 -5.093,2.306 -7.033,0.73 -1.941,-1.576 -2.306,-5.093 -0.73,-7.034"
id="path5624-5" />
</g>
<g
id="g5626-6"
style="stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
transform="matrix(-0.66489989,0,0,-0.66489989,245.09634,194.18484)">
<path
inkscape:connector-curvature="0"
style="fill:none;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
d="m -230.018,-159.178 a 116.97,116.97 0 0 0 25.782,-51.832"
id="path5628-7" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
d="m -204.236,-211.01 c 2.444,0.525 4.364,3.494 3.839,5.939 -0.525,2.444 -3.494,4.363 -5.938,3.838 -2.445,-0.524 -4.364,-3.494 -3.839,-5.938 0.525,-2.444 3.494,-4.364 5.938,-3.839 z"
id="path5630-8" />
<path
inkscape:connector-curvature="0"
style="fill:none;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
d="m -204.236,-211.01 c 2.444,0.525 4.364,3.494 3.839,5.939 -0.525,2.444 -3.494,4.363 -5.938,3.838 -2.445,-0.524 -4.364,-3.494 -3.839,-5.938 0.525,-2.444 3.494,-4.364 5.938,-3.839"
id="path5632-0" />
</g>
<g
style="stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
id="g5634-6"
transform="matrix(-0.66489989,0,0,-0.66489989,245.09634,194.18484)">
<path
id="path5636-6"
d="m -191.025,-311.443 a 34.6473,34.6473 0 0 0 -35.583,23.898"
style="fill:none;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
inkscape:connector-curvature="0" />
<path
id="path5638-2"
d="m -226.608,-287.545 c -2.379,-0.769 -3.99,-3.916 -3.221,-6.295 0.768,-2.379 3.916,-3.989 6.295,-3.221 2.379,0.769 3.989,3.916 3.221,6.295 -0.769,2.379 -3.916,3.989 -6.295,3.221 z"
style="fill:#000000;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
inkscape:connector-curvature="0" />
<path
id="path5640-5"
d="m -226.608,-287.545 c -2.379,-0.769 -3.99,-3.916 -3.221,-6.295 0.768,-2.379 3.916,-3.989 6.295,-3.221 2.379,0.769 3.989,3.916 3.221,6.295 -0.769,2.379 -3.916,3.989 -6.295,3.221"
style="fill:none;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
inkscape:connector-curvature="0" />
</g>
<g
style="stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
id="g5666-1"
transform="matrix(-0.66489989,0,0,-0.66489989,245.09634,194.18484)">
<path
id="path5668-8"
d="m -188.618,-309.478 a 78.3596,78.3596 0 0 0 -39.99,-25.067"
style="fill:none;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
inkscape:connector-curvature="0" />
<path
id="path5670-5"
d="m -228.608,-334.545 c 0.628,-2.42 3.676,-4.211 6.096,-3.583 2.419,0.628 4.211,3.676 3.583,6.096 -0.628,2.42 -3.676,4.211 -6.096,3.583 -2.42,-0.628 -4.212,-3.676 -3.583,-6.096 z"
style="fill:#000000;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
inkscape:connector-curvature="0" />
<path
id="path5672-0"
d="m -228.608,-334.545 c 0.628,-2.42 3.676,-4.211 6.096,-3.583 2.419,0.628 4.211,3.676 3.583,6.096 -0.628,2.42 -3.676,4.211 -6.096,3.583 -2.42,-0.628 -4.212,-3.676 -3.583,-6.096"
style="fill:none;stroke:#917c6f;stroke-width:5.80485392;stroke-miterlimit:4;stroke-dasharray:none"
inkscape:connector-curvature="0" />
</g>
<rect
style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:7.82567978;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4925"
width="285.57281"
height="287.5491"
x="178.58095"
y="227.88568" />
<path
style="fill:#3465a4;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 220.70305,377.08271 8.97043,-4.12681 8.59179,10.11466 -14.91538,7.18147 -2.64684,-13.16932 z"
id="path4324"
inkscape:path-effect="#path-effect4326-0"
inkscape:original-d="m 220.70305,377.08271 8.97043,-4.12681 8.59179,10.11466 -14.91538,7.18147 z"
inkscape:connector-curvature="0" />
<path
style="fill:#3465a4;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 213.63194,330.61568 8.97043,-4.12681 8.59179,10.11466 -14.91538,7.18147 -2.64684,-13.16932 z"
id="path4324-7"
inkscape:path-effect="#path-effect4326-0-9"
inkscape:original-d="m 213.63194,330.61568 8.97043,-4.12681 8.59179,10.11466 -14.91538,7.18147 z"
inkscape:connector-curvature="0" />
<path
style="fill:#ffcc00;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 271.71571,285.15881 8.97043,-4.12681 8.59179,10.11466 -14.91538,7.18147 -2.64684,-13.16932 z"
id="path4324-9"
inkscape:path-effect="#path-effect4326-0-5"
inkscape:original-d="m 271.71571,285.15881 8.97043,-4.12681 8.59179,10.11466 -14.91538,7.18147 z"
inkscape:connector-curvature="0" />
<path
style="fill:#3465a4;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 316.6675,285.15881 8.97043,-4.12681 8.59179,10.11466 -14.91538,7.18147 -2.64684,-13.16932 z"
id="path4324-8"
inkscape:path-effect="#path-effect4326-0-7"
inkscape:original-d="m 316.6675,285.15881 8.97043,-4.12681 8.59179,10.11466 -14.91538,7.18147 z"
inkscape:connector-curvature="0" />
<path
style="fill:#3465a4;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 293.93907,308.39232 8.97043,-4.12681 8.59179,10.11466 -14.91538,7.18147 -2.64684,-13.16932 z"
id="path4324-3"
inkscape:path-effect="#path-effect4326-0-53"
inkscape:original-d="m 293.93907,308.39232 8.97043,-4.12681 8.59179,10.11466 -14.91538,7.18147 z"
inkscape:connector-curvature="0" />
<path
style="fill:#3465a4;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 234.84514,349.3035 8.97043,-4.12681 8.59179,10.11466 -14.91538,7.18147 -2.64684,-13.16932 z"
id="path4324-37"
inkscape:path-effect="#path-effect4326-0-8"
inkscape:original-d="m 234.84514,349.3035 8.97043,-4.12681 8.59179,10.11466 -14.91538,7.18147 z"
inkscape:connector-curvature="0" />
<path
style="fill:#ffcc00;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 265.14971,336.17152 8.97043,-4.12681 8.59179,10.11466 -14.91538,7.18147 -2.64684,-13.16932 z"
id="path4324-78"
inkscape:path-effect="#path-effect4326-0-93"
inkscape:original-d="m 265.14971,336.17152 8.97043,-4.12681 8.59179,10.11466 -14.91538,7.18147 z"
inkscape:connector-curvature="0" />
<path
style="fill:#3465a4;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 387.37818,384.15376 8.97043,-4.12681 8.59179,10.11466 -14.91538,7.18147 -2.64684,-13.16932 z"
id="path4324-1"
inkscape:path-effect="#path-effect4326-0-74"
inkscape:original-d="m 387.37818,384.15376 8.97043,-4.12681 8.59179,10.11466 -14.91538,7.18147 z"
inkscape:connector-curvature="0" />
<path
style="fill:#ffcc00;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 360.60913,397.28574 8.97043,-4.12681 8.59179,10.11466 -14.91538,7.18147 -2.64684,-13.16932 z"
id="path4324-98"
inkscape:path-effect="#path-effect4326-0-90"
inkscape:original-d="m 360.60913,397.28574 8.97043,-4.12681 8.59179,10.11466 -14.91538,7.18147 z"
inkscape:connector-curvature="0" />
<path
style="fill:#3465a4;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 386.8731,411.93296 8.97043,-4.12681 8.59179,10.11466 -14.91538,7.18147 -2.64684,-13.16932 z"
id="path4324-84"
inkscape:path-effect="#path-effect4326-0-85"
inkscape:original-d="m 386.8731,411.93296 8.97043,-4.12681 8.59179,10.11466 -14.91538,7.18147 z"
inkscape:connector-curvature="0" />
<path
style="fill:#3465a4;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 374.75127,328.09029 8.97043,-4.12681 8.59179,10.11466 -14.91538,7.18147 -2.64684,-13.16932 z"
id="path4324-71"
inkscape:path-effect="#path-effect4326-0-3"
inkscape:original-d="m 374.75127,328.09029 8.97043,-4.12681 8.59179,10.11466 -14.91538,7.18147 z"
inkscape:connector-curvature="0" />
<path
style="fill:#ffcc00;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 411.11676,315.46339 8.97043,-4.12681 8.59179,10.11466 -14.91538,7.18147 -2.64684,-13.16932 z"
id="path4324-0"
inkscape:path-effect="#path-effect4326-0-38"
inkscape:original-d="m 411.11676,315.46339 8.97043,-4.12681 8.59179,10.11466 -14.91538,7.18147 z"
inkscape:connector-curvature="0" />
<path
style="fill:#3465a4;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 365.6599,282.12835 8.97043,-4.12681 8.59179,10.11466 -14.91538,7.18147 -2.64684,-13.16932 z"
id="path4324-99"
inkscape:path-effect="#path-effect4326-0-97"
inkscape:original-d="m 365.6599,282.12835 8.97043,-4.12681 8.59179,10.11466 -14.91538,7.18147 z"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3.16024923;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.16024933, 3.16024933;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#TriangleInM)"
d="m 331.4038,373.34022 c -7.41247,18.1719 -41.19923,3.60473 -34.0497,41.10333 4.71576,24.73359 35.00138,37.94514 37.81612,18.01876 6.22614,-44.07665 -73.17175,13.48549 -73.17175,13.48549"
id="path5143"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cssc" />
<polygon
id="polygon4214"
points="13,16 13,13 16,13 16,11 13,11 13,8 11,8 11,11 8,11 8,13 11,13 11,16 "
transform="matrix(2.4146912,3.3958791,-3.3958791,2.4146912,350.42212,281.31234)"
style="fill:#1eb3e6;fill-opacity:1;stroke:#000000;stroke-width:0.64863962;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<g
transform="matrix(1.8935965,0,0,1.8935965,223.4302,425.56814)"
id="g12022">
<g
id="g12024">
<rect
style="fill:#1d1d1b"
x="8"
y="15"
width="21"
height="2"
id="rect12026" />
</g>
<g
id="g12028">
<rect
style="fill:#1d1d1b"
x="8"
y="9.1999998"
width="21"
height="2"
id="rect12030" />
</g>
<g
id="g12032">
<rect
style="fill:#1d1d1b"
x="8"
y="20.799999"
width="21"
height="2"
id="rect12034" />
</g>
</g>
<path
style="fill:#3465a4;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 396.8412,270.66569 8.97043,-4.12681 8.59179,10.11466 -14.91538,7.18147 -2.64684,-13.16932 z"
id="path4324-71-7"
inkscape:path-effect="#path-effect4326-0-3-3"
inkscape:original-d="m 396.8412,270.66569 8.97043,-4.12681 8.59179,10.11466 -14.91538,7.18147 z"
inkscape:connector-curvature="0" />
</g>
</svg>
static/img/action_profile.png

130 KB

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="84.615532mm"
height="84.415535mm"
viewBox="0 0 299.81881 299.11016"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="action_profile.svg"
inkscape:export-filename="/home/romain/comex/comex2/static/img/action_profile.png"
inkscape:export-xdpi="150.14534"
inkscape:export-ydpi="150.14534">
<defs
id="defs4">
<marker
inkscape:stockid="TriangleInM"
orient="auto"
refY="0.0"
refX="0.0"
id="TriangleInM"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path5285"
d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(-0.4)" />
</marker>
<marker
inkscape:stockid="Arrow1Lstart"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow1Lstart"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path5149"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.8) translate(12.5,0)" />
</marker>
<inkscape:path-effect
effect="spiro"
id="path-effect4326"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0-9"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0-5"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0-7"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0-53"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0-8"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0-93"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0-74"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0-90"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0-85"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0-3"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0-38"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0-97"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0-32"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0-3-3"
is_visible="true" />
<filter
inkscape:label="Emergence"
inkscape:menu="Shadows and Glows"
inkscape:menu-tooltip="Cut out, add inner shadow and colorize some parts of an image"
style="color-interpolation-filters:sRGB;"
id="filter12936">
<feTurbulence
baseFrequency="0.09"
numOctaves="5"
type="fractalNoise"
result="result6"
id="feTurbulence12938" />
<feColorMatrix
values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 4.9 -2.9 "
result="result5"
in="result6"
id="feColorMatrix12940" />
<feComposite
in2="result5"
operator="in"
in="SourceGraphic"
id="feComposite12942" />
<feMorphology
result="result3"
radius="6"
operator="dilate"
id="feMorphology12944" />
<feTurbulence
baseFrequency="0.2"
numOctaves="1"
type="fractalNoise"
result="result91"
id="feTurbulence12946" />
<feDisplacementMap
result="result4"
scale="15"
yChannelSelector="G"
xChannelSelector="R"
in="result3"
in2="result91"
id="feDisplacementMap12948" />
<feComposite
in2="result4"
operator="arithmetic"
result="result2"
k1="0.5"
k3="1"
id="feComposite12950" />
<feConvolveMatrix
order="3 3"
kernelMatrix="1 0 0 0 2 0 0 0 -1 "
targetX="0"
targetY="0"
divisor="1.5"
edgeMode="duplicate"
in="result2"
id="feConvolveMatrix12952"
result="fbSourceGraphic" />
<feColorMatrix
result="fbSourceGraphicAlpha"
in="fbSourceGraphic"
values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
id="feColorMatrix13214" />
<feColorMatrix
id="feColorMatrix13216"
values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.21 0.72 0.07 0 0 "
result="result1"
in="fbSourceGraphic" />
<feColorMatrix
id="feColorMatrix13218"
values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 2 0 "
result="result9" />
<feComposite
id="feComposite13220"
in2="result9"
in="fbSourceGraphic"
operator="in"
result="result4" />
<feFlood
id="feFlood13222"
result="result2"
flood-color="rgb(0,0,0)" />
<feComposite
id="feComposite13224"
in2="result9"
operator="in"
result="result10" />
<feComposite
id="feComposite13226"
in2="result4"
operator="atop" />
<feGaussianBlur
id="feGaussianBlur13228"
stdDeviation="3"
result="result8" />
<feOffset
id="feOffset13230"
dx="3"
dy="3"
result="result3"
in="result8" />
<feFlood
id="feFlood13232"
flood-opacity="1"
flood-color="rgb(219,173,62)"
result="result5" />
<feMerge
id="feMerge13234"
result="result6">
<feMergeNode
id="feMergeNode13236"
in="result5" />
<feMergeNode
id="feMergeNode13238"
in="result3" />
<feMergeNode
id="feMergeNode13240"
in="result4" />
</feMerge>
<feComposite
id="feComposite13242"
in2="fbSourceGraphic"
operator="in"
result="result7" />
</filter>
<filter
inkscape:menu="Shadows and Glows"
inkscape:menu-tooltip="Cut out, add inner shadow and colorize some parts of an image"
style="color-interpolation-filters:sRGB;"
inkscape:label="Emergence"
id="filter13244">
<feColorMatrix
values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.21 0.72 0.07 0 0 "
result="result1"
id="feColorMatrix13246" />
<feColorMatrix
values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 2 0 "
result="result9"
id="feColorMatrix13248" />
<feComposite
in2="result9"
in="SourceGraphic"
operator="in"
result="result4"
id="feComposite13250" />
<feFlood
result="result2"
flood-color="rgb(0,0,0)"
id="feFlood13252" />
<feComposite
in2="result9"
operator="in"
result="result10"
id="feComposite13254" />
<feComposite
in2="result4"
operator="atop"
id="feComposite13256" />
<feGaussianBlur
stdDeviation="3"
result="result8"
id="feGaussianBlur13258" />
<feOffset
dx="3"
dy="3"
result="result3"
in="result8"
id="feOffset13260" />
<feFlood
flood-opacity="1"
flood-color="rgb(219,173,62)"
result="result5"
id="feFlood13262" />
<feMerge
result="result6"
id="feMerge13264">
<feMergeNode
in="result5"
id="feMergeNode13266" />
<feMergeNode
in="result3"
id="feMergeNode13268" />
<feMergeNode
in="result4"
id="feMergeNode13270" />
</feMerge>
<feComposite
in2="SourceGraphic"
operator="in"
result="result7"
id="feComposite13272" />
</filter>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.7"
inkscape:cx="84.415637"
inkscape:cy="335.80387"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1600"
inkscape:window-height="833"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
fit-margin-top="-0.2"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
showguides="false" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-170.34956,-223.30853)">
<rect
style="opacity:1;fill:none;fill-opacity:1;stroke:#d35f5f;stroke-width:7.82567978;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter12936)"
id="rect4925"
width="277.33231"
height="234.7327"
x="178.32639"
y="270.4985"
ry="62.857143"
transform="matrix(0.97769877,0,0,0.83280665,14.301271,60.786698)"
rx="18.902372" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:12.5px;line-height:110.00000238%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter13244)"
x="320.53345"
y="343.41867"
id="text12954"
sodipodi:linespacing="110%"><tspan
sodipodi:role="line"
id="tspan12956"
x="320.53345"
y="343.41867"
style="font-style:oblique;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:30px;line-height:148.00000191%;font-family:Purisa;-inkscape-font-specification:'Purisa Bold Oblique';text-align:center;text-anchor:middle">add</tspan><tspan
sodipodi:role="line"
x="320.53345"
y="387.81866"
style="font-style:oblique;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:30px;line-height:148.00000191%;font-family:Purisa;-inkscape-font-specification:'Purisa Bold Oblique';text-align:center;text-anchor:middle;fill:#0000ff"
id="tspan12962">Your Profile</tspan><tspan
sodipodi:role="line"
x="320.53345"
y="432.21866"
style="font-style:oblique;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:30px;line-height:148.00000191%;font-family:Purisa;-inkscape-font-specification:'Purisa Bold Oblique';text-align:center;text-anchor:middle"
id="tspan13280">to the data!</tspan></text>
</g>
</svg>
static/img/action_query.png

23.8 KB

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="84.615532mm"
height="84.415535mm"
viewBox="0 0 299.81881 299.11016"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="action_query.svg"
inkscape:export-filename="/home/romain/comex/comex2/static/img/action_query.png"
inkscape:export-xdpi="150.14534"
inkscape:export-ydpi="150.14534">
<defs
id="defs4">
<inkscape:path-effect
effect="spiro"
id="path-effect4326"
is_visible="true" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.4"
inkscape:cx="77.519193"
inkscape:cy="153.28134"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1600"
inkscape:window-height="833"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
fit-margin-top="-0.2"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-170.34956,-223.30853)">
<circle
style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:9;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:9,18;stroke-dashoffset:0;stroke-opacity:1"
id="path6928"
cx="320.17776"
cy="372.42807"
r="140.56601" />
<g
id="g12803"
transform="matrix(0.95571977,0,0,0.95571977,14.087786,14.200633)">
<text
sodipodi:linespacing="125%"
id="text4296"
y="393.54709"
x="200.48189"
style="font-style:normal;font-weight:normal;font-size:62.27104568px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#323232;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:93.40657043px;font-family:Calibri;-inkscape-font-specification:'Calibri Bold';fill:#323232;fill-opacity:1"
y="393.54709"
x="200.48189"
id="tspan4298"
sodipodi:role="line"><tspan
id="tspan12716"
style="fill:none">Q</tspan>uery</tspan></text>
<text
sodipodi:linespacing="54.000002%"
id="text4303"
y="364.52042"
x="216.50439"
style="font-style:normal;font-weight:normal;font-size:12.5px;line-height:54.00000215%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:54.00000215%;font-family:Cambria;-inkscape-font-specification:Cambria"
y="364.52042"
x="216.50439"
id="tspan4305"
sodipodi:role="line">key</tspan><tspan
id="tspan4307"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:54.00000215%;font-family:Cambria;-inkscape-font-specification:Cambria"
y="371.27042"
x="216.50439"
sodipodi:role="line">words</tspan></text>
<ellipse
ry="23.67676"
rx="26.283714"
cy="-73.82975"
cx="431.11615"
transform="matrix(0.38656868,0.92226062,-0.88915834,0.45759966,0,0)"
id="path17162-6"
style="fill:#7dffff;fill-opacity:0.61827955;stroke:#323232;stroke-width:10.01538849;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<g
transform="matrix(1.1509713,0.08484079,-0.08771189,1.1369158,-45.160357,-66.119567)"
id="g12720">
<rect
style="fill:#3465a4;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2.77612925;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect3554"
width="34.687897"
height="8.1423111"
x="480.92902"
y="4.986599"
transform="matrix(0.60941858,0.79284866,-0.79726634,0.60362769,0,0)"
inkscape:transform-center-x="5.5707816"
inkscape:transform-center-y="4.7163073" />
<path
style="fill:#3465a4;stroke:#000000;stroke-width:2.77609229;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 279.90063,383.17918 3.90896,-2.95956 5.24695,3.98676 -6.46538,5.07599 -2.69053,-6.10319 z"
id="path4324"
inkscape:path-effect="#path-effect4326"
inkscape:original-d="m 279.90063,383.17918 3.90896,-2.95956 5.24695,3.98676 -6.46538,5.07599 z"
inkscape:connector-curvature="0"
inkscape:transform-center-x="17.527562"
inkscape:transform-center-y="-11.055272" />
</g>
</g>
</g>
</svg>
static/img/action_stats.png

10 KB

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="84.615532mm"
height="84.415535mm"
viewBox="0 0 299.81881 299.11016"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="action_stats.svg"
inkscape:export-filename="/home/romain/comex/comex2/static/img/action_stats.png"
inkscape:export-xdpi="150.14534"
inkscape:export-ydpi="150.14534">
<defs
id="defs4">
<marker
inkscape:stockid="TriangleInM"
orient="auto"
refY="0.0"
refX="0.0"
id="TriangleInM"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path5285"
d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(-0.4)" />
</marker>
<marker
inkscape:stockid="Arrow1Lstart"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow1Lstart"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path5149"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.8) translate(12.5,0)" />
</marker>
<inkscape:path-effect
effect="spiro"
id="path-effect4326"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0-9"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0-5"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0-7"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0-53"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0-8"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0-93"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0-74"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0-90"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0-85"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0-3"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0-38"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0-97"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0-32"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0-3-3"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0-38-7"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect4326-0-38-7-0"
is_visible="true" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.7"
inkscape:cx="-89.474861"
inkscape:cy="210.56691"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1600"
inkscape:window-height="833"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
fit-margin-top="-0.2"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-170.34956,-223.30853)">
<rect
style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:7.82567978;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4925"
width="285.57281"
height="287.5491"
x="178.58095"
y="227.88568" />
<path
style="fill:#ffcc00;stroke:#000000;stroke-width:9.09265804;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 214.81671,376.15076 72.44822,0.89347 0.92179,87.50034 -68.88476,-0.19539 -4.48525,-88.19842 z"
id="path4324-0"
inkscape:path-effect="#path-effect4326-0-38"
inkscape:original-d="m 214.81671,376.15076 72.44822,0.89347 0.92179,87.50034 -68.88476,-0.19539 z"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<g
id="g12024"
transform="matrix(1.7217826,0,0,1.7217826,223.03281,322.43455)">
<rect
id="rect12026"
height="2"
width="21"
y="15"
x="8"
style="fill:#1d1d1b" />
</g>
<g
id="g12032"
transform="matrix(1.7217826,0,0,1.7217826,223.03281,318.43455)">
<rect
id="rect12034"
height="2"
width="21"
y="20.799999"
x="8"
style="fill:#1d1d1b" />
</g>
<path
style="fill:#008080;stroke:#000000;stroke-width:9.09265804;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 290.92144,410.06888 67.32752,1.96953 0.95919,52.978 -71.67948,-0.1183 3.39277,-54.82923 z"
id="path4324-0-8"
inkscape:path-effect="#path-effect4326-0-38-7"
inkscape:original-d="m 290.92144,410.06888 67.32752,1.96953 c 156.65461,-36.76999 52.60971,17.22478 0.95919,52.978 l -71.67948,-0.1183 z"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
style="fill:#008000;stroke:#000000;stroke-width:9.09265804;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 359.47953,382.84568 79.34299,0.11178 -10.5004,81.61395 -69.36089,-0.18067 0.5183,-81.54506 z"
id="path4324-0-8-5"
inkscape:path-effect="#path-effect4326-0-38-7-0"
inkscape:original-d="m 359.47953,382.84568 79.34299,0.11178 c 151.58737,-56.14934 39.4794,27.01726 -10.5004,81.61395 l -69.36089,-0.18067 z"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<g
id="g12024-8"
transform="matrix(1.7217826,0,0,1.7217826,292.94428,349.82567)">
<rect
id="rect12026-5"
height="2"
width="21"
y="15"
x="8"
style="fill:#1d1d1b" />
</g>
<g
id="g12032-5"
transform="matrix(1.0925309,0,0,1.7217826,297.97829,345.82567)">
<rect
id="rect12034-7"
height="2"
width="21"
y="20.799999"
x="8"
style="fill:#1d1d1b" />
</g>
<g
id="g12028-3"
transform="matrix(1.7217826,0,0,1.7217826,363.08765,340.99088)">
<rect
id="rect12030-9"
height="2"
width="21"
y="9.1999998"
x="8"
style="fill:#1d1d1b" />
</g>
<g
id="g12032-6"
transform="matrix(1.7217826,0,0,1.7217826,363.08765,326.99088)">
<rect
id="rect12034-9"
height="2"
width="21"
y="20.799999"
x="8"
style="fill:#1d1d1b" />
</g>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:11.36582279px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="211.13902"
y="524.05255"
id="text14656"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan14658"
x="211.13902"
y="524.05255"
style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:45.46329117px;font-family:'Helvetica Inserat LT Std';-inkscape-font-specification:'Helvetica Inserat LT Std Ultra-Bold'" /></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:12.5px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="251.77814"
y="309.56155"
id="text14660"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan14662"
x="251.77814"
y="309.56155"
style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:50px;font-family:'Helvetica Inserat LT Std';-inkscape-font-specification:'Helvetica Inserat LT Std Ultra-Bold'">STATS !</tspan></text>
</g>
</svg>
......@@ -53,11 +53,21 @@ function completionAsYouGo() {
}
// list of missing fields
cmxClt.uform.mainMessage.innerHTML += cmxClt.ulListFromLabelsArray(mandatoryMissingFields, ['red']) + cmxClt.ulListFromLabelsArray(optionalMissingFields, ['white'], "You may also want to fill:")
cmxClt.uform.mainMessage.innerHTML += cmxClt.ulListFromLabelsArray(mandatoryMissingFields, ['red'])
if (optionalMissingFields.length) {
cmxClt.uform.mainMessage.innerHTML += cmxClt.ulListFromLabelsArray(
optionalMissingFields,
['white'],
"You may also want to fill:"
)
}
// stamp => #last_modified_date
cmxClt.uform.stampTime()
console.log("timestamp", cmxClt.uform.timestamp.value)
// debug
// console.log("timestamp:", cmxClt.uform.timestamp.value)
}
// run first check on existing profile data pre-filled by the template
......
{% extends "base_layout.html" %}
{% block headers %}
<title>Community Explorer Profile</title>
<meta name="description" content="Community Explorer Wall">
<meta name="keywords" content="community, user profiles, data exploration">
<link type=text/css rel=stylesheet href="{{ url_for('static', filename='css/comex_alt.css') }}">
{% endblock %}
<!-- ======================================================================= -->
{% block main_content %}
<!-- classic intro -->
<div class="row spacerrow">&nbsp;</div>
<div class="row">
<div class="spacer col-lg-2 col-md-1 hidden-sm-down">&nbsp;</div>
<div class="my_form_box col-lg-7 col-md-9 col-sm-12">
<!-- ##################### ( WELCOME ) #################### -->
<div id="welcome">
<h2 class="oldstyle">Welcome to the complex systems community explorer</h2>
<p class="mini-hero">
Map your own socio-semantic network or explore sub-communities.
</p>
</div>
</div>
<div class="spacer col-lg-2 col-md-1 hidden-sm-down">&nbsp;</div>
</div>
<!-- colored notebook section: EXPLORE -->
<div class="row spacerrow">&nbsp;</div>
<div class="row banner-row" style="background-color:#00B4E6">
<div class="spacer col-lg-1 col-md-1 hidden-sm-down">&nbsp;</div>
<div class="col-lg-3 col-md-3 col-sm-10">
<div class="panel panel-primary action-announce">
<div class="panel-body">
<div class="cmx-action-wrap">
<img src="{{ url_for('static', filename='img/action_explore.png') }}"
class="cmx-action">
</div>
<h2 class="oldstyle">Graph Explorer</h2>
<p class="mini-hero">
Use our explorer view to browse the map of the community.
<br/>
<br/>
(It's a <strong> network of scholars </strong> connected by their research subjects.)
</p>
</div>
</div>
</div>
<div class="col-lg-7 col-md-7 col-sm-10 wwwpanel">
<div class="panel panel-default">
<div class="panel-heading">
<p style="float:right">
<a target="_blank" href="http://localhost/explorerjs.html?type=%22filter%22&nodeidparam=%22%257B%257D%22">
<span class="glyphicon glyphicon-new-window"></span>
Open in another window
</a>
</p>
</div>
<div class="panel-body wwwthumb">
<iframe src="http://localhost/explorerjs.html?type=%22filter%22&nodeidparam=%22%257B%257D%22" class="wwwthumbsmall" frameborder="0" scrolling="yes">
<p>Your web browser doesn't support iframes. :(</p>
</iframe>
</div>
</div>
</div>
<div class="spacer col-lg-1 col-md-2 hidden-sm-down">&nbsp;</div>
</div>
<!-- white notebook section: PROFILE -->
<div class="row spacerrow">&nbsp;</div>
<div class="row banner-row" style="background-color:#fff">
<div class="spacer col-lg-1 col-md-1 hidden-sm-down">&nbsp;</div>
<div class="col-lg-3 col-md-3 col-sm-10">
<div class="panel panel-primary action-announce">
<div class="panel-body">
<div class="cmx-action-wrap">
<img src="{{ url_for('static', filename='img/action_profile.png') }}"
class="cmx-action">
</div>
<h2 class="oldstyle">Sharing your "carte de visite"</h2>
<p class="mini-hero">
Add your keywords and you will be plotted in the map
<br/>Selecting you will flash a visit card like this:
<div id="information-example">
<br><h4>Information:</h4><ul><li><b>Dr. Jacques Monod</b></li><li><img src="https://upload.wikimedia.org/wikipedia/commons/7/70/Jacques_Monod_nobel.jpg" width="80px" style="float:left;margin:5px"><b>Country: </b>France<br><b>Position: </b>Research Director<br><b>Keywords: </b>emergence, biology, systems biology, autopoiesis, biochemistry.<br>[ <a href="https://fr.wikipedia.org/wiki/Jacques_Monod" target="blank"> View homepage </a>]<br></li></ul><br>
</div>
</p>
</div>
</div>
</div>
<div class="col-lg-7 col-md-7 col-sm-10">
<div class="panel panel-default wwwpanel">
<div class="panel-heading">
<p style="float:right">
<a target="_blank" href="http://localhost/services/user/{% if current_user.info %}profile{% else %}register{% endif %}">
<span class="glyphicon glyphicon-new-window"></span>
Open in another window
</a>
</p>
</div>
<div class="panel-body wwwthumb">
<iframe src="http://localhost/services/user/{% if current_user.info %}profile{% else %}register{% endif %}" class="wwwthumb" frameborder="0" scrolling="yes">
<p>Your web browser doesn't support iframes. :(</p>
</iframe>
</div>
</div>
</div>
<div class="spacer col-lg-1 col-md-2 hidden-sm-down">&nbsp;</div>
</div>
<!-- coloured notebook section: QUERY -->
<div class="row spacerrow">&nbsp;</div>
<div class="row banner-row" style="background-color:#FAB612">
<div class="spacer col-lg-1 col-md-1 hidden-sm-down">&nbsp;</div>
<div class="col-lg-3 col-md-3 col-sm-10">
<div class="panel panel-primary action-announce">
<div class="panel-body">
<div class="cmx-action-wrap">
<img src="{{ url_for('static', filename='img/action_query.png') }}"
class="cmx-action">
</div>
<h2 class="oldstyle">Refine your search</h2>
<p class="mini-hero">
Use filters to select keywords and scholars matching your subjects of interests.
<ul>
<li>countries</li>
<li>keywords</li>
<li>organizations</li>
<li>labs</li>
<li>community hashtags</li>
</ul>
</p>
</div>
</div>
</div>
<div class="col-lg-7 col-md-7 col-sm-10">
<div class="panel panel-default wwwpanel">
<div class="panel-heading">
<p style="float:right">
<a target="_blank" href="http://localhost/index.html">
<span class="glyphicon glyphicon-new-window"></span>
Open in another window
</a>
</p>
</div>
<div class="panel-body wwwthumb">
<iframe src="http://localhost/queries.html" class="wwwthumb" frameborder="0" scrolling="yes">
<p>Your web browser doesn't support iframes. :(</p>
</iframe>
</div>
</div>
</div>
<div class="spacer col-lg-1 col-md-2 hidden-sm-down">&nbsp;</div>
</div>
<!-- white notebook section: STATS -->
<div class="row spacerrow">&nbsp;</div>
<div class="row banner-row" style="background-color:#fff">
<div class="spacer col-lg-1 col-md-1 hidden-sm-down">&nbsp;</div>
<div class="col-lg-3 col-md-3 col-sm-10">
<div class="panel panel-primary action-announce">
<div class="panel-body">
<div class="cmx-action-wrap">
<img src="{{ url_for('static', filename='img/action_stats.png') }}"
class="cmx-action">
</div>
<h2 class="oldstyle">Analyze the community structure and trends</h2>
<p class="mini-hero">
Our pie-chart directories allow you to explore <strong>scholars</strong>, <strong>keywords</strong> and <strong>affiliations</strong> statistics for any query.
</p>
</div>
</div>
</div>
<div class="col-lg-7 col-md-7 col-sm-10">
<div class="panel panel-default wwwpanel">
<div class="panel-heading">
<p style="float:right">
<a target="_blank" href="http://localhost/print_directory.php?query=%7B%7D">
<span class="glyphicon glyphicon-new-window"></span>
Open in another window
</a>
</p>
</div>
<div class="panel-body wwwthumb">
<iframe src="http://localhost/print_directory.php?query=%7B%7D" class="wwwthumb" frameborder="0" scrolling="yes">
<p>Your web browser doesn't support iframes. :(</p>
</iframe>
</div>
</div>
</div>
<div class="spacer col-lg-1 col-md-2 hidden-sm-down">&nbsp;</div>
</div>
{% endblock %}
<!-- ======================================================================= -->
{% block last_imports %}
<script type="text/javascript">
// ---------
// a copy of the user info in json
// ---------
var uinfo = {{current_user.json_info|safe}};
</script>
<!-- our js -->
<script src="{{ url_for('static', filename='js/comex_user_shared.js') }}"></script>
{% endblock %}
......@@ -8,7 +8,10 @@
<link type=text/css rel=stylesheet href="{{ url_for('static', filename='css/topbar_bootstrap_retrocompatibility.css') }}">
<link type=text/css rel=stylesheet href="{{ url_for('static', filename='js/jquery-ui-1.12.1/jquery-ui.min.css') }}">
<link type=text/css rel=stylesheet href="{{ url_for('static', filename='js/realperson/jquery.realperson.css') }}">
<link type=text/css rel=stylesheet href="{{ url_for('static', filename='css/comex_reg.css') }}">
<link type=text/css rel=stylesheet href="{{ url_for('static', filename='css/comex_user.css') }}">
<!-- <link type=text/css rel=stylesheet href="{{ url_for('static', filename='css/bootstrap_index.css') }}"> -->
<!-- ## JS ## -->
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment