Esempio n. 1
0
class BlenderSubtaskDefinition(Model):
    """
    For each VerificationRequest there must be exactly one BlenderSubtaskDefinition in the database.
    """
    class OutputFormat(ChoiceEnum):
        JPEG = 'jpeg'
        PNG = 'png'
        EXR = 'exr'

    # Foreign key to VerificationRequest. Can't be NULL and must be unique.
    verification_request = OneToOneField(
        VerificationRequest,
        unique=True,
        related_name='blender_subtask_definition')

    # Type of the output image to be produced by Blender. This determines the file extensions.
    # Only formats supported by Blender should be allowed here.
    # This value is passed to Blender using the -F command-line option.
    output_format = CharField(max_length=32, choices=OutputFormat.choices())

    # Relative path to the .blend file inside the source package.
    scene_file = CharField(max_length=MESSAGE_PATH_LENGTH)

    # Source code of the Python script to be executed by Blender.
    blender_crop_script = TextField(blank=True, null=True)

    # Parameters needed to generate Python script to be executed by Blender.
    blender_crop_script_parameters = OneToOneField(
        BlenderCropScriptParameters,
        related_name='blender_subtask_definition',
        blank=True,
        null=True)
Esempio n. 2
0
class UserFriendRequestOrder(models.Model):
    """
    好友请求订单model
    """
    # 订单主键
    friend_order_id = CharField(max_length=32, primary_key=True)

    # 发起人
    sponsor = OneToOneField(User,
                            related_name="friend_sender",
                            on_delete=models.CASCADE)

    # 接受人
    recipient = OneToOneField(User,
                              related_name="friend_receiver",
                              on_delete=models.CASCADE)

    # 创建时间
    create_time = DateTimeField(auto_now_add=True)

    # 更新时间
    update_time = DateTimeField(auto_now=True)

    def __str__(self):
        return self.sponsor.nick_name + "->" + self.recipient.nick_name

    pass
Esempio n. 3
0
class Game(Model):
    uuid = UUIDField(default=uuid.uuid4, primary_key=True)
    white_player = ForeignKey(
        settings.AUTH_USER_MODEL,
        on_delete=CASCADE,
        related_name="white_player",
        null=True,
    )
    black_player = ForeignKey(
        settings.AUTH_USER_MODEL,
        on_delete=CASCADE,
        related_name="black_player",
        null=True,
    )
    created_at = DateTimeField(auto_now_add=True)
    started_at = DateTimeField(null=True)
    finished_at = DateTimeField(null=True)
    result = OneToOneField(
        Result,
        on_delete=CASCADE,
    )
    board = OneToOneField(
        Board,
        on_delete=CASCADE,
    )
Esempio n. 4
0
class AxisDescriptionModel(models.Model):
    count = models.IntegerField(null=True)

    types = OneToOneField(ColumnarTypesDefinition,
                          null=True, on_delete=models.SET_NULL, related_name='axis')
    names = OneToOneField(ColumnarNamesDefinition,
                          null=True, on_delete=models.SET_NULL, related_name='axis')
    doc = OneToOneField(ColumnarDocDefinition,
                        null=True, on_delete=models.SET_NULL, related_name='axis')

    def __str__(self):
        return "<%s: id=%s>" % (type(self).__name__, self.id)

    def clean(self):
        super().clean()

        # Check that this object and the nested objects all share the same counts.
        c1 = self.types.count if self.types is not None else None
        c2 = self.names.count if self.names is not None else None

        self.count = self.count or c1 or c2

        if not (c1 == self.count or c1 is None):
            raise ValidationError("the size of the 'types' data "
                                  "doesn't match the others definitions.")
        if not (c2 == self.count or c2 is None):
            raise ValidationError("the size of the 'names' data "
                                  "doesn't match the others definitions.")

    def save(self, *args, **kwargs):
        self.clean()  # Force clean on save.
        super().save(*args, **kwargs)

    @classmethod
    def create(cls, types=None, count=None, names=None):
        x = {}
        if types is not None:
            x['types'] = types
        if count is not None:
            x['count'] = count
        if names is not None:
            x['names'] = names

        return cls.objects.create(**x)

    # Make a deep copy of herself and return it
    def deep_copy(self):
        self.id = None

        self.types = self.types.deep_copy() if self.types is not None else None
        self.names = self.names.deep_copy() if self.names is not None else None
        self.doc = self.doc.deep_copy() if self.doc is not None else None

        self.save()
        return self

    def delete(self):
        delete_all([self.types, self.names, self.doc])
        super().delete()
