Exemple #1
0
class Post(models.Model):
    author = models.ForeignKey('auth.User')
    title = models.CharField(max_length=200)
    content = summer_fields.SummernoteTextField(default='')
    create_date = models.DateTimeField(default=timezone.now)
    published_date = models.DateTimeField(blank=True, null=True)

    def publish(self):
        if self.published_date is None:
            self.published_date = timezone.now()
            redirect_url = 'post_detail'
        else:
            self.published_date = None
            redirect_url = 'post_draft_detail'
        self.save()
        return redirect_url

    def save_hash_tag_list(self, hash_tag_list):
        for hash_tag in re.findall(r'(#[ㄱ-ㅎ가-힣a-zA-Z0-9]+)', hash_tag_list):
            get_hash_tag = HashTag.objects.filter(name=hash_tag)
            if get_hash_tag.exists():
                self.hashtag_set.add(get_hash_tag.get())
            else:
                self.hashtag_set.create(name=hash_tag)

    def __str__(self):
        return self.title
Exemple #2
0
class NormalAnalysis(summer_model.Attachment):
    author = models.ForeignKey(get_user_model() ,on_delete=models.CASCADE,  related_name='%(app_label)s_%(class)ss')
    title = models.CharField(verbose_name="title",max_length=40)
    summer_field = summer_fields.SummernoteTextField(default='')
    created_at = models.DateTimeField(null=True, blank=True, auto_now_add=True)
    updated_at = models.DateTimeField(null=True, blank=True, auto_now=True)
    views = models.IntegerField(null=False, blank=False, default=0) #조회수
    like_user_set = models.ManyToManyField(get_user_model(),
                                           blank=True,
                                           related_name='NAlike_user_set',
                                           through='NormalAnalysisLike') # post.like_set 으로 접근 가능
    dislike_user_set = models.ManyToManyField(get_user_model(),
                                           blank=True,
                                           related_name='NAdislike_user_set',
                                           through='NormalAnalysisDisLike') # post.like_set 으로 접근 가능

    def __str__(self):
        return self.title

    @property
    def like_count(self):
        return self.like_user_set.count()
        
    @property
    def dislike_count(self):
        return self.dislike_user_set.count()

    def get_absolute_url(self):
        return reverse('bbs:analysis_read', args=[self.id])

    def get_board_name(self):
        return "시황분석게시판"
Exemple #3
0
class Post(summer_model.Attachment):
    POST_TYPE = (
        (0, '공지사항'),
        (1, '자유게시판'),
    )
    title = models.CharField('title', max_length=100)
    author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    content = summer_fields.SummernoteTextField(default='')
    create_date = models.DateTimeField('Create Date', auto_now_add=True)
    modify_date = models.DateTimeField('Modify Date', auto_now=True)
    type = models.PositiveSmallIntegerField('type', choices=POST_TYPE)

    class Meta:
        ordering = ['-create_date']

    def __str__(self):
        return self.title

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

    def get_prev(self):
        return self.get_previous_by_create_date()

    def get_next(self):
        return self.get_next_by_create_date()
Exemple #4
0
class Post(summer_model.Attachment):
    category = models.ForeignKey(Category)
    title = models.CharField(max_length=20)
    content = summer_fields.SummernoteTextField(default='')
    created_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title
Exemple #5
0
class SuspendRequest(summer_model.Attachment):
    author = models.ForeignKey(get_user_model() ,on_delete=models.CASCADE,  related_name='%(app_label)s_%(class)ss')
    title = models.CharField(verbose_name="title",max_length=40)
    summer_field = summer_fields.SummernoteTextField(default='')
    created_at = models.DateTimeField(null=True, blank=True, auto_now_add=True)
    updated_at = models.DateTimeField(null=True, blank=True, auto_now=True)

    def get_absolute_url(self):
        return reverse('bbs:succes_page', args=[2])
Exemple #6
0
class SummerNote(summer_model.Attachment):
    title = models.CharField(max_length=100, verbose_name='제목')
    summer_field = summer_fields.SummernoteTextField(default='')

    def get_absolute_url(self):
        return reverse('board:post_detail', args=[self.id])

    def __str__(self):
        return self.title
