class Vehicles(models.Model):
    name = models.CharField(max_length=200, blank=False, null=False)
    slug = models.SlugField(blank=True, unique=True)
    category = models.ForeignKey('VehicleCategory', on_delete=models.CASCADE)
    passenger = models.IntegerField(default=4, null=False, blank=False)
    year = models.CharField(max_length=4, blank=False, null=False)
    body_style = models.CharField(max_length=100, blank=False, null=False)
    engine = models.CharField(max_length=100, blank=False, null=False)
    transmission = models.CharField(max_length=100, blank=False, null=False)
    price = models.DecimalField(max_digits=5,
                                decimal_places=2,
                                blank=False,
                                null=False)
    image = models.ImageField(upload_to=upload_image_path,
                              null=True,
                              blank=True)
    created_at = models.DateTimeField(auto_now_add=True)
    content = FroalaField(null=True, blank=True, theme='dark')
    content_ru = FroalaField(null=True, blank=True, theme='dark')
    content_es = FroalaField(theme='dark', null=True, blank=True)
    content_bg = FroalaField(theme='dark', null=True, blank=True)

    def __str__(self):
        return f'{self.name}'

    def get_absolute_url(self):
        return reverse("vehicle_details", kwargs={"slug": self.slug})

    class Meta:
        verbose_name = 'Vehicle'
        verbose_name_plural = 'Vehicles'
Beispiel #2
0
class EventProblem(models.Model):
    title = models.CharField(max_length=100)
    statement = FroalaField(options={
        'height': 300,
        'lineHeights': {
            'Default': '',
            'Single': '1',
            '1.15': '1.15',
            '1.5': '1.5',
            'Double': '2'
        }
    },
                            theme='gray',
                            blank='true')
    constraint = FroalaField(options={
        'height':
        100,
        'placeholderText':
        'e.g.,<br><ul><li>N &gt; 10<sup>9&nbsp;</sup>&nbsp;</li><li>A<sub>1</sub>+A<sub>2</sub>+........+A<sub>N</sub>&nbsp; &gt; 10<sup>18</sup></li></ul>'
    },
                             theme='gray',
                             blank='true')
    input_format = models.TextField()
    output_format = models.TextField()
    sample_input = models.TextField()
    sample_output = models.TextField()
    explaination = models.TextField()
    time_limit = models.IntegerField(default=1)
    input_file = models.FileField(upload_to='inputs/')
    output_file = models.FileField(upload_to='outputs/')

    def __str__(self):
        return self.title
class Tour(models.Model):
    name = models.CharField(max_length=100, blank=False, null=False)
    slug = models.SlugField(blank=True, unique=True)
    description = models.CharField(max_length=400, blank=False, null=False)
    price = models.DecimalField(max_digits=5, decimal_places=2, blank=False, null=False)
    duration = models.IntegerField(blank=False, null=False)
    city = models.CharField(max_length=200)
    rating = models.IntegerField(default=5)
    category = models.ForeignKey('TourCategory', on_delete=models.CASCADE)
    image = models.ImageField(upload_to=upload_image_path, null=True, blank=True)
    created_at = models.DateTimeField(auto_now_add=True)
    content = FroalaField(null=True, blank=True, theme='dark' )
    content_ru = FroalaField(null=True, blank=True, theme='dark')
    content_es = FroalaField(theme='dark', null=True, blank=True)
    content_bg = FroalaField(theme='dark', null=True, blank=True)

    def __str__(self):
        return f"{self.name} | {self.description}"

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

    class Meta:
        verbose_name = 'Tour'
        verbose_name_plural = 'Tours'
Beispiel #4
0
class SurveyResource(models.Model):
    survey = models.ForeignKey(Survey)
    title = models.CharField(max_length=128)
    resource_url = models.CharField(max_length=1024, null=True, blank=True)
    description = FroalaField(null=True, blank=True)
    resource_html = FroalaField(null=True, blank=True)

    def __str__(self):
        return self.title
Beispiel #5
0
class Post(models.Model):
    title = models.CharField(max_length=140)
    bodyszort = FroalaField()
    body = FroalaField()
    date = models.DateTimeField()
    #category = models.ManyToManyField(Category, verbose_name='Kategoria')
    img = models.ImageField(upload_to='admina', null=True, blank=True)
    is_published = models.BooleanField(default=True, blank=True)

    def __str__(self):
        return self.title
