Exemplo n.º 1
0
class Department(models.Model):

    name = models.CharField(max_length=50)
    created = AutoCreatedField()

    def __unicode__(self):
        return self.name
Exemplo n.º 2
0
class AccessKey(models.Model):
    created = AutoCreatedField()

    user = models.ForeignKey(settings.AUTH_USER_MODEL,
                             related_name='access_keys')

    access_key = models.UUIDField(verbose_name='Access key',
                                  help_text='The access key',
                                  default=uuid.uuid4,
                                  db_index=True)
    secret_key = models.UUIDField(verbose_name='Secret key',
                                  help_text='The secret key',
                                  default=uuid.uuid4,
                                  db_index=True)
    comment = models.CharField(
        max_length=255,
        blank=True,
        null=True,
        default='',
        help_text=_(
            "A comment about this credential, e.g. where it's being used"))
    last_usage = models.DateTimeField(null=True, blank=True)

    objects = AccessKeyQuerySet.as_manager()

    class Meta:
        ordering = ['-created']

    @property
    def allow_upload(self):
        return True
Exemplo n.º 3
0
class Package(models.Model):
    created = AutoCreatedField(db_index=True)

    modified = AutoLastModifiedField()

    name = models.SlugField(max_length=200, unique=True)

    #: Indicate if this package is local (a private package)
    is_local = models.BooleanField(default=False)

    #: Timestamp when we last retrieved the metadata
    update_timestamp = models.DateTimeField(null=True)

    owners = models.ManyToManyField(User)

    class Meta:
        ordering = ['name']

    def __unicode__(self):
        return self.name

    @models.permalink
    def get_absolute_url(self):
        return ('packages:detail', None, {'name': self.name})

    def get_all_releases(self):
        result = {}
        for release in self.releases.all():
            files = dict((r.filename, r) for r in release.files.all())
            result[release.version] = (release, files)
        return result

    @property
    def last_release(self):
        return self.releases.order_by('-created')[0]
Exemplo n.º 4
0
class Overtime(models.Model):

    user = models.ForeignKey('users.User', related_name='overtimes')
    start = models.DateTimeField()
    end = models.DateTimeField()
    description = models.TextField(blank=True, null=True)

    STATUS = Choices(
        (1, 'bid', 'Pengajuan'),
        (2, 'approved_coordinator', 'Disetujui Koodrinator'),
        (3, 'approved_manager', 'Disetujui Manager'),
        (4, 'canceled', 'Batal'),
    )

    status = models.PositiveSmallIntegerField(choices=STATUS,
                                              default=STATUS.bid)
    notes_coordinator = models.TextField('Catatan Koordinator',
                                         blank=True,
                                         null=True)
    notes_manager = models.TextField('Catatan Manager', blank=True, null=True)
    created = AutoCreatedField()

    def __unicode__(self):
        return '#%s. %s (%s)' % (self.id, self.user.name,
                                 self.created.strftime("%Y-%m-%d"))
Exemplo n.º 5
0
class GenreFilmWork(models.Model):
    id = models.UUIDField(primary_key=True,
                          default=uuid4,
                          editable=False,
                          db_index=True)
    film_work = models.ForeignKey(
        FilmWork,
        verbose_name=_('кинопроизведение'),
        related_name='genre_film_work',
        on_delete=models.CASCADE,
    )
    genre = models.ForeignKey(
        Genre,
        verbose_name=_('жанр'),
        related_name='genre_film_work',
        on_delete=models.CASCADE,
    )
    created_at = AutoCreatedField(_('добавлено'))

    class Meta:
        managed = False
        db_table = 'content"."genre_film_work'
        verbose_name = _('связь фильмов и жанров')
        verbose_name_plural = _('связи фильмов и жанров')
        unique_together = (('film_work_id', 'genre_id'), )

    def __str__(self):
        return f'[{self.genre.name}] {self.film_work.title}'