Esempio n. 5
0
class ScoreTeam(Team):
    """
    ScoreTeam:
        Scorebot Scoreable Team Base

        This Python Class reperesents any Team that may have a Score or can gain/lose PTS. Players assigned to this
        Team type cannot Attack or Defend, nor own any Ranges.
    """
    class Meta:
        verbose_name = '[Team] Score Team'
        verbose_name_plural = '[Team] Score Teams'

    objects = TeamManager()

    total = BigIntegerField('Team Total Score', default=0, editable=False)
    token = OneToOneField('scorebot_db.Token',
                          on_delete=SET_NULL,
                          null=True,
                          blank=True)
    stack = OneToOneField('scorebot_db.Transaction',
                          on_delete=SET_NULL,
                          null=True,
                          blank=True,
                          related_name='owner')

    def __score__(self):
        return self.total

    def __string__(self):
        return '[ScoreTeam] %s: %d' % (self.path(), self.total)

    def save(self, *args, **kwargs):
        if self.subclass is None:
            self.subclass = TEAM_SUBCLASS_SCORETEAM
        if self.token is None:
            self.token = new('Token', save=True)
        if self.stack is None:
            Team.save(self, *args, **kwargs)
            stack = new('Transaction', False)
            stack.source = self
            stack.destination = self
            stack.save()
            self.stack = stack
            del stack
        Team.save(self, *args, **kwargs)

    def __append__(self, transaction):
        transaction.previous = self.stack
        transaction.save()
        self.stack = transaction
        self.total += transaction.score()
        self.save()
        transaction.log()
        Events.info(
            'Added a Transaction Type "%s" with value "%d" to Team "%s" from "%s"!'
            % (transaction.name(), transaction.score(), self.path(),
               transaction.source.path()))
Esempio n. 6
0
class Quest(Model):
    title = CharField(max_length=30)
    description = TextField()
    schedule = OneToOneField(Schedule)
    contact = OneToOneField(Contact)
    category = ManyToManyField('categories.Category')
    company = OneToOneField('companies.Company')
    partner = ForeignKey('accounts.Partner')
    price = 0
Esempio n. 7
0
class EquipementProblemsTable(Model):
    report_id = IntegerField()

    start_date = DateField()
    start_time = TimeField()
    end_date = DateField()
    end_time = DateField()

    status = BooleanField()

    OPERATIONAL_STATUS_CHOICES = (
        ('OOS', 'Out of Service'),
        ('NM', 'Needs Maintenance'),
    )
    Operational_Status = CharField(max_length=120,
                                   choices=OPERATIONAL_STATUS_CHOICES)

    Description = TextField()
    NotifOutside_Support = TextField()
    System_Staff_Action = TextField()

    Website_CCTV_Off_date = DateField()
    Website_CCTV_On_date = DateField()
    Website_CCTV_Off_time = TimeField()
    Website_CCTV_Off_time = TimeField()

    NITTEC_Employee = OneToOneField(NITTECEmployee,
                                    null=True,
                                    on_delete=models.SET_NULL)
    Reporting_Name = OneToOneField(ReportingName,
                                   null=True,
                                   on_delete=models.SET_NULL)
    Reporting_Member_Agency = OneToOneField(ReportingMemberAgency,
                                            null=True,
                                            on_delete=models.SET_NULL)
    Phone_number = OneToOneField(PhoneNumber,
                                 null=True,
                                 on_delete=models.SET_NULL)
    Ticket_number = OneToOneField(TicketNumber,
                                  null=True,
                                  on_delete=models.SET_NULL)

    Equipement_name = OneToOneField(EquipementName,
                                    null=True,
                                    on_delete=models.SET_NULL)
    Affected_system = OneToOneField(EquipementSystem,
                                    null=True,
                                    on_delete=models.SET_NULL)
    Problem_type = OneToOneField(ProblemType,
                                 null=True,
                                 on_delete=models.SET_NULL)
    Owning_agency = OneToOneField(OwningAgency,
                                  null=True,
                                  on_delete=models.SET_NULL)
    Outside_support = OneToOneField(OutsideSupport,
                                    null=True,
                                    on_delete=models.SET_NULL)
