Exemple #1
0
class Cathedra(Model):
    name = CharField(max_length=200, verbose_name='Название')
    slug = CharField(max_length=200, verbose_name='Техническое имя')
    html = TextField(verbose_name='HTML')

    icon = ImageField(upload_to='main/images/cathedras/icons',
                      null=True,
                      blank=True,
                      verbose_name='Иконка')
    image = ImageField(upload_to='main/images/cathedras/images',
                       null=True,
                       blank=True,
                       verbose_name='Картинка')

    def __str__(self):
        return self.name

    @staticmethod
    def get_menu(menu):
        inner_links = Cathedra.objects.filter(menu=menu)
        return {inner_link.slug: inner_link.name for inner_link in inner_links}

    class Meta:
        verbose_name = 'Кафедра'
        verbose_name_plural = 'Кафедры'
class User(AbstractUser):
    avatar = ImageField(blank=True,
                        default='default/default-user.jpg',
                        upload_to=user_directory_path)
    birth_date = DateField(null=True, blank=True, default=None)
    email = EmailField('email', unique=True, blank=True, null=False)
    phone = CharField(max_length=20, blank=True, default=None, null=True)
    thumbnail = ImageField(blank=True, default='default/default-user.jpg')
    is_verified = BooleanField('verified', default=False)
    verification_uuid = UUIDField('Unique Verification UUID',
                                  default=uuid.uuid4)

    @classmethod
    def create(cls, **kwargs):
        new_user = cls()
        new_user.birth_date = kwargs.get('birth_date') if kwargs.get(
            'birth_date') else None
        new_user.email = kwargs.get('email') if kwargs.get('email') else None
        new_user.first_name = kwargs.get('first_name') if kwargs.get(
            'first_name') else None
        new_user.last_name = kwargs.get('last_name') if kwargs.get(
            'last_name') else None
        new_user.password = make_password(kwargs.get('password'))
        new_user.phone = kwargs.get('phone') if kwargs.get('phone') else None
        new_user.username = kwargs.get('username')
        return new_user

    def __str__(self):
        return self.username if self.username else '%s %s' % (self.first_name,
                                                              self.last_name)
class Boat(TimeStampedModel, TitleSlugDescriptionModel):
    class Meta:
        verbose_name = _("boat model")
        verbose_name_plural = _("boat models")
        ordering = ['title']

    base = BoatImageField(verbose_name=_("base"))
    hull = BoatImageField(verbose_name=_("hull"))
    boot_stripe = BoatImageField(verbose_name=_("boot stripe"))
    boot_stripe_accent = BoatImageField(verbose_name=_("boot stripe accent"))
    sheer_stripe = ImageField(
        verbose_name=_("sheer stripe"),
        upload_to=settings.BOAT_CONFIG['BOAT_IMAGES'],
        blank=True,
        null=True,
    )
    sheer_stripe_accent = ImageField(
        verbose_name=_("sheer stripe accent"),
        upload_to=settings.BOAT_CONFIG['BOAT_IMAGES'],
        blank=True,
        null=True,
    )
    model_group = models.ForeignKey("BoatModelGroup",
                                    null=True,
                                    blank=True,
                                    related_name="boats",
                                    verbose_name=_("model group"))
    length_group = models.ForeignKey("BoatLengthGroup",
                                     null=True,
                                     blank=True,
                                     related_name="boats",
                                     verbose_name=_("length group"))
    logo = BoatImageField(verbose_name=_("logo"))

    thumbnail = ImageField(verbose_name=_("thumbnail"),
                           upload_to="boats_thumbnails/")

    # Comparable attributes

    standard_fuel = models.CharField(max_length=255,
                                     verbose_name=_("standard fuel"))
    beam = models.CharField(max_length=255, verbose_name=_("beam"))
    length = models.CharField(max_length=255, verbose_name=_("length"))
    water = models.CharField(max_length=255, verbose_name=_("water"))

    def __str__(self):
        return self.title

    def get_available_features(self):
        return self.features.filter(available=True).all()

    def has_all_images(self):
        image_fields = [
            'base', 'hull', 'boot_stripe', 'boot_stripe_accent', 'logo',
            'thumbnail'
        ]
        return all([getattr(self, attr) for attr in image_fields])
Exemple #4
0
class Blog(models.Model):
    title = CharField(max_length=250)
    date = DateField()
    banner = ImageField(upload_to='static/images/article', default='static/images/article/default.jpg')
    thumbnail = ImageField(upload_to='static/images/article', default='static/images/article/default.jpg')
    short_content = TextField(default='such empty...')
    content = TextField()

    def __str__(self):
        return self.title[:100]
Exemple #5
0
def image( *args, **kwargs ):
	
	meta = _kwargs_( kwargs )

	meta['type'] = 'image'

	field = ImageField( *args, **kwargs )

	field.meta = meta

	return field
Exemple #6
0
class Course(Model):
    name = CharField(max_length=64)
    description = TextField()
    cover_image = ImageField(upload_to=get_course_upload_directory)
    small_cover_image = ImageField(null=True, blank=True, upload_to=get_course_upload_directory)
    created = DateTimeField(auto_now_add=True)
    updated = DateTimeField(auto_now=True)

    objects = CourseQuerySet.as_manager()

    def __str__(self):
        return f"{self.name} ({self.id})"
Exemple #7
0
class ImageThumbModel(Model):
    image = ImageField(blank=True)
    thumb = ImageField(null=True, blank=True)

    class Meta:
        abstract = True

    def save(self, *args, **kwargs):
        create_thumb(self)
        super(ImageThumbModel, self).save(*args, **kwargs)

    def __init__(self, *args, **kwargs):
        super(ImageThumbModel, self).__init__(*args, **kwargs)
Exemple #8
0
class Artist(ImageThumbModel):
    name = CharField(max_length=50, blank=True)
    description = CharField(max_length=1024, blank=True)
    image = ImageField(upload_to=path_and_rename('artists'), blank=True)
    thumb = ImageField(upload_to=path_and_rename('artists/thumbs'),
                       null=True,
                       blank=True)

    def __str__(self):
        return self.name

    class Meta:
        ordering = ('name', )
Exemple #9
0
class House(models.Model):
    name = CharField(max_length=20, default="Untitled")
    motto = CharField(max_length=256)
    image = ImageField(upload_to="houses", blank=True, null=True)
    banner = ImageField(upload_to="banners", blank=True, null=True)
    title_color = CharField(max_length=8, default="", blank=True)
    back_color = CharField(max_length=8, default="", blank=True)
    nav_color = CharField(max_length=8, default="", blank=True)
    headers_color = CharField(max_length=8, default="", blank=True)
    text_color = CharField(max_length=8, default="", blank=True)
    footer_color = CharField(max_length=8, default="", blank=True)

    def __str__(self):
        return f"{self.name}"
def fetch_image_to_image_field(image_url: str, target_field: ImageField) -> None:
    """Fetches image from url and assigns it to image file field"""
    response = requests.get(image_url)
    response.raise_for_status()

    content = response.content
    content_file = ContentFile(content)

    content_type = response.headers.get('content-type')
    extension = guess_extension(content_type)

    target_file_name = '{0}{1}'.format(uuid4(), extension)
    target_field.save(
        default_storage.get_available_name(target_file_name), content_file
    )
Exemple #11
0
class AppUser(Model):
    user_Id = CharField(max_length=50, unique=True, blank=False, primary_key=True)
    password = CharField(max_length=50, blank=False)
    firstname = CharField(max_length=25)
    lastname = CharField(max_length=25)
    age = IntegerField(blank=True, default=20)
    sex = CharField(max_length=6, default="Male")
    height = FloatField(blank=True, default=5.0)
    body_type = CharField(max_length=10, default="Average")
    from_age = IntegerField(blank=True, default=20)
    to_age = IntegerField(blank=True, default=40)
    partner = CharField(max_length=6, default="Female")
    partner_height = FloatField(blank=True, default=5.0)
    partner_body_type = CharField(max_length=10, default="Average")
    photo = ImageField(blank=True, default='default_profile.png')

    def upload_photo(self, photo):
        self.photo = photo
        self.save()
        return self 

    def update(self, age, sex, height, body_type, from_age, to_age,
        partner, partner_height, partner_body_type):
        self.age = age
        self.sex = sex
        self.height = height
        self.body_type = body_type
        self.from_age = from_age
        self.to_age = to_age
        self.partner = partner
        self.partner_height = partner_height
        self.partner_body_type = partner_body_type

        self.save()
        return self