Exemplo n.º 6
0
class Robot(models.Model):
    name = models.CharField("名字", max_length=20)
    pair = models.CharField("交易对", max_length=15)
    enable = models.BooleanField("启用", default=True)
    start_time = models.DateTimeField("启动时间", null=True)
    ping_time = models.DateTimeField("心跳时间", null=True)
    created_at = AutoCreatedField("创建于")
    modified_at = AutoLastModifiedField("修改于")
    credential = models.ForeignKey(
        "credentials.Credential",
        verbose_name="交易所凭据",
        blank=True,
        null=True,
        on_delete=models.SET_NULL,
        related_name="robots",
    )
    user = models.ForeignKey(
        settings.AUTH_USER_MODEL,
        verbose_name="用户",
        on_delete=models.CASCADE,
        related_name="robots",
    )

    class Meta:
        verbose_name = "机器人"
        verbose_name_plural = "机器人"
Exemplo n.º 7
0
class PersonFilmWork(models.Model):
    id = models.UUIDField(primary_key=True,
                          default=uuid4,
                          editable=False,
                          db_index=True)
    film_work = models.ForeignKey(
        FilmWork,
        verbose_name=_('кинопроизведение'),
        related_name='person_film_work',
        on_delete=models.CASCADE,
    )
    person = models.ForeignKey(
        Person,
        verbose_name=_('персона'),
        related_name='person_film_work',
        on_delete=models.CASCADE,
    )
    role = models.CharField(_('роль'),
                            choices=RoleType.choices,
                            max_length=255)
    created_at = AutoCreatedField(_('добавлено'))

    class Meta:
        managed = False
        db_table = 'content"."person_film_work'
        verbose_name = _('связь фильмов и персоналий')
        verbose_name_plural = _('связи фильмов и персоналий')
        unique_together = (('film_work_id', 'person_id', 'role'), )

    def __str__(self):
        return f'{self.person.full_name} as {self.role} @ "{self.film_work.title}"'
Exemplo n.º 8
0
class FilmWork(models.Model):
    id = models.UUIDField(primary_key=True,
                          default=uuid4,
                          editable=False,
                          db_index=True)
    title = models.CharField(_('название'), max_length=255)
    description = models.TextField(_('описание'), blank=True)
    creation_date = models.DateField(_('дата создания фильма'),
                                     blank=True,
                                     null=True)
    certificate = models.TextField(_('сертификат'), blank=True, null=True)
    file_path = models.FileField(_('файл'),
                                 upload_to='film_works/',
                                 blank=True)
    rating = models.FloatField(_('рейтинг'),
                               validators=[MinValueValidator(0)],
                               blank=True,
                               null=True)
    type = models.CharField(_('тип'),
                            choices=FilmWorkType.choices,
                            max_length=255)
    created_at = AutoCreatedField(_('добавлено'))
    updated_at = AutoLastModifiedField(_('обновлено'))

    class Meta:
        managed = False
        db_table = 'content"."film_work'
        # db_tablespace = 'content'
        verbose_name = _('кинопроизведение')
        verbose_name_plural = _('кинопроизведения')

    def __str__(self):
        return self.title
Exemplo n.º 9
0
class Credential(models.Model):
    """Credentials are repository bound"""
    created = AutoCreatedField()

    repository = models.ForeignKey('packages.Repository', related_name='credentials', on_delete=models.CASCADE)
    access_key = models.UUIDField(
        verbose_name='Access key',
        help_text='The access key',
        default=uuid.uuid4, db_index=True)
    secret_key = models.UUIDField(
        verbose_name='Secret key',
        help_text='The secret key', default=uuid.uuid4, db_index=True)
    comment = models.CharField(
        max_length=255, blank=True, null=True, default='',
        help_text="A comment about this credential, e.g. where it's being used")

    allow_upload = models.BooleanField(
        default=True,
        help_text=_("Indicate if these credentials allow uploading new files"))
    deactivated = models.DateTimeField(blank=True, null=True)

    objects = CredentialQuerySet.as_manager()

    def __str__(self):
        return self.access_key.hex

    class Meta:
        ordering = ['-created']
