123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- from django.http import HttpResponseRedirect
- from django.shortcuts import render
- from .models import User, Company
- from .model_handler import CompanyHandler, UserHandler, MessageHandler, ModularEnablementHandler
- from django.contrib.auth.hashers import make_password, check_password
- from .func import get_file
- from BOM.model_handler import EcnSignOffHandler
- # Create your views here.
- def login(request):
- if request.method == 'GET':
- return render(request, template_name='info/login.html')
- if request.method == 'POST':
- user = UserHandler.login(email=request.POST.get('email').strip(), password=request.POST.get('password').strip())
- if user:
- request.session['user_id'] = user.id
- request.session['company_id'] = user.company.id
- # todo 检索用户权限
- if user.psw_change_required: # 默认密码,导入修改密码页面
- return HttpResponseRedirect('/home/user/password/')
- else:
- return HttpResponseRedirect('/home/')
- else:
- return render(request=request, template_name='info/directPage.html', context={'alertMsg': '登录失败', 'dirLink': '/'})
- def logout(request):
- request.session.flush()
- return HttpResponseRedirect('/')
- def home(request):
- if request.method == 'GET':
- user = UserHandler.get_by_id(request.session.get('user_id'))
- page_data = {}
- page_data['user'] = user
- company = CompanyHandler.get_by_id(request.session.get('company_id'))
- if not user:
- return HttpResponseRedirect('/')
-
- company_enabled_modulars = ModularEnablementHandler.search_by_company(company)
- company_enabled_modulars_list = []
- for item in company_enabled_modulars:
- company_enabled_modulars_list.append(item.modular.name)
- page_data['modular_list'] = company_enabled_modulars_list # 返回模块清单
- if 'BOM_management' in company_enabled_modulars_list: # 当公司拥有BOM模块
- pending_ecn_qty = EcnSignOffHandler.my_pending_eco_count(user) # 检索待签核的ECO
- page_data['BOM'] = {'pending_ecn_qty': pending_ecn_qty}
- unread_message_qty = MessageHandler.unread_msg_count(user) # 检索用户未读信息
- page_data['info'] = {'unread_message_qty': unread_message_qty}
- return render(request, 'info/home.html', context=page_data)
- def register(request):
- if request.method == 'GET':
- return render(request, template_name='info/register.html')
- if request.method == 'POST':
- # 检测是否重复邮箱功能,如果存在就提示错误
- if UserHandler.check_exist_email(request.POST.get('email')):
- return render(request=request, template_name='info/directPage.html', context={'alertMsg': '邮箱已经使用过了', 'dirLink': '/register/'})
- user = User()
- company = Company()
- user.name = request.POST.get('name').strip()
- user.email = request.POST.get('email').strip()
- user.mobile = request.POST.get('mobile').strip()
- user.position = request.POST.get('position').strip()
- user.password = make_password(request.POST.get('password').strip())
- company.name = request.POST.get('company_name').strip()
- company.address = request.POST.get('company_address').strip()
- company.license_id = request.POST.get('company_license').strip()
- company.phone = user.mobile
- company.primary_contact_name = user.name
- company.primary_contact_mobile = user.mobile
- company.primary_contact_email = user.email
- company.save()
- user.company = company
- user.admin = True
- user.save()
- return render(request=request, template_name='info/directPage.html', context={'alertMsg': '注册成功', 'dirLink': '/'})
- def user_profile(request): # 用户资料修改
- if request.method == 'GET':
- user = UserHandler.get_by_id(request.session.get('user_id'))
- request.session['current_email'] = user.email
- return render(request, 'info/user_profile.html', {'user': user})
-
- if request.method == 'POST':
- new_email = request.POST.get('email').strip()
- if new_email != request.session['current_email']:
- # 检测是否重复邮箱功能,如果存在就提示错误
- if UserHandler.check_exist_email(new_email):
- return render(request=request, template_name='info/directPage.html', context={'alertMsg': '邮箱已经被占用', 'dirLink': '/home/user/profile/'})
- user = UserHandler.get_by_id(request.session.get('user_id'))
- user.name = request.POST.get('name').strip()
- user.email = new_email
- user.mobile = request.POST.get('mobile').strip()
- user.position = request.POST.get('position').strip()
- del request.session['current_email']
- user.save()
- return HttpResponseRedirect('/home/')
- def user_password(request): # 用户修改密码
- if request.method == 'GET':
- user = UserHandler.get_by_id(request.session.get('user_id'))
- return render(request, 'info/user_password.html')
-
- if request.method == 'POST':
- user = UserHandler.get_by_id(request.session.get('user_id'))
- if check_password(request.POST.get('current_pwd').strip(), user.password):
- user.password = make_password(request.POST.get('password').strip())
- user.save()
- return HttpResponseRedirect('/home/')
- else:
- return render(request=request, template_name='info/directPage.html', context={'alertMsg': '密码错误', 'dirLink': '/home/user/password/'})
-
- def get_upload_file(request):
- return get_file(request)
|