Exemple #12
0
class Slide(Orderable):
    title = CharField(max_length=50, verbose_name='Título', null=True, blank=True)
    description = CharField(max_length=256, verbose_name='Descrição', null=True, blank=True)
    image = ImageField(upload_to='slides', verbose_name='Imagem')
    time = PositiveIntegerField(default=5, verbose_name='Tempo visível', help_text='Em segundos')
    slider = ForeignKey(Slider, related_name='slides')
    url = CharField(verbose_name='Link', max_length=255, null=True, blank=True)
Exemple #13
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
Exemple #14
0
class User(AbstractUser):
    """Default user for Pinterest Clone."""

    #: First and last name do not cover name patterns around the globe
    name = CharField(_("Name of User"), blank=True, max_length=255)
    avatar = ImageField(upload_to='avatars', blank=True)
    followers = ManyToManyField("User", related_name="following")

    @property
    def total_followers(self):
        return self.followers.all().count()

    @property
    def total_following(self):
        return self.following.all().count()

    @property
    def display_name(self):
        if self.name:
            return self.name
        return self.username

    def get_absolute_url(self):
        """Get url for user's detail view.

        Returns:
            str: URL for user detail.

        """
        return reverse("users:detail", kwargs={"username": self.username})
Exemple #15
0
class GameRank(models.Model):
    name = CharField(max_length=64)
    badge = ImageField(upload_to="game_badges", blank=True, null=True)
    min_place = IntegerField(default=1)

    def __str__(self):
        return f"{self.name}"
Exemple #16
0
class NewsAnswer(Model):
    text = TextField()
    news = FK(to=News, related_name='news_answers', on_delete=CASCADE)
    author = FK(to=Profile, related_name='news_answers', on_delete=CASCADE)
    image = ImageField(blank=True, null=True, upload_to='news_pics')
    seen_by = M2M(to=Profile, related_name='news_answers_seen', blank=True)
    created_at = DateTimeField(
        # auto_now_add=True
    )

    survey_options = M2M(to=SurveyOption, related_name='threads', blank=True)

    class Meta:
        ordering = ['created_at']

    def __str__(self):
        return self.text[:100] + '...' if len(str(self.text)) > 100 else self.text

    def save(self, *args, **kwargs):
        first_save = True if not self.pk else False
        super().save(*args, **kwargs)
        if first_save and self.image:
            img = Image.open(self.image.path)
            if img.height > 700 or img.width > 700:
                output_size = (700, 700)
                img.thumbnail(output_size)
                img.save(self.image.path)
Exemple #17
0
class Statement(Model):
    text = TextField()
    thread = FK(to=Thread, related_name='statements', on_delete=CASCADE)
    author = FK(to=Profile, related_name='statements', on_delete=PROTECT)
    image = ImageField(upload_to='post_pics', blank=True, null=True)
    seen_by = M2M(to=Profile, related_name='statements_seen', blank=True)
    created_at = DateTimeField(auto_now_add=True)
    # Announcement
    options = M2M(to=Option, related_name='threads', blank=True)

    class Meta:
        ordering = ['created_at']

    def __str__(self):
        text = self.text
        return f'{text[:100]}...' if len(str(text)) > 100 else text
    
    def save(self, *args, **kwargs):
        first_save = True if not self.pk else False
        super().save(*args, **kwargs)
        if first_save and self.image:
            img = Image.open(self.image.path)
            if img.height > 700 or img.width > 700:
                output_size = (700, 700)
                img.thumbnail(output_size)
                img.save(self.image.path)