Exemplo n.º 10
0
class AccessKey(models.Model):
    created = AutoCreatedField()

    user = models.ForeignKey(settings.AUTH_USER_MODEL,
                             related_name='access_keys')

    access_key = UUIDField(verbose_name='Access key',
                           help_text='The access key',
                           auto=True,
                           db_index=True)
    secret_key = UUIDField(verbose_name='Secret key',
                           help_text='The secret key',
                           auto=True,
                           db_index=True)
    comment = models.CharField(
        max_length=255,
        blank=True,
        null=True,
        default='',
        help_text=_(
            "A comment about this credential, e.g. where it's being used"))
    last_usage = models.DateTimeField(null=True, blank=True)

    class Meta:
        ordering = ['-created']
Exemplo n.º 11
0
class Partner(models.Model):
    BUSINESS_SECTOR = Choices(
        (1, 'aneka_industri', 'Aneka Industri'),
        (2, 'barang_konsumsi', 'Barang Konsumsi'),
        (3, 'industri_dasar_dan_kimia', 'Industri Dasar dan Kimia'),
        (4, 'infrastruktur', 'Infrastruktur'),
        (5, 'jasa', 'Jasa'),
        (6, 'keuangan', 'Keuangan'),
        (7, 'perdagangan', 'Perdagangan'),
        (8, 'pertambangan', 'Pertambangan'),
        (9, 'pertanian', 'Pertanian'),
        (10, 'properti', 'Properti'),
        (11, 'transportasi', 'Transportasi'),
    )

    name = models.CharField(max_length=64, unique=True, db_index=True)
    director = models.CharField(max_length=64, blank=True)
    person_in_charge = models.CharField(max_length=64, blank=True)
    business_sector = models.PositiveSmallIntegerField(choices=BUSINESS_SECTOR,
                                                       blank=True,
                                                       null=True)
    address = models.CharField(max_length=256)
    npwp = models.CharField(max_length=32, blank=True)
    siup = models.CharField(max_length=32, blank=True)
    ptkp = models.CharField(max_length=32, blank=True)
    telephone = models.CharField(max_length=32, blank=True)
    fax = models.CharField(max_length=32, blank=True)
    is_active = models.BooleanField('active', default=True)
    created = AutoCreatedField()

    def __str__(self):
        return self.name
Exemplo n.º 12
0
class Addendum(models.Model):
    document = models.ForeignKey('documents.Document',
                                 related_name="addendums",
                                 on_delete=models.CASCADE)
    number = models.CharField(max_length=64, db_index=True)
    subject = models.CharField(max_length=256)
    signature_date = models.DateField(blank=True, null=True)
    effective_date = models.DateField(blank=True, null=True)
    expired_date = models.DateField(blank=True, null=True)
    amount = models.FloatField(validators=[MinValueValidator(0)],
                               blank=True,
                               null=True)
    description = models.TextField(blank=True)

    job_specification = models.CharField(max_length=256, blank=True)
    retention_period = models.PositiveSmallIntegerField(blank=True, null=True)

    is_active = models.BooleanField('active', default=True)
    created = AutoCreatedField()

    class Meta:
        unique_together = ('document', 'number')

    def __str__(self):
        return f"Number ({self.number}) : {self.subject}"
Exemplo n.º 13
0
class Car(TimeStampedModel):
    id = models.UUIDField(verbose_name='ID', default=uuid.uuid4, editable=False, primary_key=True)
    active = models.BooleanField()
    year = models.SmallIntegerField(verbose_name='Year',
                                    validators=[MinValueValidator(1900)],
                                    blank=True, null=True)
    mileage = models.PositiveIntegerField()
    price = models.PositiveIntegerField()
    submodel = models.ForeignKey(Submodel, on_delete=models.PROTECT)
    body_type = models.CharField(max_length=300, blank=True)
    transmission = models.CharField(max_length=300, blank=True)
    fuel_type = models.CharField(max_length=300, blank=True)
    exterior_color = models.CharField(max_length=300, blank=True)
    created_at = AutoCreatedField()
    updated_at = AutoLastModifiedField()

    class Meta:
        verbose_name = 'car'
        verbose_name_plural = 'cars'

    @property
    def model(self):
        return self.submodel.model

    @property
    def make(self):
        return self.submodel.model.make
