Files
ihrm/horilla_views/models.py

92 lines
2.2 KiB
Python

import json
from django.contrib.auth.models import User
from django.db import models
from horilla.horilla_middlewares import _thread_locals
from horilla.models import HorillaModel
# Create your models here.
class ToggleColumn(HorillaModel):
"""
ToggleColumn
"""
user_id = models.ForeignKey(
User,
on_delete=models.CASCADE,
related_name="user_excluded_column",
editable=False,
)
path = models.CharField(max_length=256)
excluded_columns = models.JSONField(default=list)
def save(self, *args, **kwargs):
request = getattr(_thread_locals, "request", {})
user = request.user
self.user_id = user
return super().save(*args, **kwargs)
def __str__(self) -> str:
return str(self.user_id.employee_get)
class ActiveTab(HorillaModel):
"""
ActiveTab
"""
path = models.CharField(max_length=256)
tab_target = models.CharField(max_length=256)
class ActiveGroup(HorillaModel):
"""
ActiveGroup
"""
path = models.CharField(max_length=256)
group_target = models.CharField(max_length=256)
group_by_field = models.CharField(max_length=256)
class SavedFilter(HorillaModel):
"""
SavedFilter
"""
title = models.CharField(max_length=20, null=True)
color = models.CharField(max_length=10, default="")
is_default = models.BooleanField(default=False)
filter = models.TextField()
urlencode = models.TextField(default="")
path = models.CharField(max_length=256)
referrer = models.CharField(max_length=256, default="")
xss_exempt_fields = [
"urlencode",
]
def save(self, *args, **kwargs):
SavedFilter.objects.filter(
is_default=True, path=self.path, created_by=self.created_by
).exclude(id=self.pk).update(is_default=False)
return super().save(*args, **kwargs)
def __str__(self) -> str:
return str(self.title)
class ActiveView(HorillaModel):
"""
This model to store the active view type for HNV
"""
path = models.CharField(max_length=256)
type = models.CharField(max_length=50)
def save(self, *args, **kwargs):
return super().save(*args, **kwargs)