Beispiel #6
0
class CookiePolicy(models.Model):
    content = FroalaField(theme='dark')
    content_ru = FroalaField(theme='dark', null=True, blank=True)
    content_es = FroalaField(theme='dark', null=True, blank=True)
    content_bg = FroalaField(theme='dark', null=True, blank=True)

    def __str__(self):
        return "Cookie Policy"

    class Meta:
        verbose_name = 'Cookie Policy'
        verbose_name_plural = 'Cookie Policies'
Beispiel #7
0
class VisaServices(models.Model):
    name = models.CharField(default='E-visa to Azerbaijan', max_length=200)
    content = FroalaField(theme='dark')
    content_ru = FroalaField(theme='dark', null=True, blank=True)
    content_es = FroalaField(theme='dark', null=True, blank=True)
    content_bg = FroalaField(theme='dark', null=True, blank=True)
    image = models.ImageField(upload_to='visa/e_visa', null=True, blank=True)

    def __str__(self):
        return f"{self.name}"

    class Meta:
        verbose_name = 'Visa Services'
        verbose_name_plural = 'Visa Services'
Beispiel #8
0
class StaticPublicPages(TimeStampedModel):
    """
    Public visible pages: each chunk corresponds to one page. It can be found
    by its unique page code.
    """
    pagecode = models.CharField(
        verbose_name=_('Seitencode'),
        help_text=_('Der Seitencode ordnet die Textchunks eindeutig '
                    'zu html Seiten zu. Die Views greifen die Seiten '
                    'über den Seitencode ab.'),
        max_length=20,
        primary_key=True)
    seo = models.ForeignKey(PageSEO, null=True, blank=True)
    text = FroalaField(verbose_name=_('Text'), blank=True)
    title = FroalaField(verbose_name=_('Seitentitel'), blank=True)
    description = models.CharField(
        verbose_name=_('interne Beschreibung der Seite'),
        help_text=_('wird nicht nach aussen angezeigt.'),
        max_length=250)
    banner = models.ImageField(verbose_name=_('Banner'),
                               help_text=_('Optional'),
                               upload_to=foto_location,
                               blank=True)
    #page_seo = models.ForeignKey(PageSEO, blank=True, null=True)
    meta_keywords = models.CharField(
        verbose_name=_('Meta Keywords'),
        help_text=_('HTML Meta Information zur Seite.'),
        max_length=250)
    meta_description = models.CharField(
        verbose_name=_('Meta Description'),
        help_text=_('HTML Meta Information zur Seite.'),
        max_length=250)
    meta_title = models.CharField(
        verbose_name=_('Meta Titel'),
        help_text=_('HTML Meta Information zur Seite.'),
        max_length=250)
    slug = models.SlugField(blank=True, null=True)
    template_name = models.CharField(max_length=100, blank=True)
    is_ready = models.BooleanField(verbose_name="fertig", default=False)

    class Meta:
        verbose_name = 'Öffentliche statische Seite'
        verbose_name_plural = 'Öffentliche statische Seiten'

    def __unicode__(self):
        return self.pagecode

    def get_absolute_url(self):
        return reverse_lazy('home:public', kwargs={'slug': self.slug})
Beispiel #9
0
class Problem(models.Model):
    title = models.CharField(max_length=100)
    statement = FroalaField(options={
        'height': 300,
        'lineHeights': {
            'Default': '',
            'Single': '1',
            '1.15': '1.15',
            '1.5': '1.5',
            'Double': '2'
        }
    },
                            theme='gray',
                            blank='true')
    constraint = FroalaField(options={
        'height':
        100,
        'placeholderText':
        'e.g.,<br><ul><li>N &gt; 10<sup>9&nbsp;</sup>&nbsp;</li><li>A<sub>1</sub>+A<sub>2</sub>+........+A<sub>N</sub>&nbsp; &gt; 10<sup>18</sup></li></ul>'
    },
                             theme='gray',
                             blank='true')
    input_format = models.TextField()
    output_format = models.TextField()
    sample_input = models.TextField()
    sample_output = models.TextField()
    explaination = models.TextField()
    time_limit = models.IntegerField(default=1)
    difficulty = models.CharField(max_length=10)
    auth = models.ForeignKey(User, on_delete=models.CASCADE)
    date_added = models.DateTimeField(default=timezone.now)
    input_file = models.FileField(upload_to='inputs/')
    output_file = models.FileField(upload_to='outputs/')
    difficultylevel = models.IntegerField("default=1")

    def __str__(self):
        return self.title

    def save(self, *args, **kwargs):
        if self.difficulty == "Easy":
            self.difficultylevel = 1
        elif self.difficulty == "Medium":
            self.difficultylevel = 2
        elif self.difficulty == "Hard":
            self.difficultylevel = 3
        else:
            self.difficultylevel = 4
        super().save(*args, **kwargs)