Exemple #7
0
class Profile(models.Model):
    class Meta:
        verbose_name = 'Profile'
        verbose_name_plural = 'Profiles'

    LEVEL = (
        ('선생님', '선생님'),
        ('학생', '학생'),
    )
    user = models.OneToOneField(settings.AUTH_USER_MODEL,
                                on_delete=models.CASCADE,
                                verbose_name='user')
    #	name=models.CharField(max_length=10,null=True)
    create_date = models.DateField(auto_now_add=True, null=True)
    특이사항 = summer_fields.SummernoteTextField(blank=True)
    이름 = models.CharField(max_length=10,
                          blank=True,
                          help_text='위에 사용자 이름과 같은 학생 이름을 다시 한 번 더 작성해 주세요.')
    profile_image = models.ImageField(blank=True, upload_to='photo/')
    학생핸드폰번호 = PhoneField(blank=True, help_text='핸드폰번호를 적어주시고, ext)칸은 비워주세요')
    부모님핸드폰번호 = PhoneField(blank=True, help_text='핸드폰번호를 적어주시고, ext)칸은 비워주세요')
    직업 = models.CharField(
        max_length=10,
        choices=LEVEL,
        blank=True,
        default='학생',
        help_text='Class Level',
    )
    CHOICE = (('본사', '본사'), ('분당분원', '분당분원'))
    지점 = models.CharField(max_length=4, choices=CHOICE, null=True)
    CHOICES = (('초등학교', '초등학교'), ('중학교', '중학교'), ('고등학교', '고등학교'), ('일반',
                                                                    '일반'))
    학교 = models.CharField(max_length=4, choices=CHOICES, null=True, blank=True)
    학교이름 = models.CharField(max_length=30, blank=True, null=True)
    학년 = models.CharField(max_length=1, blank=True, null=True)
    modify_date = models.DateTimeField('변경 날짜', null=True, blank=True)
    STATES = (('재원', '재원'), ('휴원', '휴원'), ('퇴원', '퇴원'))
    회원현황 = models.CharField(max_length=2,
                            choices=STATES,
                            null=True,
                            blank=True)

    def __Str__(self):
        return self.name

    class Meta:
        ordering = ['-create_date']

    def get_absolute_url(self):
        return reverse('accounts:detail', args=[self.id])

    def get_previous_post(self):
        return self.get_previous_by_modify_date()

    def get_next_post(self):
        return self.get_next_by_modify_date()
Exemple #8
0
class Reading(summer_model.Attachment):
    readId = models.CharField(max_length=30, primary_key=True, default='1')
    title = models.CharField(max_length=50)
    content = summer_fields.SummernoteTextField(default='')
    writer = models.CharField(max_length=30)
    created = models.CharField(max_length=30)
    bookId = models.ForeignKey(Ourbooks, '')

    def __str__(self):
        return str(self.title) + '(' + str(self.readId) + ')'
Exemple #9
0
class ClassDetail(summer_model.Attachment):
    user = models.ForeignKey(settings.AUTH_USER_MODEL)
    post = models.ForeignKey(ClassPost)
    category = models.ManyToManyField(ClassCategory)
    class_detail = summer_fields.SummernoteTextField()

    created_at = models.DateTimeField(auto_now_add=True, auto_now=False)
    updated_at = models.DateTimeField(auto_now_add=True, auto_now=True)
    is_active = models.BooleanField(default=True)

    def __unicode__(self):
        return u'%s %s' % (self.user, self.class_detail)
Exemple #10
0
class Post(summer_model.Attachment):
    category = models.ForeignKey(Category, on_delete=models.CASCADE)
    title = models.CharField(max_length=20)
    content = summer_fields.SummernoteTextField(default='')
    created_at = models.DateTimeField(auto_now_add=True)
    message = models.TextField()

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse('blog:post_detail', args=[self.category, self.id])
Exemple #11
0
class Detail(summer_model.Attachment):
    author = models.ForeignKey(settings.AUTH_USER_MODEL)
    issue = models.CharField(max_length=50)
    created_date = models.DateTimeField(default=timezone.now)
    published_date = models.DateTimeField(blank=True, null=True)
    class_detail = summer_fields.SummernoteTextField(blank=True, null=True)

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

    def __str__(self):
        return self.name
Exemple #12
0
class Notice(summer_model.Attachment):
    author = models.ForeignKey(get_user_model() ,on_delete=models.CASCADE,  related_name='%(app_label)s_%(class)ss')
    title = models.CharField(verbose_name="title",max_length=40)
    summer_field = summer_fields.SummernoteTextField(default='')
    created_at = models.DateTimeField(null=True, blank=True, auto_now_add=True)
    updated_at = models.DateTimeField(null=True, blank=True, auto_now=True)
    views = models.IntegerField(null=False, blank=False, default=0) #조회수

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse('bbs:notice', args=[self.id])
Exemple #13
0
class Post2(summer_model.Attachment):
    author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE,)
    title = models.CharField(max_length=200)
    content = summer_fields.SummernoteTextField(default='')
    created_at = models.DateTimeField(auto_now_add=True, null=True)

    class Meta:
        ordering = ['-created_at']

    def get_absolute_url(self):
        return reverse('waterapp:post2_detail', args=[self.id])

    def __str__(self):
        return self.title