Esempio n. 8
0
class Feedback(Model):
    user = OneToOneField(User, on_delete=CASCADE)
    time_in_company = FloatField()
    personal_satisfaction = OneToOneField(PersonalSatisfaction,
                                          on_delete=CASCADE)
    team_satisfaction = OneToOneField(TeamSatisfaction, on_delete=CASCADE)
    company_satisfaction = OneToOneField(CompanySatisfaction,
                                         on_delete=CASCADE)
    date_created = DateField()
Esempio n. 9
0
class Feedback(BaseModel):
    about = OneToOneField('yunity.FeedbackTrait')
    provided_by = OneToOneField('yunity.User',
                                related_name='feedback_provider')
    arbitrated_by = ManyToManyField('yunity.User',
                                    related_name='feedback_arbitrators')

    status = MaxLengthCharField()
    type = MaxLengthCharField()
Esempio n. 10
0
class UserProfile(Model):

    user = OneToOneField(User, on_delete=CASCADE, related_name='profile')
    tenant = OneToOneField(Tenant,
                           on_delete=CASCADE,
                           related_name='profile',
                           blank=True,
                           null=True)
    landlord = OneToOneField(Landlord,
                             on_delete=CASCADE,
                             related_name='profile',
                             blank=True,
                             null=True)
Esempio n. 11
0
class Teacher(Model):
    user = OneToOneField(User, on_delete=CASCADE)
    name = CharField(max_length=100, null=True)
    isFree = BooleanField(default=False)
    sapId = IntegerField(unique=True, null=True)
    photo = FileField(null=True, blank=True)
    subject = CharField(max_length=100, null=True)
    created_at = DateTimeField(auto_now_add=True)
    updated_at = DateTimeField(auto_now=True)
    loation = OneToOneField(Location, on_delete=CASCADE)
    queue = ManyToManyField(Queue, blank=True)

    def __str__(self):
        return "{}".format(self.name)
Esempio n. 12
0
class UserProfile(Model):
    """model holding relation between business unit and
    roles played by employee"""
    user = OneToOneField(User,
                         on_delete=CASCADE,
                         null=True,
                         related_name='profile')
    employee = OneToOneField(Employee,
                             on_delete=CASCADE,
                             null=True,
                             related_name='profile')

    class Meta:
        db_table = 'user_profile'

    def __str__(self):
        return u'Profile of user: {0}'.format(self.user.get_full_name())

    def has_perm(self, perm):
        """Returns if the employee has a particular permission"""
        perm = 'auth.' + perm.strip()
        return self.user.has_perm(perm)

    @property
    def username(self):
        """Returns the username of the profile user"""
        return self.user.username

    def user_groups(self):
        """returns the list of groups the user belongs to"""
        return self.user.groups.all().values_list('name', flat=True)

    @property
    def is_owner(self):
        """Checks if employee is gm"""
        return 'restaurant_owner' in self.user_groups()

    @property
    def is_manager(self):
        """Checks if employee is fm"""
        return 'restaurant_manager' in self.user_groups()

    def is_user(self, *groups):
        """Checks user is member of ALL groups"""
        return self.user.groups.filter(name__in=groups).exists()

    @property
    def businessunit(self):
        """Returns the businessunit of the employee"""
        return self.employee.businessunit
