示例#1
0
class Cuisine(models.Model):
    """
    Django Model to hold Cuisines.
    Cuisines have a one to Many relation with Recipes.
    Each Recipe will be assigned a Cuisine.
    :title: = Title of the Cuisine
    :author: = Creator of the Cuisine
    """
    title = models.CharField(_('title'), max_length=100, unique=True)
    slug = AutoSlugField(_('slug'), populate_from='title', unique=True)
    author = models.ForeignKey(User, on_delete=models.CASCADE)

    class Meta:
        ordering = ['title']

    def __str__(self):
        return self.title
示例#2
0
class Comment(models.Model):
	author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, default=True)
	post = models.ForeignKey(Post, on_delete=models.CASCADE,)
	slug = AutoSlugField(populate_from='name')
	name= models.CharField(max_length=80)
	email = models.EmailField()
	body = models.TextField(max_length=50)
	created_on = models.DateTimeField(auto_now_add=True)
	active = models.BooleanField(default=True)
	reply = models.ForeignKey('self',null=True, blank=True, related_name='replies',on_delete=models.CASCADE)
	content = models.TextField(max_length=100, default=True)

	class Meta:
		ordering = ['created_on']

	def __str__(self):
		return 'Comment {} by {}'.format(self.body, self.name)
示例#3
0
class Experience(Model):
    job_title = CharField(max_length=100)
    location = CharField(max_length=100)
    company = CharField(max_length=150)
    slug = AutoSlugField(max_length=50, populate_from=["id", "job_title"])
    started_at = DateField()
    ended_at = DateField(null=True, blank=True)
    current = BooleanField(default=True)
    created_at = DateTimeField(auto_now_add=True)
    tasks = TextField()

    class Meta:
        ordering = ("-created_at", )

    def __str__(self):
        return "{} at {} had {}".format(self.job_title, self.company,
                                        len(self.tasks.split('\n')))
示例#4
0
class ProductVariantBase(models.Model):
    """
    Base model for creating product variants
    """
    product = ParentalKey(Product, related_name='variants')
    price = models.DecimalField(max_digits=12, decimal_places=2)
    ref = models.CharField(max_length=32)
    stock = models.IntegerField(default=0)
    slug = AutoSlugField(
        separator='',
        populate_from=('product', 'ref'),
        )
    class Meta:
        abstract = True

    def get_product_title(self):
        return self.product.title
示例#5
0
class Course(models.Model):
    """
    Django Model to hold Courses.
    Courses have a one to Many relation with Recipes.
    Each Recipe will be assigned a Course.
    :title: = Title of the Course
    :author: = Creator of the Course
    """
    title = models.CharField(_('title'), max_length=100, unique=True)
    slug = AutoSlugField(_('slug'), populate_from='title', unique=True)
    author = models.ForeignKey(User, verbose_name=_('author'))

    class Meta:
        ordering = ['title']

    def __unicode__(self):
        return '%s' % self.title
示例#6
0
class Party(models.Model):
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

    title = models.CharField(
        max_length=100,
    )

    slug = AutoSlugField(
        populate_from='title',
    )

    description = models.TextField()

    when = models.DateTimeField(
        help_text='YYYY-MM-DD HH:MM:SS',
    )

    venue = models.ForeignKey(
        Venue,
        related_query_name="parties_here",
        null=True,
    )

    public = models.BooleanField(
        default=False,
    )

    organizers = models.ManyToManyField(
        'auth.User',
        blank=True,
        related_name='organizing_parties',
    )

    objects = PartyQuerySet.as_manager()

    class Meta:
        verbose_name = 'party'
        verbose_name_plural = 'parties'
        ordering = ['when']

    def __str__(self):
        return '"{}" at {}'.format(self.title, self.venue)

    def get_absolute_url(self):
        return reverse('parties:party-detail', kwargs={'slug': self.slug})
示例#7
0
class Menu(ClusterableModel):
    """The main menu clusterable model."""

    title = models.CharField(max_length=100)
    slug = AutoSlugField(populate_from="title", editable=True)

    panels = [
        MultiFieldPanel([
            FieldPanel("title"),
            FieldPanel("slug"),
        ],
                        heading="Menu"),
        InlinePanel("menu_items", label="Menu Item")
    ]

    def __str__(self):
        return self.title
示例#8
0
class Board(MetaDataModel):
    class Meta(MetaDataModel.Meta):
        verbose_name = '게시판'
        verbose_name_plural = '게시판 목록'
        unique_together = (
            ('ko_name', 'deleted_at'),
            ('en_name', 'deleted_at'),
        )

    slug = AutoSlugField(populate_from=[
        'en_name',
    ], )
    ko_name = models.CharField(
        max_length=32,
        verbose_name='게시판 국문 이름',
    )
    en_name = models.CharField(
        max_length=32,
        verbose_name='게시판 영문 이름',
    )
    ko_description = models.TextField(verbose_name='게시판 국문 소개', )
    en_description = models.TextField(verbose_name='게시판 영문 소개', )

    # 사용자 그룹에 대해 접근 권한을 제어하는 bit mask 입니다.
    # access_mask & (1<<user.group) > 0 일 때 접근이 가능합니다.
    # 사용자 그룹의 값들은 `UserGroup`을 참고하세요.
    access_mask = models.IntegerField(
        default=2,  # 카이스트 구성원만 사용 가능
        null=False,
        verbose_name='접근 권한 값')
    is_readonly = models.BooleanField(
        verbose_name='읽기 전용 게시판',
        help_text='활성화했을 때 관리자만 글을 쓸 수 있습니다. (ex. 포탈공지)',
        default=False)
    is_hidden = models.BooleanField(
        verbose_name='리스트 숨김 게시판',
        help_text='활성화했을 때 메인페이지 상단바 리스트에 나타나지 않습니다. (ex. 뉴아라공지)',
        default=False,
        db_index=True,
    )

    def __str__(self):
        return self.ko_name

    def group_has_access(self, group: int) -> bool:
        return (self.access_mask & (1 << group)) > 0
示例#9
0
class Client(models.Model):

    # Choices Values
    MARRIED = 'MR'
    SINGLE = 'SL'
    LIVINGTOGETHER = 'LT'
    MARRIED_STATUS_CHOICES = ((MARRIED, 'Married'), (SINGLE, 'Single'),
                              (LIVINGTOGETHER, 'Living together'))

    # Fields
    name = CharField(max_length=255)
    slug = AutoSlugField(populate_from='name', blank=True)
    created = DateTimeField(auto_now_add=True, editable=False)
    last_updated = DateTimeField(auto_now=True, editable=False)
    occupation = CharField(max_length=100, null=True, blank=True)
    address = CharField(max_length=500)
    home_telephone = CharField(max_length=30, null=True, blank=True)
    work_telephone = CharField(max_length=100, null=True, blank=True)
    domicile = CharField(max_length=100, null=True, blank=True)
    dob = DateField(null=True, blank=True)
    place_of_birth = CharField(max_length=100, null=True, blank=True)
    name_at_birth = CharField(max_length=255, null=True, blank=True)
    marital_status = CharField(max_length=2,
                               choices=MARRIED_STATUS_CHOICES,
                               default=SINGLE)

    # Relationship Fields
    user = models.ForeignKey(settings.AUTH_USER_MODEL,
                             on_delete=models.CASCADE,
                             related_name="ClientLoginProfile",
                             null=True)

    class Meta:
        ordering = ('-created', )

    def __unicode__(self):
        return u'%s' % self.slug

    def __str__(self):
        return u'%s' % self.name

    def get_absolute_url(self):
        return reverse('client_client_detail', args=(self.slug, ))

    def get_update_url(self):
        return reverse('client_client_update', args=(self.slug, ))
示例#10
0
class Palestra(models.Model):

    MEETUP = 1
    COURSE = 2
    SHOWCASE = 3
    PRESENTATION = 4

    TYPE = ((MEETUP, _('Meetup')), (COURSE, _('Curso')),
            (SHOWCASE, _('Demonstração')), (PRESENTATION, _('Apresentação')))

    talk_name = models.CharField(_('Nome da palestra'),
                                 max_length=45,
                                 unique=True)
    talk_description = models.TextField(_('Descrição da palestra'),
                                        max_length=90)
    local = models.CharField(_('Prédio/Bloco da palestra'),
                             help_text=_('Exemplo: Bloco X'),
                             max_length=30)
    room = models.CharField(_('Sala da palestra'), max_length=30)
    date = models.DateField(_('Data'))
    hour_init = models.TimeField(_('Início'), help_text='HH/MM')
    hour_end = models.TimeField(_('Término'), help_text='HH/MM')
    number_vacancies = models.SmallIntegerField(_('Vagas'), default=100)
    created = CreationDateTimeField()
    modification = ModificationDateTimeField()
    slug = AutoSlugField(populate_from=['talk_name', 'room'])
    palestrante = models.ManyToManyField(Palestrante)
    type = models.SmallIntegerField(_('Formato'),
                                    choices=TYPE,
                                    default=PRESENTATION)

    @property
    def str_all_palestrante(self):
        return ', '.join([str(p) for p in self.palestrante.all()])

    @property
    def len_palestrantes(self):
        return len(self.palestrante.all())

    def __str__(self):
        return self.talk_name

    class Meta:
        verbose_name = _('Palestra cadastrada')
        verbose_name_plural = _('Palestras cadastrados')
示例#11
0
class Blog(models.Model):
    title = models.CharField(max_length=255)
    slug = AutoSlugField(populate_from='title',
                         max_length=255,
                         editable=True,
                         unique=True)
    image = models.ImageField(null=True, blank=True)
    small_description = models.TextField(null=True, blank=True)
    description = RichTextField()
    tags = models.ManyToManyField(Tag)
    created = models.DateTimeField(auto_now=True)
    modified = models.DateTimeField(auto_now_add=True)

    def __unicode__(self):
        return self.title

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