Exemplo n.º 14
0
class Model(models.Model):
    id = models.CharField(max_length=300, primary_key=True)
    name = models.CharField(max_length=300, blank=True)
    active = models.BooleanField()
    make = models.ForeignKey(Make, on_delete=models.PROTECT, related_name='models')
    created_at = AutoCreatedField()
    updated_at = AutoLastModifiedField()
Exemplo n.º 15
0
class Credential(models.Model):
    note = models.CharField("备注", max_length=20, blank=True)
    api_key = encrypt(models.CharField("API密钥", max_length=50))
    secret = encrypt(models.CharField("密钥", max_length=50))
    passphrase = encrypt(models.CharField("密码", max_length=30, blank=True))
    created_at = AutoCreatedField("创建于")
    exchange = models.ForeignKey(
        "exchanges.Exchange",
        verbose_name="交易所",
        on_delete=models.CASCADE,
        related_name="credential_set",
    )
    user = models.ForeignKey(
        settings.AUTH_USER_MODEL,
        verbose_name="用户",
        on_delete=models.CASCADE,
        related_name="credential_set",
    )

    class Meta:
        verbose_name = "交易所凭据"
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.note
Exemplo n.º 16
0
class Link(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid4, editable=False)
    created = AutoCreatedField()
    modified = AutoLastModifiedField()

    title = models.CharField(max_length=128)
    url = models.URLField()
    imageUrl = models.URLField(default="")
    description = models.TextField(default="")

    order = models.IntegerField(default=1)

    objects = LinkManager()

    owner = models.ForeignKey("account.User",
                              on_delete=models.CASCADE,
                              related_name="links")

    list = models.ForeignKey(List,
                             on_delete=models.CASCADE,
                             related_name="links")

    class Meta:
        ordering = ("order", )
        index_together = ("list", "order")

    def __str__(self):
        return f"<Link - {self.title}>"
Exemplo n.º 17
0
class Tag(models.Model):
    name = models.CharField(_("Name"), max_length=255, unique=True)
    created = AutoCreatedField(_('Created'))

    objects = TagQuerySet.as_manager()

    def __str__(self):
        return "#%s" % self.name

    def save(self, *args, **kwargs):
        """Ensure name is lower case and stripped.

        Note this could lead to unique constraints when saving - make sure to also lower case and trim
        the name when fetching tags, or use the given manager for that.
        """
        self.name = self.name.strip().lower()
        super().save()

    @cached_property
    def channel_group_name(self):
        """Make a safe Channel group name.

        ASCII or hyphens or periods only.
        Prefix with ID as we have to slugify the name and cut long guids due to asgi library group name restriction.
        """
        return ("%s_%s" % (self.id, slugify(self.name)))[:80]
Exemplo n.º 18
0
class BasePermission(models.Model):
    class Meta(object):
        abstract = True

    user = models.ForeignKey(settings.AUTH_USER_MODEL, db_index=True)
    created_by = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, blank=True, related_name='+')
    created = AutoCreatedField()
    expiration_time = models.DateTimeField(null=True, blank=True)
    is_active = models.NullBooleanField(default=True, db_index=True)

    @classmethod
    def get_url_name(cls):
        raise NotImplementedError

    @classmethod
    def get_expired(cls):
        return cls.objects.filter(expiration_time__lt=timezone.now(), is_active=True)

    @classmethod
    @lru_cache(maxsize=1)
    def get_all_models(cls):
        return [model for model in apps.get_models() if issubclass(model, cls)]

    def revoke(self):
        raise NotImplementedError
