day40 crm开发之私户跟进记录开发-->定制前端页面模板

私户转公户功能

web应用中私户视图增加转公户功能

    def action_multi_remove(self, request, *args, **kwargs):
        """
        批量移除到公户
        :return:
        """
        current_user_id = request.session['user_info']['id']
        pk_list = request.POST.getlist('pk')
        self.model_class.objects.filter(id__in=pk_list, consultant_id=current_user_id).update(consultant=None)

    action_multi_remove.text = "移除到公户"

    action_list = [action_multi_remove]

效果展示:

查看私户记录

web应用增加跟进记录视图功能
web/views/consult_record.py

# -*- encoding: utf-8 -*-
"""
@File    : consult_record.py
@Time    : 2022/3/12 14:17
@Author  : simon
@Email   : 294168604@qq.com
@Software: PyCharm
"""
from django.conf.urls import url
from stark.service.v1 import StarkHandler


class ConsultRecordHandler(StarkHandler):
    list_display = ['note', 'consultant', 'date']

    def get_urls(self):
        patterns = [
            url(r'^list/(?P<customer_id>\d+)/$', self.wrapper(self.changelist_view), name=self.get_list_url_name),
            url(r'^add/$', self.wrapper(self.add_view), name=self.get_add_url_name),
            url(r'^change/(?P<pk>\d+)/$', self.wrapper(self.change_view), name=self.get_change_url_name),
            url(r'^delete/(?P<pk>\d+)/$', self.wrapper(self.delete_view), name=self.get_delete_url_name),
        ]

        patterns.extend(self.extra_urls())
        return patterns

    def get_queryset(self, request, *args, **kwargs):
        customer_id = kwargs.get('customer_id')
        current_user_id = request.session['user_info']['id']
        return self.model_class.objects.filter(customer_id=customer_id, customer__consultant_id=current_user_id)

私户视图代码增加查看记录按钮

私户视图最新代码
web/views/private_customer.py

# -*- encoding: utf-8 -*-
"""
@File    : private_customer.py
@Time    : 2022/3/6 17:06
@Author  : simon
@Email   : 294168604@qq.com
@Software: PyCharm
"""
from stark.service.v1 import StarkHandler, get_m2m_text, get_choice_text, StarkModelForm
from web import models
from django.urls import reverse
from django.utils.safestring import mark_safe

class PrivateCustomerModelForm(StarkModelForm):
    class Meta:
        model = models.Customer
        exclude = ['consultant', ]


class PrivateCustomerHandler(StarkHandler):
    model_form_class = PrivateCustomerModelForm

    def display_record(self, obj=None, is_header=None):
        if is_header:
            return '跟进记录'
        record_url = reverse('stark:web_consultrecord_list', kwargs={'customer_id': obj.pk})
        return mark_safe('<a target="_blank" href="%s">跟进记录</a>' % record_url)

    list_display = [StarkHandler.display_checkbox, 'name', 'qq', get_m2m_text('咨询课程', 'course'),
                    get_choice_text('状态', 'status'),display_record]

    def get_queryset(self, request, *args, **kwargs):
        current_user_id = request.session['user_info']['id']
        return self.model_class.objects.filter(consultant_id=current_user_id)

    def save(self, request, form, is_update, *args, **kwargs):
        if not is_update:
            current_user_id = request.session['user_info']['id']
            form.instance.consultant_id = current_user_id
        form.save()

    def action_multi_remove(self, request, *args, **kwargs):
        """
        批量移除到公户
        :return:
        """
        current_user_id = request.session['user_info']['id']
        pk_list = request.POST.getlist('pk')
        self.model_class.objects.filter(id__in=pk_list, consultant_id=current_user_id).update(consultant=None)

    action_multi_remove.text = "移除到公户"

    action_list = [action_multi_remove]

效果展示:

操作记录页面定制处理

由于stark组件已经使用了通用模板,现在需要修改v1中使用模板代码。

需要在类中定义一个参数

修改代码为:

最后在跟进记录视图中增加自定义模板

效果展示:

posted @ 2022-03-12 14:40  simon_T  阅读(58)  评论(0编辑  收藏  举报