Exemple #14
0
class SummerNote(summer_model.Attachment):
    summer_field = summer_fields.SummernoteTextField(default='')


# class Post_logger(models.Model):
# 	entry = models.ForeignKey(Post, related_name='post_views')
# 	ip = models.CharField(max_length=40)
# 	session = models.CharField(max_length=40, null=True)
# 	created = models.DateTimeField(default=timezone.now)

# 	def __unicode__(self):
# 		return self.entry.title

# 	class Meta:
# 		verbose_name_plural = "Post Views"
Exemple #15
0
class Meeting(summer_model.Attachment):
    proponent = models.ForeignKey(settings.AUTH_USER_MODEL,
                                  on_delete=models.CASCADE,
                                  related_name='proponent')  # 제안자
    participants = models.ManyToManyField(settings.AUTH_USER_MODEL,
                                          blank=False,
                                          related_name='participants')  # 참가자
    meet_date = models.DateTimeField(blank=False)
    meet_title = models.CharField(max_length=200, blank=True)
    meet_desc = models.CharField(max_length=500)
    meet_contents = summer_fields.SummernoteTextField(default='')
    created_date = models.DateTimeField(default=timezone.now)
    progress = models.BooleanField(default=False)
    file1 = models.FileField(blank=True, null=True,
                             upload_to='files/%Y/%m/%d')  # 첨부파일
    file2 = models.FileField(blank=True, null=True, upload_to='files/%Y/%m/%d')
Exemple #16
0
class Comment(models.Model):
    document = models.ForeignKey(Blog,
                                 null=True,
                                 on_delete=models.CASCADE,
                                 related_name='comments')
    author = models.ForeignKey(User,
                               on_delete=models.SET_NULL,
                               null=True,
                               blank=True,
                               related_name='comments')
    text = summer_fields.SummernoteTextField()
    created = models.DateTimeField(auto_now_add=True)
    updated = models.DateTimeField(auto_now=True)

    def __str__(self):
        return (self.author.username if self.author else "무명") + "의 상담글"
Exemple #17
0
class Post(models.Model):

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

    title = models.CharField(max_length=100, verbose_name='제목')

    content = summer_fields.SummernoteTextField(default='', verbose_name='내용')

    photo = models.ImageField(blank=True,
                              upload_to='review/post',
                              verbose_name='대표 사진')

    tags = models.CharField(max_length=20, blank=True)

    tag_set = models.ForeignKey('Tag')

    hits = models.IntegerField(default=0, null=True, blank=True)

    created_at = models.DateTimeField(auto_now_add=True)

    updated_at = models.DateTimeField(auto_now=True)

    name_id = models.ForeignKey(User,
                                on_delete=models.CASCADE,
                                db_column='likeuser',
                                default='0')

    like_user_set = models.ManyToManyField(settings.AUTH_USER_MODEL,
                                           blank=True,
                                           related_name='like_user_set',
                                           through='Like')

    like_num = models.IntegerField(default=0)

    class Meta:
        ordering = ['-updated_at']

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse('review:post_detail', args=[self.id])

    @property
    def like_count(self):
        return self.like_user_set.count()
Exemple #18
0
class Post(summer_model.Attachment):
    author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    title = models.CharField(max_length=200)
    text = fields.SummernoteTextField(default='')
    # text = models.TextField()
    created_date = models.DateTimeField(default=timezone.now)
    published_date = models.DateTimeField(blank=True, null=True)

    # like_posts = models.ManyToManyField(settings.AUTH_USER_MODEL, blank=True, related_name='like_users')

    like_count = models.PositiveIntegerField(default=0)

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

    def __str__(self):
        return self.title

    def approved_comments(self):
        return self.comments.filter(approved_comment=True)
