class Client(models.Model): _id = models.ObjectIdField(default=None) username = models.CharField(max_length=64) email = models.CharField(max_length=200, default="") memberships = models.DictField(default={}) objects = models.DjongoManager()
class EmbeddedEntry(models.Model): blog = models.EmbeddedModelField(model_container=EmbeddedBlog) headline = models.CharField(max_length=255) _id = models.ObjectIdField() def __str__(self): return self.headline
class DictEntry(models.Model): _id = models.ObjectIdField() headline = models.CharField(max_length=255) blog = models.DictField() def __str__(self): return self.headline
class UsuarioEmbebido(models.Model): _id = models.ObjectIdField() nif_cliente = models.CharField(max_length=20, blank=False, default='') nombre = models.CharField(max_length=255, blank=False, default='') class Meta: abstract = True
class Task(models.Model): """ Represents a Tasks assignable to users for project/topic nodes """ STATUS_CHOICES = [ ("NEW", "New"), ("IN_PROGRESS", "In Progress"), ("COMPLETE", "Complete"), ] _id = models.ObjectIdField() # The node can be a Project or a Subclass of Topic node = models.ForeignKey("TreeStructure", on_delete=models.CASCADE) title = models.CharField(max_length=255, unique=False, blank=False) created_by = models.ForeignKey("vpmoauth.MyUser", on_delete=models.CASCADE, related_name="created_task_set") created_at = models.DateTimeField(auto_now_add=True, auto_now=False) updated_at = models.DateTimeField(auto_now=True) # The user the task is assigned to currently (defaults to created_by) assignee = models.ForeignKey("vpmoauth.MyUser", on_delete=models.CASCADE, related_name="assigned_task_set") status = models.CharField(max_length=11, choices=STATUS_CHOICES, blank=False, unique=False) due_date = models.DateField(auto_now=False, auto_now_add=False, null=False) closed_at = models.DateTimeField(auto_now=False, auto_now_add=False, null=True) def __str__(self): return "<{title}>: {due_date}".format(title=self.title, due_date=self.due_date.strftime("%d/%m/%Y")) def save(self, *args, **kwargs): """ Minor amendments to save for generic conditions """ if self.status != "COMPLETE": self.closed_at = None super(Task, self).save(*args, **kwargs)
class VideoTag(models.Model): _id = models.ObjectIdField(primary_key=True) tid = models.IntegerField() pubdate = models.IntegerField() # tag_id = ObjectIdField() tag_id = models.BinaryField(max_length=12) aids = models.ListField(models.IntegerField()) avg_stat_view = models.IntegerField() avg_stat_danmaku = models.IntegerField() avg_stat_reply = models.IntegerField() avg_stat_favorite = models.IntegerField() avg_stat_coin = models.IntegerField() avg_stat_share = models.IntegerField() avg_stat_like = models.IntegerField() avg_stat_dislike = models.IntegerField() objects = models.DjongoManager() class Meta: db_table = 'video_tag' indexes = [ models.Index(fields=[ '_id', ]), ] constraints = [ models.UniqueConstraint(fields=[ 'tid', 'pubdate', 'tag_id', ], name='unique_tid_pubdate_tagid') ]
class Flow(models.Model): _id = models.ObjectIdField() check_id = models.CharField(max_length=24) switch_name = models.CharField(max_length=50) priority = models.IntegerField() duration_sec = models.IntegerField() hard_timeout = models.IntegerField() byte_count = models.IntegerField() length = models.IntegerField() actions = models.EmbeddedField( model_container=Actions, ) duration_nsec = models.IntegerField() packet_count = models.IntegerField() idle_timeout = models.IntegerField() cookie = models.IntegerField() flags = models.IntegerField() table_id = models.IntegerField() match = models.EmbeddedField( model_container=Match, ) created_at = models.DateTimeField(auto_now_add=True) objects = models.DjongoManager() def __str__(self): return self.switch_name
class employees(models.Model): firstName = models.CharField(max_length=15) lastName = models.CharField(max_length=15) emp_id = models.ObjectIdField() def __str__(self): return self.emp_id
class ReferenceEntry(models.Model): _id = models.ObjectIdField() headline = models.CharField(max_length=255) authors = models.ArrayReferenceField(ReferenceAuthor) def __str__(self): return self.headline
class RegistroPassagem(models.Model): _id = models.ObjectIdField() DATA_HORA = models.DateTimeField() LOCAL = models.IntegerField() RODOVIA = models.CharField(max_length=100) KM = models.CharField(max_length=100) METRO = models.CharField(max_length=100) SENTIDO = models.CharField(max_length=100) FAIXA = models.IntegerField() VELOCIDADE_PERMITIDA = models.IntegerField() VELOCIDADE_AFERIDA = models.IntegerField() CLASSIFICACAO = models.IntegerField() PLACA = models.CharField(max_length=100) CODIGO_INFRACAO = models.IntegerField() arquivo_origem = models.CharField(max_length=100) CODIGO_LOCAL = models.IntegerField() LOCAL_LATITUDE = models.CharField(max_length=100) LOCAL_LONGITUDE = models.CharField(max_length=100) COD_CLASSIFICACAO = models.IntegerField() DESC_CLASSIFICACAO = models.CharField(max_length=100) RAND_RANK = models.FloatField() class Meta: managed = False db_table = "registro_passagem"
class Standard(models.Model): """root node of the data""" _id = models.ObjectIdField() name = models.TextField(max_length=100) tags = models.ArrayModelField(model_container=Tag) """list of child nodes"""
class DatasetImage(models.Model): _id = models.ObjectIdField() name = models.CharField(max_length=128, null=False, blank=False) url = models.URLField(blank=True, null=True) created = models.DateTimeField(auto_now_add=True) label = models.CharField(max_length=32, null=False, blank=False) metadata = models.DictField(null=True)
class CategoryCourse(models.Model): _id = models.ObjectIdField(primary_key=True) namecourse = models.CharField(max_length=400) subcourse = models.ArrayModelField(model_container=SubCateCourse, model_form_class=SubCateCourseForm, blank=True) createdate = models.DateField(default=timezone.now, editable=True) status = models.BooleanField(default=True) def __str__(self): return self.namecourse def __iter__(self): return self def getall(self): return { "id": str(self.pk), "namecourse": self.namecourse, "subcourse": [{ "namesubcourse": val.namesubcourse, "subcoursecode": str(val.subcoursecode) } for val in self.subcourse], "createdate": str(self.createdate), "status": self.status }
class UploadFileUsers(models.Model): _id = models.ObjectIdField(primary_key=True) name = models.CharField(max_length=600) usersupload = models.CharField(max_length=300) coursecode = models.CharField(max_length=500) contentfile = models.FileField(default=MEDIA_ROOT, upload_to='files/%Y/%m/%d/') comment = models.TextField(max_length=900) created = models.DateField(default=timezone.now, editable=True) def __str__(self): return self.usersupload def __iter__(self): return self def getall(self): return { "id": str(self.pk), "name": self.name, "usersupload": self.usersupload, "coursecode": self.coursecode, "contentfile": str(self.contentfile), "comment": self.comment, "created": str(self.created) } def delete(self, *args, **kwargs): storage, path = self.contentfile.storage, self.contentfile.path super(UploadFileUsers, self).delete(*args, **kwargs) storage.delete(path)
class StockPedido(models.Model): id = models.ObjectIdField(Producto, null=False) #si se borra este tambien nombre = models.CharField(max_length=100) stock = models.IntegerField(default=0) class Meta: abstract = True
class ReferenceAuthor(models.Model): name = models.CharField(max_length=200) email = models.EmailField() _id = models.ObjectIdField() def __str__(self): return self.name
class Tasks(models.Model): # 记录异步任务的信息 _id = models.ObjectIdField(primary_key=True) task_id = models.CharField(max_length=36) task_type = models.IntegerField() # 0为爬虫,1为处理器 tid = models.IntegerField() time_from = models.IntegerField() time_to = models.IntegerField() time_start = models.IntegerField() # 任务创建时间 time_end = models.IntegerField() # 任务结束时间,默认为-1 objects = models.DjongoManager() class Meta: db_table = 'tasks' indexes = [ models.Index(fields=[ '_id', ]), models.Index(fields=[ 'time_start', ]), ] constraints = [ models.UniqueConstraint(fields=['task_id'], name='unique_task_id'), ]
class NullArrayContainerModel(models.Model): _id = models.ObjectIdField() nullable_list = models.ArrayField(model_container=EmbedModel, blank=True, null=True) objects = models.DjongoManager()
class VerificationCode(models.Model): _id = models.ObjectIdField() email = models.CharField(max_length=100) code = models.CharField(max_length=10) expires = models.DateTimeField() is_valid = models.BooleanField(default=True) objects = CodeManager() class Meta: db_table = 'infnote_vcode' @classmethod def verify(cls, email, code): if not email or not code: return False vcodes = cls.objects.filter(email=email, code=code, expires__gt=datetime.utcnow(), is_valid=True) if len(vcodes) <= 0: return False for vcode in vcodes: vcode.is_valid = False vcode.save() return True
class TimelineComment(models.Model): _id = models.ObjectIdField() post_id = models.CharField(max_length=24) user_email = models.EmailField() likes = models.ListField(default=[], blank=True) content = models.TextField(max_length=256) Timestamp = models.DateTimeField(auto_now=True)
class Posts(models.Model): id = models.ObjectIdField() post_title = models.CharField(max_length=255) post_description = models.TextField() comment= models.JSONField() tags = models.JSONField() user_details = models.JSONField()
class RunningTestsAnswers(models.Model): _id = models.ObjectIdField() test_duration = models.IntegerField('Длительность теста') start_date = models.DateTimeField('Время запуска теста', default=timezone.now) test = models.ForeignKey(Test, null=True, verbose_name='Запущенный тест', related_name='right_answers', on_delete=models.SET_NULL, default=DEFAULT_TEST_ID) user = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, verbose_name='Пользователь, проходящий тест', related_name='right_answers', on_delete=models.SET_NULL, default=DEFAULT_AUTHOR_ID) right_answers = models.ArrayField(model_container=QuestionRightAnswer) objects = models.DjongoManager() @property def time_left(self) -> float: delta = timezone.now() - self.start_date return self.test_duration - delta.total_seconds() class Meta: db_table = 'main_running_tests_answers' verbose_name = 'Ответы за запущенные тесты' verbose_name_plural = 'Ответы за запущенные тесты'
class User(models.Model): ACTIVE_STATUS = 'active' PENDING_STATUS = 'pending' STATUS_CHOICES = ( (ACTIVE_STATUS, 'active'), (PENDING_STATUS, 'pending'), ) NORMAL_ROLE = 'normal' ADMIN_ROLE = 'admin' ROLE_CHOICES = ( (NORMAL_ROLE, 'normal'), (ADMIN_ROLE, 'admin'), ) _id = models.ObjectIdField() account = models.CharField(max_length=128, unique=True) password = models.CharField(max_length=128) status = models.CharField(max_length=7, choices=STATUS_CHOICES, default=ACTIVE_STATUS) role = models.CharField(max_length=6, choices=ROLE_CHOICES, default=NORMAL_ROLE) created_time = models.DateTimeField(auto_now_add=True) modified_time = models.DateTimeField(auto_now=True) last_login_time = models.DateTimeField() class Meta: db_table = 'users'
class TestResult(models.Model): _id = models.ObjectIdField() is_running = models.BooleanField('Тест еще запущен') comment = models.TextField('Комментарий преподавателя', default='') date = models.DateTimeField('Время запуска тестирования', default=timezone.now) launched_lecturer = models.ForeignKey( settings.AUTH_USER_MODEL, null=True, verbose_name='Пользователь, запустивный тест', related_name='testing_results', on_delete=models.SET_NULL) test = models.ForeignKey(Test, null=True, verbose_name='Тест', related_name='testing_results', on_delete=models.SET_NULL) subject = models.ForeignKey(Subject, null=True, verbose_name='Предмет', related_name='testing_results', on_delete=models.SET_NULL) objects = models.DjongoManager() @property def object_id(self): return self._id class Meta: db_table = 'main_tests_results' verbose_name = 'Результат тестирования' verbose_name_plural = 'Результаты тестирований'
class ParticipantsModel(models.Model): _id = models.ObjectIdField(primary_key=True) name = models.CharField(max_length=100, blank=True, null=True) podcast = models.CharField(max_length=100) def __str__(self): return self.name
class DatiPrezzi(models.Model): _id = models.ObjectIdField() web_scraper_order = models.CharField(max_length=20, blank=False, default='') web_scraper_start_url = models.CharField(max_length=300, blank=False, default='') stato = models.CharField(max_length=20, blank=False, default='') regione = models.CharField(max_length=30, blank=False, default='') provincia = models.CharField(max_length=20, blank=False, default='') comune = models.CharField(max_length=20, blank=False, default='') zip_code = models.CharField(max_length=20, blank=False, default='') indirizzo = models.CharField(max_length=100, blank=False, default='') nome_annuncio = models.CharField(max_length=500, blank=False, default='') metri_quadri = models.IntegerField(blank=False, default=-1) prezzo = models.IntegerField(blank=False, default=-1) affitto_vendita_choices = ( ('A', 'Affitto'), ('V', 'Vendita'), ) affitto_vendita = models.CharField(max_length=1, choices=affitto_vendita_choices) data_inserimento = models.DateField(_("Date"), auto_now_add=True) fascia_prezzo_choices = ( ('B', 'Bassa'), ('M', 'Media'), ('A', 'Alta'), ) fascia_prezzo = models.CharField(max_length=1, choices=fascia_prezzo_choices) latitudine = DecimalField(max_digits=9, decimal_places=6) longitudine = DecimalField(max_digits=9, decimal_places=6)
class ListEntry(models.Model): _id = models.ObjectIdField() headline = models.CharField(max_length=255) authors = models.ListField() def __str__(self): return self.headline
class SubjectModel(models.Model): _id = models.ObjectIdField() name = models.CharField(max_length=100) genre = models.CharField(max_length=50) date_created = models.DateTimeField(default=now) author = models.EmbeddedField(model_container=Authors) objects = models.DjongoManager()
class Account(AbstractBaseUser): _id = models.ObjectIdField() email = models.EmailField(verbose_name="email", max_length=60, unique=True) # all required fields when build user model username = models.CharField(max_length=30, unique=True) date_joined = models.DateTimeField(verbose_name='date joined', auto_now_add=True) last_login = models.DateTimeField(verbose_name='last login', auto_now=True) is_admin = models.BooleanField(default=False) is_active = models.BooleanField(default=True) is_staff = models.BooleanField(default=False) is_superuser = models.BooleanField(default=False) # set it to the field you want to use for login USERNAME_FIELD = 'email' REQUIRED_FIELDS = ['username'] objects = MyAccountManager() def __str__(self): return self.email # For checking permissions. to keep it simple all admin have ALL permissons def has_perm(self, perm, obj=None): return self.is_admin # Does this user have permission to view this app? (ALWAYS YES FOR SIMPLICITY) def has_module_perms(self, app_label): return True
class myCamaras(models.Model): _id = models.ObjectIdField() instalacion = models.EmbeddedField( model_container=InstalacionEmbebido, null=True, blank=True, ) nombre_camara = models.CharField(max_length=250, blank=False, default='') serial_camara = models.CharField(max_length=250, blank=False, default='') ts = models.TimeField(blank=False) fecha = models.DateField(auto_now_add=True, blank=True, null=True) zonas_camara = models.ArrayField( model_container=ZonaCamara, null=True, blank=True, ) def __unicode__(self): return self.nombre_camara def __str__(self, ): return str(self.nombre_camara) class Meta: db_table = "camaras_historico"