Beispiel #10
0
class Comment(models.Model):
    post = models.ForeignKey(Post,
                             on_delete=models.CASCADE,
                             related_name='comments')
    user = models.ForeignKey(User,
                             on_delete=models.CASCADE,
                             related_name='user_comments')
    body = FroalaField(plugins=(
        'emoticons',
        'char_counter',
    ),
                       max_length=500,
                       verbose_name='Comment')
    created = models.DateTimeField(auto_now_add=True)
    updated = models.DateTimeField(auto_now=True)
    active = models.BooleanField(default=True)

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

    def __str__(self):
        return 'Comment by {} on {}'.format(self.user, self.post)
Beispiel #11
0
class Post(models.Model):
    name = models.CharField(max_length=250)
    slug = models.SlugField(max_length=250,
                            unique=True,
                            verbose_name='Post Url')
    content = FroalaField(blank=True)

    picture = models.ImageField(upload_to=get_file_path,
                                blank=True,
                                verbose_name='Select picture')
    category = models.ForeignKey(Category,
                                 on_delete=models.PROTECT,
                                 related_name='Category')
    tags = models.ManyToManyField(Tag, blank=True, related_name='Tags')
    created_at = models.DateTimeField(auto_now_add=True,
                                      verbose_name='Published')
    author = models.CharField(max_length=100, blank=True)
    views = models.IntegerField(default=0, verbose_name='Views')
    hit_count_generic = GenericRelation(HitCount, object_id_field='object_pk')
    related_query_name = 'hit_count_generic_relation'

    def __str__(self):
        return self.name

    def get_absolute_url(self):
        return reverse("get_post", kwargs={"slug": self.slug})

    class Meta:
        verbose_name = 'Post'
        verbose_name_plural = 'Posts'
        ordering = ['-created_at']
Beispiel #12
0
class Answers(models.Model):
    """
    Answers Model
     - Relates to the Question Model with one to many relationship
    """
    IMAGE_ANS = 'IM'
    TEXT_ANS = 'TX'
    ANSWER_TYPES = [
        (IMAGE_ANS, 'Image'),
        (TEXT_ANS, 'Text'),
    ]
    question = models.ForeignKey(Question,
                                 related_name='answers',
                                 on_delete=models.CASCADE)
    answer_text = FroalaField(blank=True)
    answer_image = models.ImageField(blank=True)
    answer_type = models.CharField(max_length=2,
                                   choices=ANSWER_TYPES,
                                   default=TEXT_ANS)

    def answers_for_question(self):
        return Answers.objects.filter(question_id=self.question_id)

    def __str__(self):
        answers = self.answers_for_question()
        current_answer = Answers.objects.get(pk=self.id)
        current = 1
        for i in answers:
            if i == current_answer:
                return 'Answer ' + str(current)
            else:
                current += 1

        return str(current)
Beispiel #13
0
class Post(TimeStampedModel):
    DRAFT = 'draft'
    PUBLISHED = 'published'

    STATUS_CHOICES = (
        (DRAFT, 'Draft'),
        (PUBLISHED, 'Published')
    )

    title = models.CharField(_('title'), max_length=250)
    slug = models.SlugField(_('slug'), max_length=250, unique=True)
    author = models.ForeignKey(get_user_model(), on_delete=models.CASCADE,)
    body = FroalaField(_('body'))
    category = models.ForeignKey(Category, on_delete=models.CASCADE, null=True)

    publish = models.DateTimeField(_('publish'), default=timezone.now)
    status = models.CharField(_('status'), max_length=10, choices=STATUS_CHOICES, default='draft')

    # Managers
    objects = models.Manager()
    published = PublishedManager()
    tags = TaggableManager()

    class Meta:
        verbose_name = 'post'
        verbose_name_plural = 'posts'
        ordering = ('-publish',)

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse('blog:post_detail', kwargs={'slug': self.slug})
Beispiel #14
0
class Page(models.Model):
    title = models.CharField(max_length=255)
    slug = models.SlugField(
        max_length=255,
        blank=True,
        null=True,
        help_text='Leave empty/unchanged for default slug.')
    content = FroalaField(null=True, blank=True)
    author = models.ForeignKey(User)
    statuses = (('Published', 'Published'), ('Draft', 'Draft'), ('Trashed',
                                                                 'Trashed'))
    status = models.CharField(max_length=10,
                              choices=statuses,
                              default='Published')
    comments_enabled = models.BooleanField(default=True)
    categories = models.ManyToManyField(Category, blank=True)
    created_at = models.DateTimeField(editable=False)
    updated_at = models.DateTimeField(editable=False)

    def save(self, *args, **kwargs):
        unique_slugify(self, self.title)
        if not self.id:
            self.created_at = datetime.datetime.today()
        self.updated_at = datetime.datetime.today()
        super(Page, self).save(*args, **kwargs)

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

    def __str__(self):
        return self.title