Exemplo n.º 19
0
class Movie(models.Model):
    id = models.CharField(primary_key=True,
                          max_length=40,
                          default=hex_uuid,
                          editable=False)
    title = models.TextField(blank=True, null=True)
    description = models.TextField(blank=True, null=True)
    director = models.TextField(blank=True, null=True)
    imdb_rating = models.DecimalField(max_digits=3,
                                      decimal_places=1,
                                      blank=True,
                                      null=True)
    genres = models.ManyToManyField(Genre, through='MovieGenre')
    actors = models.ManyToManyField(Actor, through='MovieActor')
    writers = models.ManyToManyField(Writer, through='MovieWriter')
    created_at = AutoCreatedField(_("created"))
    updated_at = AutoLastModifiedField(_("modified"))

    class Meta:
        managed = False
        db_table = 'movie'
        indexes = [models.Index(fields=['title'])]

    def __str__(self):
        return self.title
Exemplo n.º 20
0
class Tag(models.Model):
    name = models.CharField(_("Name"), max_length=255, unique=True)
    created = AutoCreatedField(_('Created'))
    uuid = models.UUIDField(unique=True, default=uuid4, editable=False)

    objects = TagQuerySet.as_manager()

    def __str__(self):
        return "#%s" % self.name

    def get_absolute_url(self):
        return reverse('streams:tag', kwargs={"name": slugify(self.name)})

    def save(self, *args, **kwargs):
        """Ensure name is lower case and stripped.

        Note this could lead to unique constraints when saving - make sure to also lower case and trim
        the name when fetching tags, or use the given manager for that.
        """
        self.name = self.name.strip().lower()
        super().save()

    @cached_property
    def channel_group_name(self):
        """Make a safe Channel group name.

        ASCII or hyphens or periods only.
        """
        # TODO use just id
        return ("%s_%s" % (self.id, slugify(self.name)))[:80]
Exemplo n.º 21
0
class Role(models.Model):
    name = models.CharField(max_length=32, unique=True)
    is_active = models.BooleanField('active', default=True)
    created = AutoCreatedField()

    def __str__(self):
        return str(self.name)
Exemplo n.º 22
0
class IdentityRadiusAccount(models.Model):
    identity = models.ForeignKey(Identity, on_delete=models.CASCADE)
    radius_account = models.ForeignKey(RadiusCheck, on_delete=models.CASCADE)
    token = models.UUIDField(
        unique=True,
        default=uuid.uuid4,
        blank=True,
        null=True,
        help_text="{}/identity/radius_renew/$token".format(settings.BASE_URL))
    sent = models.BooleanField(default=False)
    valid_until = models.DateTimeField(blank=True, null=True)
    used = models.DateTimeField(blank=True, null=True)
    is_active = models.BooleanField(default=True)
    created = AutoCreatedField(_('created'), editable=False)

    def save(self, *args, **kwargs):
        if not self.valid_until:
            validity_days = IDENTITY_TOKEN_EXPIRATION_DAYS
            _time_delta = datetime.timedelta(days=validity_days)
            self.valid_until = timezone.now() + _time_delta
        super(IdentityRadiusAccount, self).save(*args, **kwargs)

    class Meta:
        verbose_name = _('radius secret reset token')
        verbose_name_plural = _('radius secret reset tokens')

    def __str__(self):
        return '{} {}'.format(self.radius_account, self.is_active)
Exemplo n.º 23
0
class CustomerPermissionReview(core_models.UuidMixin):
    class Permissions:
        customer_path = 'customer'

    customer = models.ForeignKey(
        Customer,
        verbose_name=_('organization'),
        related_name='reviews',
        on_delete=models.CASCADE,
    )
    is_pending = models.BooleanField(default=True)
    created = AutoCreatedField()
    closed = models.DateTimeField(null=True, blank=True)
    reviewer = models.ForeignKey(settings.AUTH_USER_MODEL,
                                 on_delete=models.SET_NULL,
                                 null=True,
                                 blank=True)

    @classmethod
    def get_url_name(cls):
        return 'customer_permission_review'

    def close(self, user):
        self.is_pending = False
        self.closed = timezone.now()
        self.reviewer = user
        self.save()