Exemple #19
0
class Gallery(summer_model.Attachment):
    author = models.ForeignKey(get_user_model() ,on_delete=models.CASCADE,  related_name='%(app_label)s_%(class)ss')
    title = models.CharField(verbose_name="title",max_length=40)
    #사진
    photo = models.ImageField(
        verbose_name='gallery photo',
        upload_to="gallery/%Y/%m/%d",
        blank=True,
        null=True,
    )
    summer_field = summer_fields.SummernoteTextField(default='')
    created_at = models.DateTimeField(null=True, blank=True, auto_now_add=True)
    updated_at = models.DateTimeField(null=True, blank=True, auto_now=True)
    views = models.IntegerField(null=False, blank=False, default=0) #조회수
    like_user_set = models.ManyToManyField(get_user_model(),
                                           blank=True,
                                           related_name='Glike_user_set',
                                           through='galleryLike') # post.like_set 으로 접근 가능
    dislike_user_set = models.ManyToManyField(get_user_model(),
                                           blank=True,
                                           related_name='GCdislike_user_set',
                                           through='galleryDisLike') # post.like_set 으로 접근 가능

    def __str__(self):
        return self.title

    @property
    def like_count(self):
        return self.like_user_set.count()
        
    @property
    def dislike_count(self):
        return self.dislike_user_set.count()

    def get_absolute_url(self):
        return reverse('bbs:gallery_read', args=[self.id])

    def get_board_name(self):
        return "갤러리"
Exemple #20
0
from django.shortcuts import reverse



class Category(models.Model):
    name = models.CharField(max_length=20)

    def __str__(self):
        return self.name

class Post(summer_model.Attachment):
<<<<<<< HEAD
    category = models.ForeignKey(Category)
    title = models.CharField(max_length=100)
=======
    category = models.ForeignKey(Category, on_delete=models.CASCADE)
    title = models.CharField(max_length=20)
>>>>>>> c31f123974ba6a7060776205ce6329f0391b283d
    content = summer_fields.SummernoteTextField(default='')
    created_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title

    def get_absolute_url(self):
<<<<<<< HEAD
        return reverse('blog:post_detail', args=[self.category, self.id])
=======
        return reverse('blog:post_detail', args=[self.category, self.id])
>>>>>>> c31f123974ba6a7060776205ce6329f0391b283d
Exemple #21
0
class Wysiwyg(summer_model.Attachment) :
    wysiwyg_field = summer_fields.SummernoteTextField(default='')
    post = models.OneToOneField(Post, on_delete=models.CASCADE, default=None)
Exemple #22
0
class Board(TimeStampedModel, HitCountMixin):
    class Meta:
        verbose_name = u'게시판'
        verbose_name_plural = u'게시판'
        ordering = ['-created']

    author = models.ForeignKey(
        settings.AUTH_USER_MODEL,
        on_delete=models.CASCADE,
        verbose_name='작성자',
    )
    title = models.CharField(verbose_name=u'제목', max_length=256)
    content = summer_fields.SummernoteTextField(verbose_name=u'내용', blank=True)
    category = models.ForeignKey(
        'Category',
        verbose_name='카테고리',
        on_delete=models.CASCADE,
    )
    hit_count_generic = GenericRelation(
        HitCount,
        object_id_field='object_pk',
        related_query_name='hit_count_generic_relation')
    like_user_set = models.ManyToManyField(settings.AUTH_USER_MODEL,
                                           blank=True,
                                           related_name='like_user_set',
                                           through='Like')
    notice = models.BooleanField(default=False)
    slug = AutoSlugField(unique=True,
                         populate_from='title',
                         allow_unicode=True)

    def __str__(self):
        return self.title

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

    def get_previous_post(self):
        try:
            previous_post = Board.objects.filter(
                created__gt=self.created).filter(
                    category__title=self.category.title).last()
        except IndexError:
            return None
        return previous_post

    def get_next_post(self):
        try:
            next_post = Board.objects.filter(created__lt=self.created).filter(
                category__title=self.category.title).first()
        except IndexError:
            return None
        return next_post

    def save(self, *args, **kwargs):
        super(Board, self).save(*args, **kwargs)
        self.slug = '%s--%s' % (self.id, slugify(self.title,
                                                 allow_unicode=True))
        super(Board, self).save(*args, **kwargs)

    @property
    def like_count(self):
        return self.like_user_set.count()
class summer_note(summer_model.Attachment):
    summer_field = summer_fields.SummernoteTextField()
Exemple #24
0
class SummerNote(summer_model.Attachment):
    summer_field = summer_fields.SummernoteTextField(default='')