Esempio n. 13
0
class Player(Model):
    class Meta:
        verbose_name = '[Player] Player'
        verbose_name_plural = '[Player] Players'

    name = CharField('Player Name', max_length=64, unique=True)
    score = IntegerField('Player Score', default=0, editable=False)
    user = OneToOneField(User, null=True, blank=True, on_delete=SET_NULL)
    team = ForeignKey('scorebot_db.Team', on_delete=CASCADE, related_name='players')
    token = OneToOneField('scorebot_db.Token', on_delete=SET_NULL, null=True, blank=True)
    member = ForeignKey('scorebot_db.Member', null=True, blank=True, on_delete=SET_NULL, related_name='players')

    def __str__(self):
        return '[Player] %s: %d' % (self.get_path(), self.get_score())

    def __json__(self):
        return {
            'name': self.name,
            'score': self.score
        }

    def get_path(self):
        return '%s\\%s' % (self.game.get_name(), self.get_name())

    def get_game(self):
        return self.team.game

    def get_team(self):
        return self.team

    def get_name(self):
        return self.name

    def get_score(self):
        return self.score

    def __lt__(self, other):
        return isinstance(other, Player) and other.get_score() > self.get_score()

    def __gt__(self, other):
        return isinstance(other, Player) and other.get_score() < self.get_score()

    def __eq__(self, other):
        return isinstance(other, Player) and other.get_score() == self.get_score()

    def save(self, *args, **kwargs):
        if self.token is None:
            self.token = new('Token')
        Model.save(self, *args, **kwargs)
Esempio n. 14
0
class Profile(Model):
    created = DateTimeField(auto_now_add=True, null=False)
    modified = DateTimeField(auto_now=True, null=False)
    user = OneToOneField(User, on_delete=CASCADE)
    prime_consumer = OneToOneField(
        'Consumer',
        related_name='prime_profile',
        null=True,
        on_delete=CASCADE)

    def __repr__(self):
        return self.user.username

    def __str__(self):
        return self.__repr__()
Esempio n. 15
0
class StargateJump(Model, StrMixin):

    from_stargate = OneToOneField('Stargate',
                                  primary_key=True,
                                  db_column='stargateID',
                                  related_name='+')
    to_stargate = OneToOneField('Stargate',
                                null=True,
                                db_column='celestialID',
                                blank=True,
                                related_name='+')

    class Meta:
        db_table = 'mapJumps'
        app_label = 'eve_sde'
Esempio n. 16
0
class AddressMatch(Model):
    """
    Contact address
    """

    survey = OneToOneField(
        "surveys20.Survey",
        related_name="address_match",
        on_delete=CASCADE,
        verbose_name=_("Survey"),
    )
    match = BooleanField(default=False, verbose_name=_("Address Match"))
    mismatch = BooleanField(default=False, verbose_name=_("Address MisMatch"))
    address = CharField(max_length=100,
                        null=True,
                        blank=True,
                        verbose_name=_("Address"))
    update_time = DateTimeField(
        auto_now=True,
        auto_now_add=False,
        null=True,
        blank=True,
        verbose_name=_("Updated"),
    )

    class Meta:
        verbose_name = _("AddressMatch")
        verbose_name_plural = _("AddressMatch")

    def __str__(self):
        return str(self.survey)
Esempio n. 17
0
class Subsidy(Model):
    """
    Table 3.3.1 -> 3.3.2
    """

    survey = OneToOneField(
        "surveys20.Survey",
        related_name="subsidy",
        on_delete=CASCADE,
        verbose_name=_("Survey"),
    )
    has_subsidy = BooleanField(default=False, verbose_name=_("Has Subsidy"))
    none_subsidy = BooleanField(default=False, verbose_name=_("None Subsidy"))
    update_time = DateTimeField(
        auto_now=True,
        auto_now_add=False,
        null=True,
        blank=True,
        verbose_name=_("Updated"),
    )

    class Meta:
        verbose_name = _("Subsidy")
        verbose_name_plural = _("Subsidy")

    def __str__(self):
        return str(self.survey)
