|
| 1 | +import re |
1 | 2 | from typing import Optional
|
2 | 3 |
|
3 | 4 | from flask import g, render_template, url_for
|
@@ -237,9 +238,9 @@ class NetworkForm(FlaskForm):
|
237 | 238 | _('height'),
|
238 | 239 | default=600,
|
239 | 240 | validators=[InputRequired()])
|
240 |
| - charge = StringField( |
| 241 | + charge = IntegerField( |
241 | 242 | _('charge'),
|
242 |
| - default=str(-80), |
| 243 | + default=-80, |
243 | 244 | validators=[InputRequired()])
|
244 | 245 | distance = IntegerField(
|
245 | 246 | _('distance'),
|
@@ -275,16 +276,24 @@ def network(dimensions: Optional[int] = 0, id_: Optional[int] = None) -> str:
|
275 | 276 | form.classes.choices = [
|
276 | 277 | (class_.name, class_.label)
|
277 | 278 | for class_ in [x for x in classes if x.name != 'object_location']]
|
| 279 | + colors = {} |
| 280 | + for class_ in classes: |
| 281 | + color_code = getattr(form, class_.name).data |
| 282 | + colors[class_.name] = class_.network_color |
| 283 | + getattr(form, class_.name).data = class_.network_color |
| 284 | + if re.match(r"^(#)?[A-Fa-f0-9]+$", color_code): |
| 285 | + colors[class_.name] = color_code |
| 286 | + getattr(form, class_.name).data = color_code |
278 | 287 | if entity:
|
279 | 288 | json_data = Network.get_ego_network_json(
|
280 |
| - {c.name: getattr(form, c.name).data for c in classes}, |
| 289 | + colors, |
281 | 290 | entity.id,
|
282 | 291 | int(form.depth.data),
|
283 | 292 | dimensions)
|
284 | 293 | crumbs = [link(entity, index=True), entity, _('network')]
|
285 | 294 | else:
|
286 | 295 | json_data = Network.get_network_json(
|
287 |
| - {c.name: getattr(form, c.name).data for c in classes}, |
| 296 | + colors, |
288 | 297 | bool(form.orphans.data),
|
289 | 298 | dimensions)
|
290 | 299 | crumbs = [
|
|
0 commit comments