Beispiel #15
0
class Post(models.Model):
    author = models.ForeignKey(Author, on_delete=models.DO_NOTHING, null=True)
    title = models.CharField(max_length=200, null=True)
    short_description = models.TextField(max_length=200, null=True)
    main_content = FroalaField(null=True)
    date = models.DateTimeField(default=timezone.now)
    post_picture = models.ImageField(upload_to="posts/headers",
                                     null=True,
                                     default="authors/default.jpeg")
    slug = models.SlugField(max_length=100, null=True)
    category = models.ManyToManyField(
        Category,
        blank=True,
        verbose_name="Category/Genre (Optional) e.g Love,Drama,HeartBreaking.."
    )
    tags = models.ManyToManyField(
        Tag,
        blank=True,
        verbose_name="Tags/Emotions (Optional)  e.g Sad,Happy, Funny")

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse("author:profile")
Beispiel #16
0
class Material(models.Model):
    concepto = models.ForeignKey(Concepto)
    nombre = models.CharField(max_length=50)
    slug = models.SlugField()
    #video     = models.CharField(max_length=200, blank=True, default="", help_text='La url donde se encuentra el video para el streaming')
    video = models.FileField(upload_to="instructivos-videos/", blank=True)
    contenido = FroalaField(null=True, blank=True)
    activo = models.BooleanField(default=False)
    created_at = models.DateTimeField(auto_now_add=True)

    def __unicode__(self):
        return self.nombre

    class Meta:
        verbose_name_plural = "Materiales"

    def save(self, *args, **kwargs):
        if not self.id:
            self.slug = slugify(self.nombre)
        super(Material, self).save(*args, **kwargs)

    def edit_url(self):
        return "/manager/material/%s/editar/" % self.slug

    def delete_url(self):
        return "/manager/material/%s/eliminar/" % self.slug

    def get_video(self):
        return self.video.url
Beispiel #17
0
class Advertising(models.Model):
    class PositionChoices:
        TOP_LEFT = 1
        TOP_RIGHT = 2
        BOTTOM_LEFT = 3
        BOTTOM_RIGHT = 4

        CHOICES = ((TOP_LEFT, _('top left')), (TOP_RIGHT, _('top right')),
                   (BOTTOM_LEFT, _('bottom left')), (BOTTOM_RIGHT,
                                                     _('bottom right')))

    rank = models.PositiveIntegerField(_('Rank'))
    position = models.PositiveSmallIntegerField(
        _('Position in page'), choices=PositionChoices.CHOICES)
    title = models.CharField(_('Title'), max_length=100)
    when_created = models.DateTimeField(_('When created'), auto_now_add=True)
    when_updated = models.DateTimeField(_('When updated'), auto_now=True)
    content = FroalaField()
    active = models.BooleanField(_('Active'), default=True)

    def __str__(self):
        return self.title

    class Meta:
        verbose_name_plural = _('Advertisings')
        verbose_name = _('Advertising')
        ordering = ('position', 'rank')
Beispiel #18
0
class Post(AuthorModelMixin, VotableModelMixin, models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, blank=True, null=True, related_name='posts', on_delete=models.SET_NULL)
    onetime_user = models.OneToOneField('OneTimeUser', blank=True, null=True, related_name='post', on_delete=models.SET_NULL)
    ipaddress = models.GenericIPAddressField(protocol='IPv4')
    board = models.ForeignKey('Board', related_name='posts')
    category = models.ForeignKey('Category', blank=True, null=True, related_name='posts')
    title = models.CharField(max_length=50)
    contents = FroalaField()
    tags = models.ManyToManyField('Tag', blank=True, null=True, related_name='posts')
    viewcount = models.PositiveIntegerField(default=0)
    created_time = models.DateTimeField(auto_now_add=True)
    modified_time = models.DateTimeField()

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse('post_detail', kwargs={'pk': self.id})

    def save(self, *args, **kwargs):
        self.contents = clean_html(self.contents)
        if kwargs.pop('auto_now', True):
            self.modified_time = timezone.now()
        super().save(*args, **kwargs)

    class Meta:
        ordering = ['-created_time']