Esempio n. 18
0
class UserDetails(Model):
    user = OneToOneField(
        to=User,
        on_delete=CASCADE,  # 级联删除
        db_constraint=False,  # False表示逻辑外键
        db_column='id',
        primary_key=True,
        related_name='details',  # 默认类名全小写
    )
    motto = CharField(
        max_length=255,  verbose_name='个性签名',
        default=None, blank=True, null=True
    )
    favorite_color = FixedCharField(
        max_length=6,
        null=True,
        blank=True,
        default=None,
        charset='ascii',
        verbose_name='页面颜色'
    )
    gender = BooleanField(
        null=True,
        blank=True,
        default=None,
        verbose_name='性别',
        choices=((True, '女'), (False, '男'), (None, '未指定'))
    )

    class Meta:
        verbose_name = "用户资料"
        verbose_name_plural = "用户资料"
Esempio n. 19
0
class ControllerInfo(CleanSave, TimestampedModel):
    """A `ControllerInfo` represents metadata about nodes that are Controllers.

    :ivar node: `Node` this `ControllerInfo` represents metadata for.
    :ivar version: The last known version of the controller.
    :ivar interfaces: Interfaces JSON last sent by the controller.
    :ivar interface_udpate_hints: Topology hints last sent by the controller
        during a call to update_interfaces().
    """
    class Meta(DefaultMeta):
        verbose_name = "ControllerInfo"

    objects = ControllerInfoManager()

    node = OneToOneField(Node,
                         null=False,
                         blank=False,
                         on_delete=CASCADE,
                         primary_key=True)

    version = CharField(max_length=255, null=True, blank=True)

    interfaces = JSONObjectField(max_length=(2**15), blank=True, default="")

    interface_update_hints = JSONObjectField(max_length=(2**15),
                                             blank=True,
                                             default="")

    def __str__(self):
        return "%s (%s)" % (self.__class__.__name__, self.node.hostname)
Esempio n. 20
0
class UserProfile(Model):
    id = UUIDField(primary_key=True,
                   default=uuid.uuid4,
                   editable=False,
                   unique=True)
    user = OneToOneField(User, on_delete=CASCADE, related_name='profile')
    role = CharField(max_length=1,
                     choices=UserRole.CHOICES,
                     default=UserRole.USUAL)
    is_system = BooleanField(default=False)
    login = CharField(null=False, unique=True, max_length=255)
    name = CharField(null=False, max_length=255)
    updated_at = DateTimeField(auto_now=True, editable=False)
    created_at = DateTimeField(auto_now_add=True, editable=False)
    is_active = BooleanField(default=True)

    objects = Manager()
    active = ActiveObjectManager()
    system_user = SystemUserObjectManager()

    class Meta:
        verbose_name = "User Profile"
        ordering = ('pk', )

        indexes = [Index(fields=['is_system'])]

    def __str__(self):
        return self.login

    @staticmethod
    def get_profile_by_user(user):
        return UserProfile.objects.filter(user=user.id).first()
Esempio n. 21
0
class BaseMapItem(Model, StrMixin):
    stats = OneToOneField('CelestialStatistics',
                          to_field='celestial_id',
                          db_column='itemID',
                          related_name='map_item',
                          null=True)
    name = CharField(max_length=100, db_column='itemName', blank=True)
    map_item_id = IntegerField(primary_key=True, db_column='itemID')
    group = ForeignKey('ItemGroup',
                       null=True,
                       db_column='groupID',
                       blank=True,
                       related_name='+')
    base_type = ForeignKey('Item',
                           null=True,
                           db_column='typeID',
                           blank=True,
                           related_name='+')
    x = FloatField(blank=True)
    y = FloatField(blank=True)
    z = FloatField(blank=True)
    radius = FloatField(blank=True)
    security = FloatField(blank=True)
    celestial_index = FloatField(null=True,
                                 db_column='celestialIndex',
                                 blank=True)
    orbit_index = FloatField(null=True, db_column='orbitIndex', blank=True)

    class Meta:
        db_table = 'mapDenormalize'
        app_label = 'eve_sde'
