Source code for oioioi.base.models

# coding: utf-8
from importlib import import_module

import django.dispatch
from django.conf import settings

# pylint: disable=unused-import
# Important. This import is to register signal handlers. Do not remove it.
import oioioi.base.signal_handlers
from oioioi.base.captcha_check import captcha_check
from oioioi.base.setup_check import setup_check

# Check if deployment and installation config versions match.
# Check if database settings are correct.
setup_check()
captcha_check()

for app in settings.INSTALLED_APPS:
    if app.startswith('oioioi.'):
        try:
            # Controllers should be imported at startup, because they register
            # mixins
            import_module(app + '.controllers')
        except ImportError:
            pass

import logging

from django.contrib.auth.models import User
from django.db import models
from django.db.models.signals import post_save
from django.dispatch import receiver
from django.utils.translation import gettext_lazy as _

[docs]auditLogger = logging.getLogger(__name__ + ".audit")
# Sender will be equal to the form that was completed
[docs]PreferencesSaved = django.dispatch.Signal()
[docs]class Consents(models.Model):
[docs] user = models.OneToOneField( User, primary_key=True, verbose_name=_("user"), on_delete=models.CASCADE )
[docs] terms_accepted = models.BooleanField(_("terms accepted"), default=False)
[docs]class UserPreferences(models.Model):
[docs] user = models.OneToOneField( User, primary_key=True, verbose_name=_("user"), on_delete=models.CASCADE )
[docs] language = models.CharField( _("preferred_language"), max_length=2, choices=list(settings.LANGUAGES) + [("", _("None"))], default="" )
[docs] enable_editor = models.BooleanField( _("enable_editor"), default=False, )
@receiver(post_save, sender=Consents)