Beispiel #19
0
class Article(models.Model):
    name = models.CharField(max_length=250,blank=True,null=True)
    article_type = models.CharField(max_length=250,blank=True,null=True)
    description = models.CharField(max_length=250,blank=True,null=True)
    created = models.DateField(default=timezone.now,null=True, blank=True)
    updated = models.DateField(default=timezone.now,null=True, blank=True)
    artcle_image = models.ImageField(upload_to='picture',blank=True)
    author = models.CharField(max_length=250,blank=True,null=True)
    data = FroalaField()
    slug = models.SlugField(blank=True,null=True)

    def save(self, *args, **kwargs):
        self.slug = slugify(self.name)
        self.artcle_image = self.CompressImage(self.artcle_image)
        super(Article, self).save(*args, **kwargs)
    def __str__(self):
        return self.name
    
    def CompressImage(self,uploadedImage):
        imageTemproary = Image.open(uploadedImage)
        outputIoStream = BytesIO()
        imageTemproaryResized = imageTemproary.resize( (160,300) ) 
        imageTemproary.save(outputIoStream , format='JPEG', quality=60)
        outputIoStream.seek(0)
        uploadedImage = InMemoryUploadedFile(outputIoStream,'ImageField', "%s.jpg" % uploadedImage.name.split('.')[0], 'image/jpeg', sys.getsizeof(outputIoStream), None)
        return uploadedImage
Beispiel #20
0
class Product(TimeStampedModel):

    description = FroalaField(blank=True)

    # price with currency
    price = models.DecimalField(max_digits=12,
                                decimal_places=2,
                                null=True,
                                blank=True,
                                verbose_name=_('Verkaufspreis'))
    currency = enum.EnumField(Currency, default=Currency.EUR)
    price_changed = MonitorField(monitor='price',
                                 verbose_name=_("letzte Preisänderung am"))

    display_nr = models.IntegerField(default=1)

    # product type
    product_type = enum.EnumField(Producttype, default=Producttype.OTHER)

    objects = ProductManager()

    class Meta:
        abstract = True

    def __unicode__(self):
        return "%s: %s" % (self.name)
Beispiel #21
0
class Jobs(models.Model):
    title = models.CharField(max_length=100)
    slug = models.SlugField(blank=True, default='')
    office = models.ForeignKey(Office, on_delete=models.CASCADE)
    salery = MoneyField(max_digits=14,
                        decimal_places=2,
                        default_currency='USD')
    Description = FroalaField()
    created = models.DateTimeField(auto_now_add=True)
    updated = models.DateTimeField(auto_now=True)
    job_type = models.CharField(max_length=100,
                                choices=(('Full Time', 'Full Time'),
                                         ('Part Time', 'Part Time')),
                                default='Full Time')
    applyed_users = models.ManyToManyField(User)
    saved_users = models.ManyToManyField(User, related_name='saved_users')
    tags = models.TextField(max_length=100, default="")

    def save(self, *args, **kwargs):
        self.slug = get_random_string(length=32)
        self.tags = self.tags.split(",")
        super(Jobs, self).save(*args, **kwargs)

    def __str__(self):
        return self.title
Beispiel #22
0
class Post(models.Model):
    author = models.ForeignKey(settings.AUTH_USER_MODEL,
                               on_delete=models.CASCADE,)
    title = models.CharField(max_length=200)
    content = FroalaField()
    featured_image = models.ImageField(
        upload_to='posts', blank=True)
    created_date = models.DateTimeField(default=timezone.now)
    published_date = models.DateTimeField(blank=True, null=True)
    tags = TaggableManager(blank=True)
    cheers = models.ManyToManyField(
        settings.AUTH_USER_MODEL, related_name="post_cheers", symmetrical=False, blank=True)

    def author_string(self):
        return str(self.author)

    def all_comments(self):
        return self.comments.all().order_by('-created_date')

    def __str__(self):
        return self.title

    def publish(self):
        self.published_date = timezone.now()
        self.save()

    def get_absolute_url(self):
        return reverse('medium:post', kwargs={'pk': self.pk})
