首页 > 代码库 > day30

day30

crm

from django.db import models
from django.contrib.auth.models import User

# Create your models here.


#客户信息表
class Customer(models.Model):
    test = models.CharField(max_length=32)
    name = models.CharField(max_length=32,blank=True,null=True)
    qq = models.CharField(max_length=64,unique=True)    #unique 字段唯一
    weixin = models.CharField(max_length=64,blank=True,null=True)
    age = models.PositiveSmallIntegerField(blank=True,null=True)
    gender = models.PositiveSmallIntegerField(choices=((0,‘Female‘),(1,‘Male‘)),blank=True,null=True)
    phone = models.PositiveIntegerField(blank=True,null=True)
    source_choices = (
        (0,‘商桥‘),
        (1,‘51CTO‘),
        (2,‘QQ群‘),
        (3,‘知乎‘),
        (4,‘SOGO‘),
        (5,‘转介绍‘),
        (6,‘其他‘),
    )

    source = models.SmallIntegerField(choices=source_choices)
    referral_from = models.ForeignKey("Customer",related_name="my_referrals",blank=True,null=True)
    consult_courses = models.ManyToManyField("Course")
    status_choices = ((0,‘已报名 ‘),(1,‘未报名‘),(2,‘已退学‘))
    status = models.SmallIntegerField(choices=status_choices)
    consultant = models.ForeignKey("UserProfile", verbose_name="课程顾问")
    date = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.name


#学员报名信息(后面的学习记录,学员上课记录)
class Enrollment(models.Model):
    customer = models.ForeignKey(‘Customer‘)
    class_grade = models.ForeignKey(‘ClassList‘)
    enrollment_date = models.DateField()

    def __str__(self):
        return self.customer
    class Meta:
        unique_together = ("customer","class_grade")



#学员跟进记录
class FollowUpRecord(models.Model):
    customer = models.ForeignKey(‘Customer‘)
    content = models.TextField(max_length=1024)
    status =(
        (0,‘不报名‘),
        (1,‘一个月内报名‘),
        (2,‘两周内报名‘),
    )
    # consultant = models.Foreignkey("UserProfile",verbose_name="课程顾问")
    consultant = models.ForeignKey("UserProfile",verbose_name="课程顾问")
    date = models.DateTimeField(auto_now_add=True)

#课程表
class Course(models.Model):
    name = models.CharField(unique=True,max_length=64)
    price = models.PositiveIntegerField(default=198000)
    outline = models.TextField()

    def __str__(self):
        return self.name


#班级列表
class ClassList(models.Model):
    course = models.ForeignKey("Course")
    semester = models.PositiveSmallIntegerField()
    start_date = models.DateField()
    end_date = models.DateField()
    teachers = models.ManyToManyField("UserProfile")
    class_type_choices = ((0,‘脱产‘),(1,‘周末‘),(2,‘网络‘))
    branch= models.ForeignKey("Branch")

#每节课上课记录
class CourseRecord(models.Model):
    class_grade = models.ForeignKey("ClassList")
    day_number = models.PositiveSmallIntegerField(verbose_name="节次")
    teacher  = models.ForeignKey("UserProfile")
    CourseCoutent = models.TextField(verbose_name="课程内容",max_length=1024)
    # 有没有作业
    has_homework = models.BooleanField(default=True)
    # 作业标题
    homework_title = models.CharField(max_length=128,blank=True,null=True)
    #作业需求
    homework_requirement = models.CharField(verbose_name="作业需求",max_length=1025,blank=True,null=True)
    def __str__(self):
        return "%s dayum:%s"%(self.class_grade,self.day_number)

    class Meta:
        unique_together = ("class_grade","day_number")


#每个学生上的每节课的成绩记录
class StudyRecord(models.Model):
    course_record = models.ForeignKey("CourseRecord")
    student = models.ForeignKey("Enrollment")
    score_choices = ((100,"A+"),
                     (90,"A"),
                     (85,"B+"),
                     (80,"B"),
                     (75,"B-"),
                     (70,"C+"),
                     (65,"C"),
                     (40,"C-"),
                     (-20,"D"),
                     (-50,"COPY"),
                     (0,"N/A"),
                     )
    score = models.SmallIntegerField(choices=score_choices)
    show_status_choices = ((0,"缺勤"),(1,"已签到"),(2,"迟到"))
    grade_comment = models.TextField(max_length=1024,blank=True,null=True)
    def __str__(self):
        return "%s daynum:%s" %(self.student,self.day_number)
    class Meta:
        unique_together = ("course_record","student")


#员工
class UserProfile(models.Model):
    user = models.OneToOneField(User)
    name = models.CharField(max_length=32)
    roles = models.ManyToManyField("Role",blank=True,null=True)
    def __str__(self):
        return self.name

#角色表
class Role(models.Model):
    name = models.CharField(unique=True,max_length=32)
    menus = models.ManyToManyField("Menu")
    def __str__(self):
        return self.name


#分校
class Branch(models.Model):
    name = models.CharField(unique=True,max_length=128)
    def __str__(self):
        return self.name


#菜单表
class Menu(models.Model):
    name = models.CharField(unique=True,max_length=32)
    url_type = models.SmallIntegerField(choices=((0,‘relative_name‘),(1,‘absolute_url‘)))
    url_name = models.CharField(unique=True,max_length=128)
    def __str__(self):
        return self.name

 

day30