38 lines
1.8 KiB
Python
38 lines
1.8 KiB
Python
from django.contrib.auth.models import User
|
|
from django.db import models
|
|
from django.utils.translation import gettext_lazy
|
|
|
|
from console.models import NameDescriptionModel
|
|
|
|
|
|
class NetworkMap(NameDescriptionModel):
|
|
""" Class for holding JSON with network map data
|
|
:user - field for storing user, with which map is associated
|
|
:map_json - field for storing json data for the network map
|
|
:col_nodes - JSON for storing collapsed nodes on user graph
|
|
"""
|
|
user = models.ForeignKey(User, on_delete=models.CASCADE, blank=True, null=True)
|
|
map_json = models.JSONField(default=dict)
|
|
col_nodes = models.JSONField(default=dict, help_text=gettext_lazy('JSON for storing collapsed nodes on user graph'))
|
|
shared_map = models.BooleanField(default=False) # Declaring if this map could be seen by all users
|
|
|
|
class Meta:
|
|
unique_together = [['name', 'user']]
|
|
|
|
|
|
class NetworkMapBackgroundImage(NameDescriptionModel):
|
|
""" Model for storing all background images for networkmaps
|
|
:network_map - pk of the map, that current background image is linked to
|
|
:bounds - field for storing position data for background image
|
|
:locked (currently unused) - field for storing flag if picture is locked
|
|
:url - field for providing static path of image for frontend to load
|
|
:visible (currently unused) - field for storing flag if picture is visible or not
|
|
"""
|
|
network_map = models.ForeignKey(NetworkMap, on_delete=models.CASCADE)
|
|
bounds = models.JSONField(default=dict)
|
|
locked = models.BooleanField(default=False)
|
|
url = models.ImageField(upload_to='networkmap/', verbose_name=gettext_lazy('Network map background image'))
|
|
visible = models.BooleanField(default=True)
|
|
|
|
class Meta:
|
|
unique_together = (("name", "network_map"))
|