Exemplo n.º 24
0
class TimeStampedModel(models.Model):
    """
    An abstract base class model that provides self-updating
    ``created`` and ``modified`` fields.

    """
    created = AutoCreatedField(_('created'))
    modified = AutoLastModifiedField(_('modified'))

    def save(self, *args, **kwargs):
        """
        Overriding the save method in order to make sure that
        modified field is updated even if it is not given as
        a parameter to the update field argument.
        """
        update_fields = kwargs.get('update_fields', None)
        if update_fields is not None:
            update_fields = set(update_fields)
            if update_fields:
                kwargs['update_fields'] = update_fields.union({'modified'})

        super().save(*args, **kwargs)

    class Meta:
        abstract = True
Exemplo n.º 25
0
class Credential(models.Model):
    """Credentials are repository bound"""
    created = AutoCreatedField()

    repository = models.ForeignKey('packages.Repository',
                                   related_name='credentials')
    access_key = UUIDField(verbose_name='Access key',
                           help_text='The access key',
                           auto=True,
                           db_index=True)
    secret_key = UUIDField(verbose_name='Secret key',
                           help_text='The secret key',
                           auto=True,
                           db_index=True)
    comment = models.CharField(
        max_length=255,
        blank=True,
        null=True,
        default='',
        help_text="A comment about this credential, e.g. where it's being used"
    )

    allow_upload = models.BooleanField(
        default=True,
        help_text=_("Indicate if these credentials allow uploading new files"))
    deactivated = models.DateTimeField(blank=True, null=True)

    objects = CredentialManager()

    def __unicode__(self):
        return self.access_key.hex

    class Meta:
        ordering = ['-created']
        permissions = (("view_credential", "Can view credential"), )
Exemplo n.º 26
0
class Notification(UuidMixin):
    author = models.ForeignKey(to=User, on_delete=models.SET_NULL, null=True)
    created = AutoCreatedField()
    subject = models.CharField(max_length=1000, validators=[validate_name])
    body = models.TextField(validators=[validate_name])
    query = JSONField()
    emails = JSONField()
Exemplo n.º 27
0
class Record(models.Model):
    REWARD_TYPE = ((0, '每日签到奖励'), )

    COIN_TYPE = (
        (0, '金币'),
        (1, '银币'),
        (2, '铜币'),
    )

    created_time = AutoCreatedField(verbose_name="创建时间")
    reward_type = models.IntegerField(verbose_name="奖励类型", choices=REWARD_TYPE)
    coin_type = models.IntegerField(verbose_name="钱币类型", choices=COIN_TYPE)
    amount = models.PositiveIntegerField(verbose_name="数额")
    description = models.CharField(verbose_name="描述",
                                   max_length=300,
                                   blank=True)
    user = models.ForeignKey(settings.AUTH_USER_MODEL,
                             verbose_name="用户",
                             on_delete=models.CASCADE)

    class Meta:
        verbose_name = "奖励记录"
        verbose_name_plural = "奖励记录"

    def __str__(self):
        return '%s:%s:%s -> %s' % (self.reward_type, self.coin_type,
                                   self.amount, self.user)
Exemplo n.º 28
0
class VoiceMemo(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    created = AutoCreatedField()
    sample = models.ForeignKey('Sample', null=True)
    file_path = models.CharField(max_length=1024)

    class Meta:
        db_table = 'voice_memo'
Exemplo n.º 29
0
class Event(UuidMixin):
    created = AutoCreatedField()
    event_type = models.CharField(max_length=100, db_index=True)
    message = models.TextField()
    context = BetterJSONField(blank=True)

    class Meta:
        ordering = ('-created', )
Exemplo n.º 30
0
class Creatable(models.Model):
    """
    """

    created = AutoCreatedField(_("created"))

    class Meta:
        abstract = True