Beispiel #23
0
class Post(models.Model):
    title = models.CharField(max_length=250)
    slug = models.SlugField(max_length=250, unique=True)
    image = models.ImageField(upload_to=get_file_path)
    content = FroalaField(blank=True)
    created_at = models.DateTimeField(auto_now=True, verbose_name='Published')
    category = models.ForeignKey(Category,
                                 null=True,
                                 related_name='posts',
                                 on_delete=models.PROTECT)

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse("post", kwargs={"slug": self.slug})

    def save(self, *args, **kwargs):
        if not self.slug:
            self.slug = slugify(self.title)+'-' + \
                slugify(self.created_at.ctime())
        super(Post, self).save()

    class Meta:
        verbose_name = 'Post'
        verbose_name_plural = 'Posts'
        ordering = ['-created_at']
Beispiel #24
0
class Company(models.Model):
    title = models.CharField(max_length=100, blank=False)
    display_name = models.CharField(max_length=100, null=True, blank=True)
    slug = models.SlugField(blank=True, default='')
    city = models.CharField(max_length=100, blank=False)
    country = CountryField(default='')
    Description = FroalaField()
    hiring_agency = models.BooleanField(default=False)
    eeo_text = models.TextField(
        null=True,
        blank=True)  # Equal Employment Opportunity legal disclaimer text
    since = models.IntegerField(choices=YEAR_CHOICES, default=current_year)
    contact_info = models.CharField(max_length=100, blank=False, default="")
    website = models.URLField(max_length=100, blank=False, default="")
    facebook = models.URLField(max_length=100, blank=True)
    twitter = models.URLField(max_length=100, blank=True)
    linkedin = models.URLField(max_length=100, blank=True)
    logo = models.ImageField(upload_to=image_path,
                             default=0,
                             null=True,
                             blank=True)

    def save(self, *args, **kwargs):
        self.slug = get_random_string(length=16)
        self.website = self.website.replace("https://", "")
        self.twitter = self.twitter.replace("https://", "")
        if self.display_name is None:
            self.display_name = self.title
        super(Company, self).save(*args, **kwargs)

    def __str__(self):
        return self.title
Beispiel #25
0
class Comment(AuthorModelMixin, VotableModelMixin, models.Model):
    post = models.ForeignKey('Post', related_name='comments')
    comment = models.ForeignKey('self', related_name='subcomments', blank=True, null=True)
    user = models.ForeignKey(settings.AUTH_USER_MODEL, blank=True, null=True, related_name='comments', on_delete=models.SET_NULL)
    onetime_user = models.OneToOneField('OneTimeUser', blank=True, null=True, related_name='comment', on_delete=models.SET_NULL)
    ipaddress = models.GenericIPAddressField(protocol='IPv4')
    contents = FroalaField(options=settings.FROALA_EDITOR_OPTIONS_COMMENT)
    created_time = models.DateTimeField(auto_now_add=True)

    @property
    def depth(self):
        def _depth(c, d=0):
            if c.comment is not None:
                return _depth(c.comment, d + 1)
            return d
        return _depth(self)

    def save(self, *args, **kwargs):
        self.contents = clean_html(self.contents)
        super().save(*args, **kwargs)

    def get_absolute_url(self):
        return (reverse('post_detail', kwargs={'pk': self.post.id}) + '#c{0}'.format(self.id))

    class Meta:
        ordering = ['-created_time']
Beispiel #26
0
class Post(models.Model):
    STATUS_CHOICES = (
        ('draft', 'Draft'),
        ('published', 'Published'),
    )
    title = models.CharField(max_length=250)
    slug = models.SlugField(max_length=250, unique_for_date='publish')
    author = models.ForeignKey(User, related_name='blog_posts')
    intro = models.TextField(max_length=250, default="")
    body = FroalaField()
    publish = models.DateTimeField(default=timezone.now)
    created = models.DateTimeField(auto_now_add=True)
    updated = models.DateTimeField(auto_now=True)
    status = models.CharField(max_length=10,
                              choices=STATUS_CHOICES,
                              default='draft')
    objects = models.Manager()
    published = PublishedManager()

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

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse('blog:post_detail',
                       args=[
                           self.publish.year,
                           self.publish.strftime('%m'),
                           self.publish.strftime('%d'), self.slug
                       ])
