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
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 "시황분석게시판"
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()
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
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])
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
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()
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) + ')'
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)
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])
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
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])
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
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"
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')
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 "무명") + "의 상담글"
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()
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)
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 "갤러리"
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
class Wysiwyg(summer_model.Attachment) : wysiwyg_field = summer_fields.SummernoteTextField(default='') post = models.OneToOneField(Post, on_delete=models.CASCADE, default=None)
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()
class SummerNote(summer_model.Attachment): summer_field = summer_fields.SummernoteTextField(default='')
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