Exemple #18
0
class Anime(models.Model):
    anime_id = models.AutoField(primary_key=True,  editable =False)
    name = CharField(max_length = 100)
    genre = CharField(max_length = 200)

    MOVIE = "Movie"
    TV = "TV"
    OVA = "OVA"
    ONA = "ONA"
    SPECIAL = "Special"

    GENRE_CHOICE = (
        (MOVIE, "Movie"),
        (TV, "TV"),
        (OVA, "OVA"),
        (ONA, "ONA"),
        (SPECIAL, "Special")
    )

    anime_type = CharField(
        max_length = 7,
        choices = GENRE_CHOICE,
        default = TV,
    )

    episodes = IntegerField()
    rating = FloatField(validators=[MinValueValidator(0.0), MaxValueValidator(10)], default = 0)
    members = BigIntegerField()

    anime_photo = ImageField(null = True, upload_to = 'img/profiles', verbose_name = "Anime Photo", default = "{% static 'img/placeholder.jpg' %}")

    class Meta:
        ordering = ('-rating',)
Exemple #19
0
class Game(Model):
    """docstring for Request"""
    name = CharField(max_length=255, )
    description = TextField(blank=True, null=True)
    created_date = DateTimeField(default=timezone.now())
    image = ImageField(upload_to="pic_folder/imgs/", blank=True, null=True)
    min_players = IntegerField(default=1)
    max_players = IntegerField(default=100)
    manual = FileField(upload_to="file_folder/manual", blank=True, null=True)
    min_best_for = IntegerField(default=0)
    max_best_for = IntegerField(default=100)
    difficulty_level = CharField(max_length=25,
                                 choices=(
                                     ('very_easy', 'muito fácil'),
                                     ('easy', 'facil'),
                                     ('normal', 'normal'),
                                     ('hard', 'difícil'),
                                     ('very_hard', 'muito difícil'),
                                 ))
    time = IntegerField(default=0)

    def __str__(self):
        return self.name

    def no_space_name(self):
        return self.name.replace(' ', '-')

    def mechanisms(self):
        return GameXGameMechanism.objects.filter(game=self)
class Product(UUIDModel, TimeStampedModel):
    created_by = ForeignKey(settings.AUTH_USER_MODEL, on_delete=PROTECT)
    name = CharField(max_length=250)
    category = CharField(max_length=500, blank=True, null=True)

    landing_price = DecimalField(max_digits=9, decimal_places=2)
    price = DecimalField(max_digits=9, decimal_places=2, verbose_name='MRP')
    distributor_margin = DecimalField(max_digits=5,
                                      decimal_places=2,
                                      verbose_name='Shell Margin')
    retailer_margin = DecimalField(max_digits=5, decimal_places=2)

    stock = PositiveIntegerField()
    barcode_entry = CharField(max_length=200, unique=True)
    image = ImageField(upload_to=get_product_upload_path,
                       blank=True,
                       null=True)

    is_active = BooleanField(default=True)

    class Meta:
        verbose_name = 'Product'
        verbose_name_plural = 'Products'

    def __str__(self):
        return self.name
Exemple #21
0
class Article(Model):
    author = ForeignKey('Writer', on_delete=CASCADE)
    name = CharField(max_length=70)
    text = CharField(max_length=100000)
    image = ImageField(max_length=1000, upload_to=r'articles/images', null=True)
    tag = ForeignKey('Tag', on_delete=CASCADE, null=True)
    pub_date = DateTimeField()
    last_edit = DateTimeField()

    def __str__(self):
        return self.name

    def upload_image(self, file):
        os.chdir(settings.MEDIA_ROOT)
        self.delete_image()

        filename = self.author.name + '_' + self.name + '_image' + os.path.splitext(os.path.basename(file.name))[1]
        filename = os.path.join('articles/images/', filename)

        model_logic.upload_to_storage(file, filename)
        model_logic.resize_image(filename, square=True)
        self.image = filename
        self.save()

    def delete_image(self):
        model_logic.delete(self)