Beispiel #27
0
class Post(models.Model):
    """文章模型"""
    STATUS_CHOICES = (
        ('D', '草稿'),
        ('P', '发表'),
    )
    title = models.CharField(max_length=255, verbose_name='标题')
    content = FroalaField(verbose_name='内容', blank=True, null=True)
    created = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
    updated = models.DateTimeField(auto_now=True, verbose_name='更新时间')
    status = models.CharField('文章状态',
                              max_length=1,
                              choices=STATUS_CHOICES,
                              default='p')
    author = models.ForeignKey(settings.AUTH_USER_MODEL,
                               on_delete=models.CASCADE,
                               verbose_name='作者')
    view_num = models.PositiveIntegerField(default=0, verbose_name='浏览次数')
    category = models.ForeignKey('Category',
                                 verbose_name='分类',
                                 on_delete=models.PROTECT,
                                 blank=True,
                                 null=True)
    tags = models.ManyToManyField('Tag', verbose_name='标签集合')
    comments = GenericRelation(Comment)

    class Meta:
        verbose_name = "文章"
        verbose_name_plural = verbose_name
        ordering = ['-created']

    def __str__(self):
        return self.title
Beispiel #28
0
class Posts(models.Model):
    title = models.CharField(max_length=100)
    overview = models.TextField()
    timestamp = models.DateTimeField(auto_now_add=True)
    content = FroalaField()
    comment_count = models.IntegerField(default=0)
    view_count = models.IntegerField(default=0)
    author = models.ForeignKey(Users, on_delete=models.CASCADE)
    thumbnail = models.ImageField(upload_to='thumbnail', blank=True, null=True)
    tags = models.ManyToManyField(to='Tag')
    views = models.ManyToManyField(to='Remote', blank=True)
    category = models.ForeignKey(Category, on_delete=models.CASCADE)

    # 增加一个字段后make时会提示2选1,选第一个,然后输入True

    def __str__(self):
        return self.title

    class Meta:
        verbose_name = '文章'
        verbose_name_plural = verbose_name
        db_table = 'Posts'

    # 可以根据blog对象的id生成格式为/blog/2的url,达到点击链接进入文章详情功能
    def get_absolutly_url(self):
        return reverse('blog_detail', kwargs={'id': self.id})

    def get_update_url(self):
        pass

    @property
    def get_comments(self):
        return self.comment.all().order_by('-timestamp')
Beispiel #29
0
class Post(MetaTagBase):
    title = models.CharField(max_length=200)
    text = FroalaField(image_upload=True)
    topic = models.ForeignKey(Topic,
                              on_delete=models.SET_NULL,
                              related_name='posts',
                              null=True,
                              blank=True)
    published_date = models.DateField(blank=True, null=True)
    tags = fields.ArrayField(models.CharField(max_length=200),
                             blank=True,
                             default=list)
    clicks = models.IntegerField(blank=True, default=0)
    likes = models.IntegerField(blank=True, default=0)
    dislikes = models.IntegerField(blank=True, default=0)
    preferences = fields.JSONField(blank=True, default=dict)
    objects = models.Manager()
    published = PublishedMenager()

    class Meta:
        ordering = ['-published_date']
        indexes = [
            models.Index(fields=['-published_date']),
        ]

    def publish(self):
        self.published_date = timezone.now()
        self.save()

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse('blog:post_detail', kwargs={'pk': self.pk})
Beispiel #30
0
class Post(models.Model):
    #objects=models.Manager()
    #published=PublishedManager()
    #tags=TaggableManager()
    #STATUS_CHOICES=(('draft','Draft'),('publish','Publish'))
    title = models.CharField(max_length=250)
    image = models.ImageField(upload_to='images/')
    #slug=models.SlugField(max_length=250,unique=True)
    author = models.ForeignKey(User,
                               on_delete=models.CASCADE,
                               related_name='blog_posts')
    body = FroalaField()
    publish = models.DateTimeField(default=timezone.now)
    created = models.DateTimeField(auto_now_add=True)

    #updated=models.DateTimeField(auto_now=True)
    #status=models.CharField(max_length=10,choices=STATUS_CHOICES,default='draft')
    def get_absolute_url(self):

        return reverse('blogdetail', args=(str(self.id)))

    #class Meta:
    #    ordering=('-publish',)
    def __str__(self):
        return self.title