old_console/networkmap/models.py
2024-11-02 14:12:45 +03:00

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"))