Django项目:CRM(客户关系管理系统)--62--52PerfectCRM实现CRM客户报名流程学生合同审核

 

 1 # sales_urls.py
 2 # ————————47PerfectCRM实现CRM客户报名流程————————
 3 from django.conf.urls import url
 4 from bpm.sales import sales_views
 5 
 6 urlpatterns = [
 7 
 8     url(r'^customer/(\d+)/enrollment/$', sales_views.enrollment, name="enrollment"),#客户招生#报名流程一 下一步
 9 
10     # ————————50PerfectCRM实现CRM客户报名流程学生合同URL随机码————————
11     # ————————48PerfectCRM实现CRM客户报名流程学生合同————————
12     # url(r'^customer/registration/(\d+)/$', sales_views.stu_registration, name="stu_registration"),  # 报名流程二 学员签同合
13     # ————————48PerfectCRM实现CRM客户报名流程学生合同————————
14     url(r'^customer/registration/(\d+)/(\w+)/$', sales_views.stu_registration, name="stu_registration"),  # 报名流程二 学员签同合
15     # ————————50PerfectCRM实现CRM客户报名流程学生合同URL随机码————————
16 
17     # ————————52PerfectCRM实现CRM客户报名流程学生合同审核————————
18     url(r'^contract_prompt/$', sales_views.contract_prompt, name="contract_prompt"),  # 报名流程二 提示学员
19     url(r'^not_audit/$', sales_views.not_audit, name="not_audit"),  # 报名流程二  未审核 查询
20     url(r'^contract_review/(\d+)/$', sales_views.contract_review, name="contract_review"),  # 报名流程三  审核
21     url(r'^enrollment_rejection/(\d+)/$', sales_views.enrollment_rejection, name="enrollment_rejection"),  # 报名流程三 驳回
22     # ————————52PerfectCRM实现CRM客户报名流程学生合同审核————————
23 
24 ]
25 # ————————47PerfectCRM实现CRM客户报名流程————————
# sales_urls.py

 

 

 

  1 # sales_views.py
  2 # ————————47PerfectCRM实现CRM客户报名流程————————
  3 from django.db import IntegrityError  # 主动捕捉错误信息
  4 from django.shortcuts import render  # 页面返回
  5 from crm import models  # 数据库
  6 from bpm.bpm_auxiliary import bpm_forms  # 自定制 forms
  7 from  django.contrib.auth.decorators import login_required  # 登陆后页面才能访问
  8 
  9 # ————————47PerfectCRM实现CRM客户报名流程————————
 10 from django.core.mail import send_mail
 11 # send_mail的参数分别是  邮件标题,邮件内容,发件箱(settings.py中设置过的那个),收件箱列表(可以发送给多个人),失败静默(若发送失败,报错提示我们)
 12 import random
 13 import datetime  # 获取时间#登陆过期
 14 
 15 
 16 # 发送邮件的功能 #验证码#密码
 17 class stmp():
 18     def __init__(self):
 19         self.emaillist = []  # 发送给谁
 20         self.code = None  # 验证码#密码
 21 
 22     def stmps(self, request, email, msg_mail):  # 传参数#页面,session #邮箱,发送给谁 #内容
 23         self.emaillist.append(email)  # 将邮箱地址添加到调用Django发送邮件功能
 24         # ——————生成验证码——————
 25         _letter_cases = "abcdefghjkmnpqrstuvwxy"  # 小写字母,去除可能干扰的i,l,o,z
 26         _upper_cases = _letter_cases.upper()  # 大写字母
 27         _numbers = ''.join(map(str, range(3, 10)))  # 数字
 28         chars = ''.join((_letter_cases, _upper_cases, _numbers))  # 变成一条字符串
 29         list = random.sample(chars, 4)  # 从一条字符串随机选4个字符变成列表
 30         self.code = ''.join(list)  # 列表变字符串
 31         # ——————生成验证码——————
 32         # ——————调用Django发送邮件——————
 33         title = 'PerfectCRM项目自动邮件:%s' % self.code  # 邮件标题#防止一样的内容被邮箱屏蔽
 34         send_mail(title,  # 邮件标题
 35                   msg_mail,  # 验证码内容
 36                   'perfectcrm@sina.cn',  # 发送的邮箱  #根据情况重新配置
 37                   self.emaillist,  # 接受的邮箱
 38                   fail_silently=False,  # 静默,抛出异常
 39                   )
 40         print('发送邮件成功!没收到要换标题!检查发送邮箱的配置!')
 41         # ——————调用Django发送邮件——————
 42 
 43 
 44 # ————————47PerfectCRM实现CRM客户报名流程————————
 45 # ————————47PerfectCRM实现CRM客户报名流程————————
 46 # ————————50PerfectCRM实现CRM客户报名流程学生合同URL随机码————————
 47 import random  # 随机
 48 import string  # 字母 数字
 49 from django.core.cache import cache  # 缓存
 50 # ————————50PerfectCRM实现CRM客户报名流程学生合同URL随机码————————
 51 
 52 # 报名填写 销售
 53 @login_required  # 登陆后页面才能访问
 54 def enrollment(request, customer_id):
 55     msgs = {}  # 错误信息
 56     customer_obj = models.Customer.objects.get(id=customer_id)  # 取到客户信息记录 #返回到页面#报名人
 57     consultant_obj = models.UserProfile.objects.get(id=request.user.id)  # 报名课程顾问
 58 
 59     stmp_mail = {}  # 邮件发送成功
 60     stmpemail = stmp()  # 实例化发送邮件的功能
 61     email = request.POST.get('email')  # 让页面POST提交的值,在页面GET后仍然存在显示
 62     if request.method == "POST":
 63         enroll_form = bpm_forms.EnrollmentForm(request.POST)  # 获取数据
 64         if enroll_form.is_valid():  # 表单验证
 65 
 66             # ————————50PerfectCRM实现CRM客户报名流程学生合同URL随机码————————
 67             # msg = "http://127.0.0.1:8000/bpm/customer/registration/{enroll_obj_id}/"
 68             msg = "http://127.0.0.1:8000/bpm/customer/registration/{enroll_obj_id}/{random_str}/ "
 69             random_str = ''.join(random.sample(string.ascii_lowercase + string.digits, 8))  # 生成8位随机字符串 #URL使用
 70             url_str = '''customer/registration/{enroll_obj_id}/{random_str}/'''  # 报名链接
 71             # ————————50PerfectCRM实现CRM客户报名流程学生合同URL随机码————————
 72 
 73             try:
 74                 enroll_form.cleaned_data['customer'] = customer_obj  # 添加学员对象 记录 #报名人
 75                 enroll_form.cleaned_data['consultant'] = consultant_obj  # 报名课程顾问
 76                 enroll_obj = models.Enrollment.objects.create(**enroll_form.cleaned_data)  # 创建记录
 77 
 78                 # ————————50PerfectCRM实现CRM客户报名流程学生合同URL随机码————————
 79                 # msgs['msg']=msg.format(enroll_obj_id=enroll_obj.id)#报名记录对应的id,随机字符串,报名链接
 80                 sort_url = enroll_obj.id  # 获取报名表对应的ID
 81                 cache.set(enroll_obj.id, random_str, 61000)  # 加入过期时间   #URL使用    # cache缓存
 82                 msgs['msg'] = msg.format(enroll_obj_id=enroll_obj.id, random_str=random_str)  # 报名记录对应的id,随机字符串,报名链接
 83                 url_str = url_str.format(enroll_obj_id=enroll_obj.id, random_str=random_str)  # 报名链接
 84                 print(url_str)
 85                 # ————————50PerfectCRM实现CRM客户报名流程学生合同URL随机码————————
 86             except IntegrityError as e:
 87                 # 取到这条记录
 88                 enroll_obj = models.Enrollment.objects.get(customer_id=customer_obj.id,
 89                                                            enrolled_class_id=enroll_form.cleaned_data[
 90                                                                'enrolled_class'].id)
 91 
 92                 # ————————52PerfectCRM实现CRM客户报名流程学生合同审核————————
 93                 if enroll_obj.contract_agreed:#学员已经同意合同,提交了身份证
 94                     #return redirect('/crm/contract_review/%s/'%enroll_obj.id)#跳转到审核页面
 95                     return render(request,'bpm_sales/contract_prompt.html',locals())#跳转提示页面
 96                 # ————————52PerfectCRM实现CRM客户报名流程学生合同审核————————
 97 
 98                 enroll_form.add_error('__all__', '记录已经存在,不能重复创建!')
 99 