Exemple #25
0
class Product(models.Model):
    # 판매자 instance
    seller = models.ForeignKey(Seller, null=False, blank=False)

    # sns 선택
    sns_type = models.CharField(choices=sns_type_list, max_length=15, null=False)

    # sns 추가정보
    sns_additional_info = models.CharField(choices=sns_additional_info_list, max_length=15, null=False)

    # 성별
    sex = models.CharField(choices=(("male","남자"),("female","여자")), max_length=15, null=False)

    # 주소 공개 여부
    is_url_open = models.BooleanField(default=True)

    # sns 주소
    sns_url = models.URLField(null=True, blank=True)

    # 팔로워수
    follower_num = models.CharField(max_length=255, null=True, blank=True)

    # 일평균 방문자수
    follower_visit_num = models.CharField(max_length=255, null=True, blank=True)

    # 친구수
    follower_friends_num = models.CharField(max_length=255, null=True, blank=True)

    # 포스팅가능 분야
    product_tag = GenericRelation("ProductTag", null=True, blank=True)

    # 작업 전 유의사항
    message_to_buyer = models.TextField(null=True, blank=True)

    # 한줄소개
    oneline_intro = models.CharField(max_length=255, null=True, blank=True)

    # 상품소개
    description = summer_fields.SummernoteTextField(null=True, blank=True)

    # 가격
    price = models.PositiveIntegerField(default=0)

    # 원고가능여부
    manuscript_available = models.BooleanField(default=True)

    # 원고 추가비용
    manuscript_price = models.PositiveIntegerField(default=0)

    # 상위노출여부
    highrank_available = models.BooleanField(default=False)

    # 상위노출 추가비용
    highrank_price = models.PositiveIntegerField(default=0)

    # 작업기간
    working_period = models.PositiveIntegerField(default=0)

    # 승인 전 전달사항(관리자에게 할말)
    message_to_admin = models.TextField(null=True, blank=True)

    # 구매 만족도
    rating = models.DecimalField(default=0.00, decimal_places=2, max_digits=3)

    # 위시리스트(찜하기)에 담긴 횟수
    num_heart = models.PositiveIntegerField(default=0)

    created = models.DateTimeField(auto_now_add=True, auto_now=False)
    updated = models.DateTimeField(auto_now_add=False, auto_now=True)

    # 판매중 or 판매완료
    product_status = models.CharField(choices=product_status_list, max_length=15, null=False, default="ready")

    # 승인 거절 사유
    reject_reason = models.CharField(max_length=255, null=True, blank=True)

    # 단가
    unit_price = models.DecimalField(max_digits=12, decimal_places=2, default=0)

    # 소셜업 게이지
    socialup_gauge = models.PositiveIntegerField(default=0)

    objects = ProductManager()

    # 필드 업데이트 감지를 위한 트래커
    tracker = FieldTracker()

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

    def as_json(self):
        return serializers.serialize('json',[self,])

    """
    def as_json(self):
        return dict(
            id=self.id,
            seller=self.seller,
            sns_type = self.sns_type,
            sns_additional_info = self.sns_additional_info,
            sex = self.sex,
            is_url_open = self.is_url_open,
            sns_url = self.sns_url,
            follower_num = self.follower_num,
            follower_visit_num = self.follower_visit_num,
            follower_friends_num = self.follower_friends_num,
            product_tag = self.product_tag,
            message_to_buyer = self.message_to_buyer,
            oneline_intro = self.oneline_intro,
            description = self.description,
            price = self.price,
            manuscript_available = self.manuscript_available,
            manuscript_price = self.manuscript_price,
            highrank_available = self.highrank_available,
            highrank_price = self.highrank_price,
            working_period = self.working_period,
            message_to_admin = self.message_to_admin,
        )
    """

    @property
    def sns_type_image_url(self):
        image_url = None

        if self.sns_type == 'blog':
            image_url = static('img/naver.png')
        elif self.sns_type == 'facebook':
            image_url = static('img/facebook.png')
        elif self.sns_type == 'instagram':
            image_url = static('img/insta.png')
        elif self.sns_type == 'youtube':
            image_url = static('img/youtube.png')

        return image_url

    @property
    def sns_type_color(self):
        color = None

        if self.sns_type == 'blog':
            color = '#20CA24'
        elif self.sns_type == 'facebook':
            color = '#3B579D'
        elif self.sns_type == 'instagram':
            color = '#CFAE89'
        elif self.sns_type == 'youtube':
            color = '#ed2e01'

        return color

    @property
    def get_absolute_url(self):
        return reverse('product_detail', kwargs={"product_id": self.id})

    @property
    def get_price(self):
        return self.price

    @property
    def get_manuscript_price(self):
        return self.manuscript_price

    @property
    def get_highrank_price(self):
        return self.highrank_price

    @property
    def get_num_reviews(self):
        # import here to avoid circular import
        from reviews.models import ProductReview
        reviews_count = len(ProductReview.objects.filter(product=self))
        return reviews_count