Esempio n. 22
0
class Response(models.Model):
    id = CharField(max_length=36, default=uuid4, primary_key=True)
    request = OneToOneField(
        Request,
        related_name='response',
        db_index=True,
        on_delete=models.CASCADE,
    )
    status_code = IntegerField()
    raw_body = TextField(blank=True, default='')
    body = TextField(blank=True, default='')
    encoded_headers = TextField(blank=True, default='')

    @property
    def content_type(self):
        return self.headers.get('content-type', None)

    @property
    def headers(self):
        if self.encoded_headers:
            raw = json.loads(self.encoded_headers)
        else:
            raw = {}
        return CaseInsensitiveDictionary(raw)

    @property
    def raw_body_decoded(self):
        if self.raw_body:
            return base64.b64decode(self.raw_body)
        else:
            return ''
Esempio n. 23
0
class RoadmapSettings(Model):
    """
    Model that contains the roadmap settings
    """
    roadmap = OneToOneField(Roadmap, primary_key=True)
    creator = ForeignKey(Profile, related_name="roadmap_creator") # TODO should this be a part of RoadmapSettings?
    owners = ManyToManyField(Profile, related_name="roadmap_owners")
    editors = ManyToManyField(Profile, related_name="roadmap_editors")
    listed_in_main = BooleanField('show this roadmap in the search results', default=False)
    sudo_listed_in_main = BooleanField('superuser only: allow this roadmap in the search results', default=True)
    published = BooleanField(default=False)
    url_tag = SlugField('URL tag', max_length=30, help_text='only letters, numbers, underscores, hyphens')

    class Meta:
        unique_together = ('creator', 'url_tag')

    def get_absolute_url(self):
        return '/roadmaps/%s/%s' % (self.creator.user.username, self.url_tag)

    def is_published(self):
        return self.published

    def is_listed_in_main(self):
        return self.is_published() and self.listed_in_main and self.sudo_listed_in_main

    def can_change_settings(self, user):
        # superusers and owners can change settings
        return user.is_superuser or (user.is_authenticated() and self.owners.filter(user=user).exists())

    def editable_by(self, user):
        # superusers, owners and editors can edit
        return user.is_superuser or (user.is_authenticated() and (self.owners.filter(user=user).exists() or self.editors.filter(user=user).exists()))
Esempio n. 24
0
class Medico(Model):
	DISPONIBLE = 1
	NO_DISPONIBLE = 2
	EN_AUXILIO = 3
	ESTADO_CHOICES = (
		(DISPONIBLE, 'Disponible'),
		(NO_DISPONIBLE, 'No disponible'),
		(EN_AUXILIO, 'En auxilio')
	)

	dni = PositiveIntegerField(primary_key=True, verbose_name='DNI', validators=[MaxValueValidator(99999999), MinValueValidator(1000000)])
	matricula = PositiveIntegerField(unique=True, verbose_name=u'matrícula')
	telefono = CharField(max_length=15, verbose_name=u'teléfono')
	usuario = OneToOneField(User, related_name='medico_usuario', on_delete=CASCADE)
	fcm_code = CharField(max_length=250, blank=True, verbose_name='FCM', help_text='Firebase Cloud Messaging Code')
	estado = PositiveSmallIntegerField(choices = ESTADO_CHOICES, default = NO_DISPONIBLE)
	generador = ForeignKey(User, related_name='medico_generador')
	latitud_gps = FloatField(blank=True, null=True, validators=[MaxValueValidator(180.0), MinValueValidator(-180.0)])
	longitud_gps = FloatField(blank=True, null=True, validators=[MaxValueValidator(180.0), MinValueValidator(-180.0)])
	timestamp_gps = DateTimeField(blank=True, null=True, help_text=u'Última actualización de ubicación GPS')

	def __str__(self):
		return self.usuario.get_full_name() + str(self.matricula)

	class Meta:
		ordering = ['dni']
		verbose_name = u'médico'
		verbose_name_plural = u'médicos'
