DC's blog DC's blog
首页
  • 计算机基础
  • linux基础
  • mysql
  • git
  • 数据结构与算法
  • axure
  • english
  • docker
  • opp
  • oop
  • 网络并发编程
  • 不基础的py基础
  • 设计模式
  • html
  • css
  • javascript
  • jquery
  • UI
  • 第一次学vue
  • 第二次学vue
  • Django
  • drf
  • drf_re
  • 温故知新
  • flask
  • 前后端不分离

    • BBS
    • 订单系统
    • CRM
  • 前后端部分分离

    • pear-admin-flask
    • pear-admin-django
  • 前后端分离

    • 供应链系统
  • 理论基础
  • py数据分析包
  • 机器学习
  • 深度学习
  • 华中科大的网课
  • cursor
  • deepseek
  • 杂文
  • 罗老师语录
  • 关于我

    • me
  • 分类
  • 归档
GitHub (opens new window)

DC

愿我一生欢喜,不为世俗所及.
首页
  • 计算机基础
  • linux基础
  • mysql
  • git
  • 数据结构与算法
  • axure
  • english
  • docker
  • opp
  • oop
  • 网络并发编程
  • 不基础的py基础
  • 设计模式
  • html
  • css
  • javascript
  • jquery
  • UI
  • 第一次学vue
  • 第二次学vue
  • Django
  • drf
  • drf_re
  • 温故知新
  • flask
  • 前后端不分离

    • BBS
    • 订单系统
    • CRM
  • 前后端部分分离

    • pear-admin-flask
    • pear-admin-django
  • 前后端分离

    • 供应链系统
  • 理论基础
  • py数据分析包
  • 机器学习
  • 深度学习
  • 华中科大的网课
  • cursor
  • deepseek
  • 杂文
  • 罗老师语录
  • 关于我

    • me
  • 分类
  • 归档
GitHub (opens new window)
  • BBS

  • 订单平台

  • CRM

    • rbac

    • stark

    • crm

      • 基础业务处理
      • 客户管理
      • 学员管理
        • 学生管理
        • 积分管理
          • 积分记录表
          • 记录查看和新增
        • 上课记录
        • 考勤记录
          • 批量初始化考勤记录
          • 批量设置考勤记录
      • 权限应用
  • flask+layui

  • django+layui

  • 供应链

  • 实战
  • CRM
  • crm
DC
2024-04-14
目录

学员管理

# 学生管理

Student学生表的 查看修改

需求如下:

1> 学生的添加只能通过销售的渠道进行转换,在这里不能随便添加. 所以添加的功能没有!
2> 学生的删除要慎重,所以删除的功能没有!
3> 学生的编辑, 客户信息/属于哪个客户、已报班级、学员状态 字段是不能任意随便做修改的!
4> 添加模糊搜索和组合搜索
1
2
3
4

关键代码如下:

image-20240416144820289


# 积分管理

(*≧ω≦)

# 积分记录表

哪个学生因为什么加分了还是扣分了,执行人是谁!!

表设计如下:

class Student(models.Model):
    """ 学生表 """
    customer = models.OneToOneField(verbose_name='客户信息', to='Customer', on_delete=models.CASCADE)
    # 客户表里那里的信息可能是乱填的;而在学生表这,qq、手机号这些得是真实的!
    qq = models.CharField(verbose_name='QQ号', max_length=32)
    mobile = models.CharField(verbose_name='手机号', max_length=32)
    emergency_contract = models.CharField(verbose_name='紧急联系人电话', max_length=32)
    # n:n 一个学员可以报很多个班级
    class_list = models.ManyToManyField(verbose_name="已报班级", to='ClassList', blank=True)
    student_status_choices = [
        (1, "申请中"),
        (2, "在读"),
        (3, "毕业"),
        (4, "退学")
    ]
    student_status = models.IntegerField(verbose_name="学员状态", choices=student_status_choices, default=1)
    score = models.IntegerField(verbose_name='积分', default=100)  # ★★★
    memo = models.TextField(verbose_name='备注', max_length=255, blank=True, null=True)

    def __str__(self):
        return self.customer.name

class ScoreRecord(models.Model):
    """ 积分记录 哪个学生因为什么加分了还是扣分了,执行人是谁 """
    student = models.ForeignKey(verbose_name='学生', to='Student', on_delete=models.CASCADE)
    content = models.TextField(verbose_name='理由')
    score = models.IntegerField(verbose_name='分值', help_text='违纪扣分写负值,表现邮寄加分写正值')
    user = models.ForeignKey(verbose_name='执行人', to='UserInfo', on_delete=models.CASCADE)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

# 记录查看和新增

对积分记录进行查看和新增!!

需求分析如下:

1> 学生列表添加一列"积分记录"! 
   该积分可以点击,渲染的url地址会携带当前学生的id, 点击后跳转到该学生的积分记录页面.(类似于客户的跟进记录
2> 查看该学生的积分记录. So,需要通过重写get_queryset进行筛选!
   在该方法中拿到url中该学生的id,然后去学生记录表中筛选属于该学生的积分记录.
3> 积分是不能进行编辑和删除的!只有添加和查看.
4> 添加积分记录时, 当前学生、执行人都不能编辑,在save中处理即可!! ModelForm + save
   save里的逻辑处理积分,涉及到两张表,学生表里的积分和积分记录里的积分!!
1
2
3
4
5
6
7

关键代码如下: (跟客户的跟进记录大同小异

image-20240416180036209


# 上课记录

Bingo!

- 上课记录表
- 班级表格里多一列,点击可查看这个班的上课记录 跟那什么"跟进记录"、"缴费记录"、"积分记录"等一样的.
- 点击跳转过去时,一定要携带班级ID,So:
  - 上课记录相关的CURD的url不能用默认的,要修改下
  - 上课记录表格中,不应该是所有的上课记录,应该是该班级的上课记录
- 上课记录表的 新增
  - 新增时,班级是不用填的!!
  
至于新增、更新、删除时,手动修改url上的参数,对此的预防. 暂时没有必要,看需求吧!!细品.

■ 待优化: 每个班级不都设置了有哪些任课教师嘛?那么在对这个班级进行添加记录字段时,讲师字段的选择只能从已经设置好的任课教师中选!!
1
2
3
4
5
6
7
8
9
10
11

image-20240423191621286


# 考勤记录

为班级的每条上课记录都应生成n条考勤记录(0<=n<=该班级的人数) 考勤的状态--已签到/请假/迟到/缺勤/早退

# 批量初始化考勤记录

找到该条上课记录所在的班级的所有学员,初始化批量生成学生的考勤记录!!(省去了为学员一个个添加考勤记录的繁琐过程.
初始的考勤状态都是 已签到!!

在批量操作按钮中做了一系列的判断!! 详见截图.. 就不过多进行阐述啦.

image-20240506095540634

# 批量设置考勤记录

在上面我们批量初始化了考勤记录, 它们的考勤状态初始都是"已考勤", 我们可以进行批量修改!

我们在上课记录表格里添加"考勤记录"一列,点击它,显示该记录所在班级所有学生的考勤记录..
并且这些考勤记录是可以被修改的. 修改后,可以批量提交!! -- 类似于rbac组件里利用formset批量进行权限操作的功能
(此处我们没用formset,使用的是modelformset!!)
1
2
3

image-20240506132032087


客户管理
权限应用

← 客户管理 权限应用→

最近更新
01
deepseek本地部署+知识库
02-17
02
实操-微信小程序
02-14
03
教学-cursor深度探讨
02-13
更多文章>
Theme by Vdoing | Copyright © 2023-2025 DC | One Piece
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式