Exemple #22
0
class User(Model):
    nama = CharField(max_length=50, null=True)
    email = EmailField(max_length=50, null=True)
    gender = CharField(max_length=20, null=True)
    alamat = CharField(max_length=100, null=True)
    negara = CharField(max_length=20, null=True)
    kota = CharField(max_length=30, null=True)
    no_hp = CharField(max_length=12, null=True)
    univ = CharField(max_length=50, null=True)
    jurusan = CharField(max_length=50, null=True)
    ang_kuliah = CharField(max_length=5, null=True)
    ang_LMD = CharField(max_length=5, null=True)
    pekerjaan = CharField(max_length=50, null=True)
    instansi = CharField(max_length=30, null=True)
    aktifitas = TextField(null=True)
    tahun_aktif = TextField(null=True)
    verified = BooleanField(default=False)
    password = CharField(max_length=50, null=True)
    # edited 15 april
    latitude = DecimalField(max_digits=20, decimal_places=15, null=True)
    longitude = DecimalField(max_digits=20, decimal_places=15, null=True)
    pertanyaan1 = TextField(null=True)
    pertanyaan2 = TextField(null=True)
    jawaban1 = TextField(null=True)
    jawaban2 = TextField(null=True)
    profile_image = ImageField(upload_to=get_image_path, blank=True, null=True)
Exemple #23
0
class Issue(Model):
    title = CharField(max_length=255)
    file = FileField(upload_to='issues/%Y/%m')
    img = ImageField(upload_to='images/%Y/%m')
    volume = PositiveIntegerField(null=True)
    issue = PositiveIntegerField(null=True)
    date = DateTimeField()
Exemple #24
0
class UserInformation(Model):
    user = OneToOneField(settings.AUTH_USER_MODEL,
                         on_delete=CASCADE,
                         related_name='info',
                         verbose_name=_('User'))
    event_editor = BooleanField(default=False, verbose_name=_('Event Editor'))
    watchlist_viewer = BooleanField(default=False, verbose_name=_('Watchlist Viewer'))
    menu_viewer = BooleanField(default=False, verbose_name=_('Menu Item Viewer'))
    reporter = BooleanField(default=False, verbose_name=_('Reporter'))
    alert_viewer = BooleanField(default=True, verbose_name=_('Alert Viewer'))
    monitor_info_viewer = BooleanField(default=True, verbose_name=_('Monitor Info Viewer'))
    amislist_viewer = BooleanField(default=False, verbose_name=_('Amis List Viewer'))
    festivalreport_viewer = BooleanField(default=False, verbose_name=_('Festival Report Viewer'))
    festivalreport_refresh = BooleanField(default=False, verbose_name=_('Festival Report Refresh'))
    profile = ImageField(upload_to=upload_location, null=True, blank=True, verbose_name=_('Profile'))

    class Meta:
        verbose_name = _('User Information')
        verbose_name_plural = _('User Informations')

    def __str__(self):
        return str(self.full_name)

    def __unicode__(self):
        return str(self.full_name)

    @property
    def full_name(self):
        name = str(self.user.last_name) + str(self.user.first_name)
        if name == '':
            name = self.user.username
        return name
Exemple #25
0
class TopPost(models.Model):
    title = models.CharField(max_length=100)
    target = models.CharField(max_length=100)
    imgUrl = ImageField(upload_to='TopPostImg')

    def __str__(self):
        return self.title
class Category(Model):
    class Meta:
        verbose_name = 'Category'
        verbose_name_plural = 'Categories'

    name = CharField(max_length=30)
    image = ImageField(null=True, blank=True)
    slug = SlugField(null=False, unique=True)

    def __str__(self):
        return self.name

    @property
    def imageURL(self):
        if self.image:
            url = self.image.url
        else:
            url = ''
        return url

    def get_absolute_url(self):
        return reverse('store:category', kwargs={'slug': self.slug})

    def save(self, *args, **kwargs):
        if not self.slug:
            self.slug = slugify(self.name)
        return super().save(*args, **kwargs)
