Skip to content

before first code review #16

@briggirl2

Description

@briggirl2

First Week Summary

:현재까지 머지한 코드는 dev에 있습니다.
@wlwkgus @cmoweg @SeongIkKim @Lee-Su-gyeong @BunnnyBin

프로젝트 설명

프로젝트명: Log Share
간략소개: 자신의 활동을 기록(log)하고 같은 그룹의 사람들과 서로의 활동을 공유, 검색(share)하는 것을 돕는 웹사이트

프로젝트 폴더 설명

  1. log_share: project folder, settings
  2. main: first page(home)
  3. accounts: login, signup 기능
    • class CreateUserForm(UserCreationForm): User 정보 입력을 위한 form
    • class SignupModelForm(forms.ModelForm): Profile 정보 입력을 위한 form
  4. log_share_search: search post 기능
    • localhost:8000/search/<int:option>: 아래 option으로 검색 가능
    • 1 : 태그 & 활동내역(포스트의 제목과 내용)
    • 2 : 사람명 검색
    • 3 : 그룹명 검색
  5. myprofile: profile 보여주고 북마크(스크랩) 기능
  6. post: post CRUD
  7. group_management: group 생성, 정보 수정 가능
    • 생성한 사람이 관리자로 지정됨
    • 사용자가 특정 그룹에 가입 요청 보내기 가능

프로젝트 모델 설명

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='user_profile')
    name = models.CharField(max_length=20)
    photo = models.ImageField(null=True, blank=True, verbose_name='프로필사진')
    department = models.CharField(max_length=100, verbose_name='소속')
    description = models.TextField(max_length=200, null=True, blank=True, verbose_name='한줄소개')
    interested_tag = models.CharField(max_length=255, null=True, blank=True, verbose_name='관심태그')
    naver = models.URLField(verbose_name='네이버 URL', null=True, blank=True)
    daum = models.URLField(verbose_name='다음 URL', null=True, blank=True)
    github = models.URLField(verbose_name='깃 URL', null=True, blank=True)
    other_url = models.URLField(verbose_name='기타 URL', null=True, blank=True)
    
    
class BookMark(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='user_bookmark')
    post = models.ForeignKey(Post, on_delete=models.CASCADE, related_name='bookmark')
    

class Post(models.Model):
    user = models.ForeignKey(User,on_delete=models.CASCADE, related_name='user_post')
    categories = (
        ('대외활동', '대외활동'),
        ('공모전', '공모전'),
        ('스터디', '스터디'),
        ('인턴', '인턴'),
        ('강연', '강연'),
        ('기타', '기타'),
    )
    category = models.CharField(choices=categories, verbose_name='카테고리', max_length=5)
    title = models.CharField(max_length=100, verbose_name='제목')
    contents = models.TextField(null=True, verbose_name='내용')
    reference = models.URLField(verbose_name='관련 URL', null=True, blank=True)
    start_date = models.DateField(verbose_name='시작 날짜')
    end_date = models.DateField(verbose_name='종료 날짜')
    photo = models.ImageField(upload_to=date_upload_to, verbose_name='대표 이미지', null=True, blank=True)
    tags = TaggableManager()
    SCORE_CHOICES = zip(range(1,6), range(1,6))
    score = models.IntegerField(choices=SCORE_CHOICES)


class CustomGroup(Group):
    categories = (
        ('art', '문화/예술/공연'),
        ('volunteer', '봉사/사회활동'),
        ('scholarship', '학술/교양'),
        ('startup', '창업/취업'),
        ('language', '어학'),
        ('physical', '체육'),
        ('play', '친목'),
        ('etc', '기타'),
    )
    category = models.CharField(max_length=50, default='etc', choices=categories, verbose_name='카테고리')
    notes = models.TextField(blank=True, verbose_name='그룹설명')
    is_searchable = models.BooleanField(verbose_name='검색허용')


class GroupRequest(models.Model):
    group = models.ForeignKey(CustomGroup, on_delete=models.CASCADE)
    sender = models.ForeignKey(get_user_model(), on_delete=models.CASCADE)
    status = models.BooleanField(null=True, blank=True)

    class Meta:
        unique_together = (
            ('group', 'sender')
        )

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions