day36 crm开发之公户管理数据权限过滤及跟进记录功能
公私户数据权限展示
由于是公共用户,李四是私户,不应该显示在列表中
start组件中StarkHandler类新增函数,将查询语句单独封装
def get_queryset(self, request, *args, **kwargs):
return self.model_class.objects
changelist_view函数中获取组合条件查询sql修改为
prev_queryset = self.get_queryset(request, *args, **kwargs)
queryset = prev_queryset.filter(conn).filter(**search_group_condition).order_by(*order_list)
web应用公户功能调用方式
# -*- encoding: utf-8 -*-
"""
@File : public_customer.py
@Time : 2022/3/6 17:06
@Author : simon
@Email : 294168604@qq.com
@Software: PyCharm
"""
from stark.service.v1 import StarkHandler
class PublicCustomerHandler(StarkHandler):
list_display = ['name', ]
def get_queryset(self, request, *args, **kwargs):
return self.model_class.objects.filter(consultant__isnull=True)
效果图
跟进记录功能实现
web应用公户功能模块修改代码
# -*- encoding: utf-8 -*-
"""
@File : public_customer.py
@Time : 2022/3/6 17:06
@Author : simon
@Email : 294168604@qq.com
@Software: PyCharm
"""
from django.utils.safestring import mark_safe
from django.conf.urls import url
from django.shortcuts import HttpResponse, render
from stark.service.v1 import StarkHandler, get_choice_text, get_m2m_text, StarkModelForm
from web import models
class PublicCustomerModelForm(StarkModelForm):
class Meta:
model = models.Customer
exclude = ['consultant', ]
class PublicCustomerHandler(StarkHandler):
def display_record(self, obj=None, is_header=None):
if is_header:
return '跟进记录'
record_url = self.reverse_commons_url(self.get_url_name('record_view'), pk=obj.pk)
return mark_safe('<a href="%s">查看跟进</a>' % record_url)
list_display = ['name', 'qq', get_m2m_text('咨询课程', 'course'), display_record, get_choice_text('状态', 'status')]
def get_queryset(self, request, *args, **kwargs):
return self.model_class.objects.filter(consultant__isnull=True)
model_form_class = PublicCustomerModelForm
def extra_urls(self):
patterns = [
url(r'^record/(?P<pk>\d+)/$', self.wrapper(self.record_view),
name=self.get_url_name('record_view')),
]
return patterns
def record_view(self, request, pk):
"""
查看跟进记录的视图
:param request:
:param pk:
:return:
"""
record_list = models.ConsultRecord.objects.filter(customer_id=pk)
return render(request, 'record_view.html', {'record_list': record_list})
新增web应用模板
web/templates/record_view.html
{% extends 'layout.html' %}
{% block content %}
<div class="luffy-container">
{% for row in record_list %}
<div class="panel panel-default">
<div class="panel-body">
{{ row.note }}
<div style="margin: 5px;">
<div style="display: inline-block;"><i class="fa fa-user-o" aria-hidden="true"></i>{{ row.consultant.name }}</div>
<div style="display: inline-block;"><i class="fa fa-clock-o" aria-hidden="true"></i>{{ row.date }}</div>
</div>
</div>
</div>
{% endfor %}
</div>
{% endblock %}
效果展示
分类:
crm系统开发
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具