class User(AbstractUser):
    """Default user for Art For Introvert backend.
    """

    #: First and last name do not cover name patterns around the globe
    name = CharField(_("Name of User"), blank=True, max_length=255)
    email = EmailField(_('email address'), unique=True)
    userpic = ImageField(_('userpic'),
                         upload_to='user_userpics/',
                         null=True,
                         blank=True)
    birthdate = DateField(_("Birth Date"), blank=True, null=True)
    USERNAME_FIELD = 'email'
    REQUIRED_FIELDS = ['username']

    def __str__(self):
        return f"User #{self.id}: {self.email}"

    def get_absolute_url(self):
        """Get url for user's detail view.

        Returns:
            str: URL for user detail.

        """
        return reverse("users:detail", kwargs={"username": self.username})
class MetaProduct(Model):
    class Meta:
        verbose_name = 'Meta Product'
        verbose_name_plural = 'Meta Products'

    name = CharField(max_length=70, unique=True)
    category = ForeignKey(Category, on_delete=SET_NULL, null=True, blank=True)
    description = TextField(max_length=700, null=False, blank=False)
    availability = IntegerField(null=False, blank=False)
    digital = BooleanField(default=False, null=True, blank=True)
    image = ImageField(null=True, blank=True)
    slug = SlugField(null=False, unique=True)

    def __str__(self):
        return self.name

    @property
    def imageURL(self):
        if self.image:
            url = self.image.url
        else:
            url = ''
        return url

    def get_absolute_url(self):
        return reverse('store:meta_product', kwargs={'slug': self.slug})

    def save(self, *args, **kwargs):
        if not self.slug:
            self.slug = slugify(self.name)
        return super().save(*args, **kwargs)
Exemple #29
0
class Direction(Model):
    class Degree(TextChoices):
        MAGISTRACY = 'magistracy', 'Магистратура'
        BACCALAUREATE = 'baccalaureate', 'Бакалавриат'
        POSTGRADUATE = 'postgraduate', 'Аспирантура'

        @staticmethod
        def get_list():
            return [degree.label for degree in Direction.Degree]

        @staticmethod
        def get_choice_list():
            return [[degree.value, degree.label] for degree in Direction.Degree]

    name = CharField(max_length=200, verbose_name='Название')
    slug = CharField(max_length=200, verbose_name='Техническое имя')
    degree = CharField(choices=Degree.choices, max_length=20, default=Degree.MAGISTRACY, verbose_name='Степень')
    image = ImageField(upload_to='main/images/directions/images', null=True, blank=True, verbose_name='Картинка')
    html = TextField(verbose_name='HTML')

    def __str__(self):
        return self.name

    @property
    def url(self):
        return '/direction/' + self.slug

    def get_breadcrumbs_dict(self, menu):
        breadcrumbs = menu.get_breadcrumbs_dict()
        return breadcrumbs

    class Meta:
        verbose_name = 'Направление'
        verbose_name_plural = 'Направления'
Exemple #30
0
class StreamingChannel(BaseModel):
    class Meta:
        verbose_name = _('Streaming channel')
        verbose_name_plural = _('Streaming channels')
        permissions = ()

    name = CharField(null=False,
                     blank=False,
                     max_length=25,
                     verbose_name=_('Name'))

    description = CharField(null=True,
                            blank=True,
                            max_length=1024,
                            verbose_name=_('Description'))

    icon = ImageField(null=True,
                      blank=True,
                      verbose_name=_('Channel icon'),
                      upload_to='images/%Y/%m/%d/channel_icons')

    url = URLField(null=False,
                   blank=False,
                   verbose_name=_('URL streaming channel'))

    owner_user = ForeignKey(
        User,
        default=None,
        related_name='channels',
        verbose_name=_('Owner streaming channels'),
    )

    def __str__(self):
        return '{} - {}'.format(self.name, self.url)