Esempio n. 25
0
class OfficerImg(Model):
    """Officer headshots"""
    officer = OneToOneField(User, on_delete=CASCADE, related_name="img")
    img = ImageField(upload_to=path_and_rename, storage=OverwriteStorage(), verbose_name="Image")

    def __str__(self):
        return self.officer.name
Esempio n. 26
0
class UserRelationInfo(Model):
    # 用户亲属关系表
    user = OneToOneField(Profile,
                         primary_key=True,
                         db_column='user_id',
                         verbose_name='用户')
    relation_type = CharField(max_length=10,
                              default='父亲',
                              blank=True,
                              verbose_name='关系')
    relation_name = CharField(max_length=50,
                              default='李天一',
                              blank=True,
                              verbose_name='姓名')
    relation_phone = CharField(max_length=32,
                               default='13788740727',
                               verbose_name='手机号')
    relation_email = EmailField(blank=True,
                                default='*****@*****.**',
                                verbose_name='邮箱')
    relation_address = CharField(max_length=200,
                                 default='湖南',
                                 verbose_name='家庭住址')
    comments = CharField(max_length=500, blank=True, verbose_name='备注')

    class Meta:
        app_label = 'education'
        db_table = 'user_relation_info'
        verbose_name = '用户亲属关系'
        verbose_name_plural = '用户亲属关系'

    def __unicode__(self):
        return u'{0}-{1}-{2}'.format(self.user.username, self.relation_type,
                                     self.relation_name)
Esempio n. 27
0
class Interaction(BaseModel):
    created_at = DateTimeField(auto_now=True)
    type = MaxLengthCharField()
    payload = TextField()

    caused_by = ForeignKey('yunity.User', related_name='interation_caused')
    changed = OneToOneField('yunity.VersionTrait')
Esempio n. 28
0
class Money(Model):
    '''additional field for user'''
    user = OneToOneField(User,
                         on_delete=CASCADE,
                         related_query_name='moneys',
                         related_name='money')
    coins = PositiveIntegerField(default=0)
Esempio n. 29
0
class Client(Resource):
    """
    使用此评测端的用户端。
    """
    # 编号
    id = BigAutoField(primary_key=True)
    # 绑定的用户(用于进行身份识别)
    user = OneToOneField(User, related_name='client')

    # 名称
    name = CharField(max_length=128)
    # 简介
    introduction = TextField()
    # 是否允许使用本端全部题库及题目
    allow_all = BooleanField(default=False)

    # 可用的题库数量
    number_category = IntegerField(default=0)
    # 可用的题目数量
    number_problem = IntegerField(default=0)

    # 允许此用户端使用的题库
    categories = ManyToManyField(Category,
                                 related_name='clients',
                                 through='ClientCategory',
                                 through_fields=('client', 'category'))
Esempio n. 30
0
class VirtualMachine(CleanSave, TimestampedModel):
    """A virtual machine managed by a VM host."""

    identifier = TextField()
    pinned_cores = ArrayField(IntegerField(), blank=True, default=list)
    unpinned_cores = IntegerField(default=0, blank=True)
    memory = IntegerField(default=0)
    hugepages_backed = BooleanField(default=False)
    machine = OneToOneField(
        Machine,
        SET_NULL,
        default=None,
        blank=True,
        null=True,
        editable=False,
        related_name="virtualmachine",
    )
    bmc = ForeignKey(BMC, editable=False, on_delete=CASCADE)

    class Meta:
        unique_together = [("bmc", "identifier")]

    def clean(self):
        super().clean()
        if self.pinned_cores and self.unpinned_cores:
            raise ValidationError(
                "VirtualMachine can't have both pinned and unpinned cores"
            )