100                 # ————————50PerfectCRM实现CRM客户报名流程学生合同URL随机码————————
101                 # msgs['msg']=msg.format(enroll_obj_id=enroll_obj.id)#报名记录对应的id
102                 cache.set(enroll_obj.id, random_str, 61000)  # 加入过期时间  #URL使用    # cache缓存
103                 msgs['msg'] = msg.format(enroll_obj_id=enroll_obj.id, random_str=random_str)  # 报名记录对应的id
104                 url_str = url_str.format(enroll_obj_id=enroll_obj.id, random_str=random_str)  # 报名链接
105                 # ————————50PerfectCRM实现CRM客户报名流程学生合同URL随机码————————
106 
107             if email:
108                 # ————————50PerfectCRM实现CRM客户报名流程学生合同URL随机码————————
109                 # msg_mail = "http://127.0.0.1:8000/bpm/customer/registration/%s" %enroll_obj.id
110                 msg_mail = "http://127.0.0.1:8000/bpm/customer/registration/%s/%s" %(enroll_obj.id,random_str)
111                 # ————————50PerfectCRM实现CRM客户报名流程学生合同URL随机码————————
112                 stmpemail.stmps(request, email, msg_mail)  # 发送邮件
113                 stmp_mail['ok'] = "邮件已发送成功!"
114 
115     else:
116         enroll_form = bpm_forms.EnrollmentForm()  # modelform表单
117     return render(request, 'bpm_sales/enrollment.html', locals())
118 # ————————47PerfectCRM实现CRM客户报名流程————————
119 
120 
121 # ————————48PerfectCRM实现CRM客户报名流程学生合同————————
122 #学员合同签定
123 
124 # ————————51PerfectCRM实现CRM客户报名流程学生合同上传照片————————
125 import os
126 from PerfectCRM import settings
127 import json
128 # ————————51PerfectCRM实现CRM客户报名流程学生合同上传照片————————
129 
130 # ————————50PerfectCRM实现CRM客户报名流程学生合同URL随机码————————
131 from django.shortcuts import HttpResponse #页面返回
132 # def stu_registration(request,enroll_id):
133 def stu_registration(request,enroll_id,random_str):
134     # enroll_obj=models.Enrollment.objects.get(id=enroll_id)#获取报名记录
135     if cache.get(enroll_id) == random_str:  # 判断链接失效了没有
136         enroll_obj = models.Enrollment.objects.get(id=enroll_id)  # 报名记录
137 # ————————50PerfectCRM实现CRM客户报名流程学生合同URL随机码————————
138 
139         # ————————51PerfectCRM实现CRM客户报名流程学生合同上传照片————————
140         enrolled_path='%s/%s/'%(settings.ENROLLED_DATA,enroll_id)#证件上传路径
141         img_file_len=0  #文件
142         if os.path.exists(enrolled_path):#判断目录是否存在
143             img_file_list=os.listdir(enrolled_path)#取目录 下的文件
144             img_file_len=len(img_file_list)
145         # ————————51PerfectCRM实现CRM客户报名流程学生合同上传照片————————
146 
147     # ————————49PerfectCRM实现CRM客户报名流程学生合同表单验证————————
148         # ————————50PerfectCRM实现CRM客户报名流程学生合同URL随机码————————
149         if request.method == "POST":
150 
151             # ————————51PerfectCRM实现CRM客户报名流程学生合同上传照片————————
152             ret=False
153             data=request.POST.get('data')
154             if data:#如果有删除动作
155                 del_img_path="%s/%s/%s"%(settings.ENROLLED_DATA,enroll_id,data)#路径
156                 print(del_img_path,'=-=-=-=-=-=')
157                 os.remove(del_img_path)
158                 ret=True
159                 return HttpResponse(json.dumps(ret))
160             if request.is_ajax():#ajax上传图片 #异步提交
161                 print('ajax上传图片 #异步提交中。。。 ',request.FILES)
162                 enroll_data_dir="%s/%s"%(settings.ENROLLED_DATA,enroll_id)#路径  #重要信息不能放在静态文件中
163                 if not os.path.exists(enroll_data_dir):#如果不存目录
164                     os.makedirs(enroll_data_dir,exist_ok=True)#创建目录
165                 for k,file_obj in request.FILES.items():   #循环字典 #上传的文件
166                     with open("%s/%s"%(enroll_data_dir,file_obj.name),'wb') as f: #打开一个文件#路径#获取文件名
167                         for chunk in file_obj.chunks():#循环写入文件 # chunks块
168                             f.write(chunk)  #保存文件
169                 return HttpResponse('上传完成!')
170             # ————————51PerfectCRM实现CRM客户报名流程学生合同上传照片————————
171 
172             customer_form = bpm_forms.CustomerForm(request.POST, instance=enroll_obj.customer)  # 生成表单验证
173             if customer_form.is_valid():  # 表单验证通过
174                 customer_form.save()  # 保存
175                 enroll_obj.contract_agreed = True  # 同意协议
176                 enroll_obj.save()  # 保存
177                 status = 1  # 修改报名状态 # 1 已经报名
178                 return render(request, 'bpm_sales/stu_registration.html', locals())
179 
180         else:
181             if enroll_obj.contract_agreed == True:  # 如果协议已经签订
182                 status = 1  # 修改报名状态 # 1 已经报名
183             else:
184                 status = 0
185             customer_form = bpm_forms.CustomerForm(instance=enroll_obj.customer)  # 生成表单
186     # customer_form = bpm_forms.CustomerForm(instance=enroll_obj.customer)  # 生成表单
187     # ————————49PerfectCRM实现CRM客户报名流程学生合同表单验证————————
188 
189         return render(request,'bpm_sales/stu_registration.html',locals())
190         # ————————50PerfectCRM实现CRM客户报名流程学生合同URL随机码————————
191 # ————————48PerfectCRM实现CRM客户报名流程学生合同————————
192     # ————————50PerfectCRM实现CRM客户报名流程学生合同URL随机码————————
193     else:
194         return HttpResponse('链接失效,非法链接,请自重!')
195     # ————————50PerfectCRM实现CRM客户报名流程学生合同URL随机码————————
196 
197 
198 # ————————52PerfectCRM实现CRM客户报名流程学生合同审核————————
199 from django.shortcuts import redirect
200 #查询流程提示页面
201 def contract_prompt(request,enroll_id):
202     enroll_obj=models.Enrollment.objects.get(id=enroll_id)#取对象
203     enroll_form= bpm_forms.EnrollmentForm(instance=enroll_obj)#报名表对象
204     customers_form= bpm_forms.CustomerForm(instance=enroll_obj.customer)#学员的信息
205     return render(request,'bpm_sales/contract_prompt.html',locals())
206 # #待审核
207 def not_audit(request):
208     sign=models.Enrollment.objects.all()#所有的报名表
209     print(sign,'sign----->')
210     return render(request, 'bpm_sales/not_audit.html', locals())#
211 
212 #审核合同
213 @login_required # 登陆后页面才能访问
214 def contract_review(request,enroll_id):
215     enroll_obj=models.Enrollment.objects.get(id=enroll_id)#取对象
216     contract_review = request.user.name #当前登陆人 #合同审核人
217     #payment_form=forms.PaymentForm()#生成表单
218     enroll_form= bpm_forms.EnrollmentForm(instance=enroll_obj)#报名表对象
219     customer_form= bpm_forms.CustomerForm(instance=enroll_obj.customer)#学员的信息
220     enrolled_path='%s/%s/'%(settings.ENROLLED_DATA,enroll_id)#证件上传路径
221     if os.path.exists(enrolled_path):#判断目录是否存在
222         file_list=os.listdir(enrolled_path)#取目录 下的文件
223         imgs_one=file_list[0]  #图片1
224         imgs_two=file_list[1]  #图片2
225     if request.method=="POST":
226         enroll_obj.contract_approved = True  # 审核通过
227         enroll_obj.save() #保存
228         enroll = models.Enrollment.objects.filter(id=enroll_id).update(contract_review=contract_review)#合同审核人
229         print('审核通过。。。')
230         return redirect('/bpm/not_audit/')#跳转到待审核
231     return render(request, 'bpm_sales/contract_review.html', locals())#
232 #驳回合同
233 def enrollment_rejection(request,enroll_id):
234     enroll_obj=models.Enrollment.objects.get(id=enroll_id)#报名表的对象
235     enroll_obj.contract_agreed=False#修改学员已经同意核同
236     enroll_obj.save() #保存
237     return redirect('/bpm/customer/%s/enrollment/'%enroll_obj.customer.id)#跳转到enrollment_rejection
238 # ————————52PerfectCRM实现CRM客户报名流程学生合同审核————————
# sales_views.py

 

 

 

 1 {#contract_prompt.html#}
 2 {## # ————————52PerfectCRM实现CRM客户报名流程学生合同审核————————#}
 3 {% extends 'bpm_master/bpm_sample.html' %}
 4 {% block right-container-content %} {#自定义内容开始 右边页面内容#}
 5     <div class="panel-default">
 6         <div class="panel-body">
 7             <table class="table table-striped table-responsive">
 8                 <thead>
 9                 <tr>
10                     <th>客户名字</th>
11                     <th>客户QQ</th>
12                     <th>手机号码</th>
13                     <th>咨询顾问</th>
14                     <th>所报班级</th>
15                     <th>报名课程顾问</th>
16                 </tr>
17                 </thead>
18                 <tbody>
19                 <tr>
20                     <td>{{ enroll_obj.customer.name }}</td>
21                     <td>{{ enroll_obj.customer }}</td>
22                     <td>{{ enroll_obj.customer.phone }}</td>
23                     <td>{{ enroll_obj.customer.consultant }}</td>
24                     <td>{{ enroll_obj.enrolled_class }}</td>
25                     <td>{{ enroll_obj.consultant }}</td>
26                 </tr>
27                 </tbody>
28             </table>
29 
30             <p class="errors" style="color:#ff0004 "> 该学员所报的课程已经进入合同审核中</p>
31             <a href="{{ request.path }}"><input type="submit" class="btn btn-info pull-left" value="返回,查询其他课程"> </a>
32             <a href="/bpm/not_audit/"><input type="submit" class="btn btn-info pull-right" value="审核合同"> </a>
33         </div>
34     </div>
35 {% endblock %}
36 
37 {## # ————————52PerfectCRM实现CRM客户报名流程学生合同审核————————#}
{#contract_prompt.html#}

 

 

 

 1 {#not_audit.html#}
 2 {## # ————————52PerfectCRM实现CRM客户报名流程学生合同审核————————#}
 3 {% extends 'bpm_master/bpm_sample.html' %}
 4 {% block right-container-content %} {#自定义内容开始 右边页面内容#}
 5     <div class="panel-default">
 6         <div class="panel-body">
 7              <h3>待审核 | <a class="btn btn-info pull" href="http://127.0.0.1:8000/king_admin/crm/customer/">报名 | 查询</a></h3>
 8             <table class="table table-striped table-responsive">
 9                 <thead>
10                 <tr>
11                     <th>客户名字</th>
12                     <th>客户QQ</th>
13                     <th>手机号码</th>
14                     <th>咨询顾问</th>
15                     <th>所报班级</th>
16                     <th>报名课程顾问</th>
17                     <th>合同审核</th>
18                     <th>日期时间</th>
19                 </tr>
20                 </thead>
21                 <tbody>
22                 {% for foo in sign %}
23 {#                    {% if foo.contract_agreed and foo.contract_approved == false %}#}
24                     {% if foo.contract_agreed and not foo.contract_approved %}
25                     <tr>
26                         <td><a href="{% url 'contract_review' foo.id %}">{{ foo.customer.name }}</a></td>
27                         <td>{{ foo.customer }}</td>
28                         <td>{{ foo.customer.phone }}</td>
29                         <td>{{ foo.customer.consultant }}</td>
30                         <td>{{ foo.enrolled_class }}</td>
31                         <td>{{ foo.consultant }}</td>
32                         <td>{{ foo.contract_approved }}</td>
33                         <td>{{ foo.date }}</td>
34                     </tr>
35                     {% endif %}
36                 {% endfor %}
37                 </tbody>
38             </table>
39         </div>
40     </div>
41 {% endblock %}
42 
43 {## # ————————52PerfectCRM实现CRM客户报名流程学生合同审核————————#}
{#not_audit.html#}

 

 

 

 

 

 1 {#contract_review.html#}
 2 {## # ————————52PerfectCRM实现CRM客户报名流程学生合同审核————————#}
 3 {% extends 'bpm_master/bpm_sample.html' %}
 4 {% load bpm_tags %}
 5 {% block right-container-content %} {#自定义内容开始 右边页面内容#}
 6     <div class="container col-lg-7 col-md-offset-2">
 7         <div class="panel panel-warning">
 8             <div class=" panel-heading">
 9                 <h3 class="panel-title container">报名入学|学员信息审核 | 合同审核人<a href="#" style="color: #ff1900">{{ request.user.name }}</a></h3>
10             </div>
11             <div class="panel-body "><!--返回提交函数-->
12                 <div class="form-horizontal">
13                     {% for foo in customer_form %}
14                         <div class="form-group">
15                             <label for="inputEmail3" class="col-sm-2 control-label">{{ foo.label }}</label>
16                             <div class="col-sm-8"> {{ foo }}</div>
17                         </div>
18                     {% endfor %}
19 
20                     <div class="form-group">
21                         <label for="inputEmail3" class="col-sm-2 control-label">课程名称</label>
22                         <div class="col-sm-8">
23                             {{ enroll_obj.enrolled_class }}
24                         </div>
25                     </div>
26                     <div class="form-group">
27                         <label for="inputEmail3" class="col-sm-2 control-label">课程费用</label>
28                         <div class="col-sm-8">
29                             {{ enroll_obj.enrolled_class.course.price }}
30                         </div>
31                     </div>
32                     <div class="form-group">
33                         <label for="inputEmail3" class="col-sm-2 control-label">开课日期</label>
34                         <div class="col-sm-8">
35                             {{ enroll_obj.enrolled_class.start_date }}
36                         </div>
37                     </div>
38                 </div>
39 
40 
41                 <div class="panel panel-warning">
42                     <div class=" panel-heading">
43                         <h3 class="panel-title container">学员证件|身份证</h3>
44                     </div>
45                 </div>
46                 <div class="rest_left cad" style="width: 320px;height: 200px;  float: left">
47                     <a href="#">
48                         <img src="/static/enrolled_data/{{ enroll_id }}/{{ imgs_one }}" alt=""
49                              style="width: 320px;height: 200px;">
50                     </a>
51                 </div>
52                 <div class="rest_left cad" style="width: 320px;height: 200px;  float: right">
53                     <a href="#">
54                         <img src="/static/enrolled_data/{{ enroll_id }}/{{ imgs_two }}" alt=""
55                              style="width: 320px;height: 200px;">
56                     </a>
57                 </div>
58                 <div style="clear: both"></div>
59                 <div class="panel panel-warning">
60                     <div class=" panel-heading">
61                         <h3 class="panel-title container">请认真审核后,通知相关人员!!!合同审核人<a href="#" style="color: #ff1900">{{ request.user.name }}</a></h3>
62                     </div>
63                 </div>
64 
65                 <form action="" class="form-horizontal col-lg-5" role="form" method="post">{% csrf_token %}
66                     <a class="btn btn-danger" href="{% url 'enrollment_rejection' enroll_obj.id %}">驳回合同</a>
67                      <input class="btn btn-info pull-right" type="submit" value="审核通过">
68                 </form>
69 
70             </div>
71         </div>
72     </div>
73 {% endblock %}
74 {## # ————————52PerfectCRM实现CRM客户报名流程学生合同审核————————#}
{#contract_review.html#}

 

 

 

 1 {#enrollment.html#}
 2 {## ————————47PerfectCRM实现CRM客户报名流程————————#}
 3 {% extends 'bpm_master/bpm_sample.html' %}<!--继承后台主页-->
 4 {% block right-container-content %} {#自定义内容开始 右边页面内容#}
 5     <div class="panel panel-info">
 6         <h4>学员报名:</h4>
 7     </div>
 8     <div id="content">
 9         <form action="" class="form-horizontal col-lg-5" role="form" method="post">{% csrf_token %}
10             <span class="errors" style="color: #ff1900">{{ enroll_form.errors }}</span>{#错误信息#}
11             <div class="form-group">
12                 <label for="inputeEmail4" class="col-sm-3">客户名字:</label>
13                 <div class="col-sm-6"> {{ customer_obj.name }} </div>
14             </div>
15             <div class="form-group">
16                 <label for="inputeEmail4" class="col-sm-3">客户QQ:</label>
17                 <div class="col-sm-6">{{ customer_obj.qq }} </div>
18             </div>
19             <div class="form-group">
20                 <label for="inputeEmail4" class="col-sm-3">手机号码:</label>
21                 <div class="col-sm-6"> {{ customer_obj.phone }} </div>
22             </div>
23             <div class="form-group">
24                 <label for="inputeEmail4" class="col-sm-3">咨询课程:</label>
25                 <div class="col-sm-6"> {{ customer_obj.consult_courses }} </div>
26             </div>
27             <div class="form-group">
28                 <label for="inputeEmail4" class="col-sm-3">咨询顾问:</label>
29                 <div class="col-sm-6"> {{ customer_obj.consultant }} </div>
30             </div>
31             {% for field in enroll_form %}
32                 <div class="form-group">
33                     <label for="inputeEmail4" class="col-sm-3">{{ field.label }}:</label>
34                     <div class="col-sm-6">                        {{ field }}        </div>
35                 </div>
36             {% endfor %}
37             <div class="form-group">
38                 <label for="inputeEmail4" class="col-sm-3">报名课程顾问:</label>
39                 <div class="col-sm-6"> {{ request.user.name }} </div>
40             </div>
41 
42             <div class="form-group">
43                 <label for="inputeEmail4" class="col-sm-3">客户邮箱:</label>
44                 <div class="col-sm-6"><input type="email" name="email" placeholder="邮箱账号"></div>
45                 {% if stmp_mail %}
46                     <span style="color: #ff1900">{{ stmp_mail.ok }}</span>
47                 {% endif %}
48             </div>
49             <div class="form-group">
50                 <label for="inputeEmail4" class="col-sm-3">上次发送邮箱:</label>
51                 <div class="col-sm-6"> {% if email %}{{ email }}{% else %}{{ '' }}{% endif %} </div>
52             </div>
53             <div class="form-group">
54 
55                 {## ————————52PerfectCRM实现CRM客户报名流程学生合同审核————————#}
56                 <a target="_blank" class="btn btn-danger pull" href={% url 'not_audit' %}>未审核列表</a>
57                 {## ————————52PerfectCRM实现CRM客户报名流程学生合同审核————————#}
58 
59                 <input type="submit" class="btn btn-info pull-right" value="生成链接>>发送邮件>>下一步">
60             </div>
61         </form>
62 
63         <div>
64             {% for k,v in msgs.items %}  {#链接#}
65                 <h4 style="color: #1cff00">请将此链接发给客户进行填写(与自己的ID无关):</h4>
66                 <h3><a target="_blank" href="{{ v }}">{{ v }}</a></h3>
67                 {% if stmp_mail %}
68                     <div style="color: #ff1900">{{ stmp_mail.ok }}</div>
69                 {% endif %}
70             {% endfor %}
71         </div>
72     </div>
73 {% endblock %}
74 {## ————————47PerfectCRM实现CRM客户报名流程————————#}
{#enrollment.html#}

 

 

 

 

 

 

 

 

 

 


 

如果感觉本章博客对您有帮助,请尽情打赏吧!

 

posted @ 2018-04-21 17:56  颜言  阅读(476)  评论(0编辑  收藏  举报