mirror of
https://gitlab.crans.org/bde/nk20
synced 2025-06-21 01:48:21 +02:00
Wrapped apps
This commit is contained in:
89
apps/wrapped/models.py
Normal file
89
apps/wrapped/models.py
Normal file
@ -0,0 +1,89 @@
|
||||
# Copyright (C) 2018-2024 by BDE ENS Paris-Saclay
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
import os
|
||||
|
||||
from django.db import models
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from note.models import Note
|
||||
|
||||
|
||||
class Bde(models.Model):
|
||||
"""
|
||||
describe a BDE
|
||||
"""
|
||||
|
||||
name = models.CharField(
|
||||
max_length=255,
|
||||
verbose_name=_('name'),
|
||||
)
|
||||
|
||||
date_start = models.DateTimeField(
|
||||
verbose_name=_('date start'),
|
||||
)
|
||||
|
||||
date_end = models.DateTimeField(
|
||||
verbose_name=_('date end'),
|
||||
)
|
||||
|
||||
class Meta:
|
||||
verbose_name=_('BDE')
|
||||
verbose_name_plural=_('BDE')
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
|
||||
class Wrapped(models.Model):
|
||||
"""
|
||||
A Wrapped is associated to a note, a BDE year,
|
||||
"""
|
||||
generated = models.BooleanField(
|
||||
verbose_name=_('generated'),
|
||||
default=False,
|
||||
)
|
||||
|
||||
public = models.BooleanField(
|
||||
verbose_name=_('public'),
|
||||
default=False,
|
||||
)
|
||||
|
||||
bde = models.ForeignKey(
|
||||
Bde,
|
||||
on_delete=models.PROTECT,
|
||||
related_name='+',
|
||||
verbose_name=_('bde'),
|
||||
)
|
||||
|
||||
note = models.ForeignKey(
|
||||
Note,
|
||||
on_delete=models.PROTECT,
|
||||
related_name='+',
|
||||
verbose_name=_('note'),
|
||||
)
|
||||
|
||||
data_json = models.TextField(
|
||||
default='{}',
|
||||
verbose_name=_('data json'),
|
||||
help_text=_('data in the wrapped and generated by the script generate_wrapped'),
|
||||
)
|
||||
|
||||
class Meta:
|
||||
verbose_name=_('Wrapped')
|
||||
verbose_name_plural=_('Wrappeds')
|
||||
unique_together=('note','bde')
|
||||
|
||||
def __str__(self):
|
||||
return 'NoteKfet Wrapped of {note} sponsored by {bde}'.format(bde=str(self.bde),note=str(self.note))
|
||||
def makepublic(self):
|
||||
self.public = not self.public
|
||||
self.save()
|
||||
return
|
||||
|
||||
@property
|
||||
def data(self):
|
||||
return json.load(self.data_json)
|
||||
|
||||
@data.setter
|
||||
def data(self, data):
|
||||
self.data_json = json.dumps(data, indent=2)
|
Reference in New Issue
Block a user