From 0ca9c2a7e9770eb8ba3def3824e4ca349fece3ef Mon Sep 17 00:00:00 2001 From: wcharles Date: Fri, 1 Nov 2019 10:46:44 +0800 Subject: [PATCH] add main login --- groups/forms.py | 1 - groups/views.py | 3 +- safesite/forms.py | 48 ++-- safesite/templates/login.html | 487 ++++++++++++++++++---------------- safesite/views.py | 28 +- 5 files changed, 304 insertions(+), 263 deletions(-) diff --git a/groups/forms.py b/groups/forms.py index 51ef4e36..955f244d 100644 --- a/groups/forms.py +++ b/groups/forms.py @@ -26,4 +26,3 @@ class UserForm(forms.Form): #headimgurl = forms.CharField(label="头像", max_length=200, required=False, widget=forms.TextInput(attrs={'class': 'form-control'})) usecomp = forms.ModelChoiceField(label="所属公司", queryset=s_models.Partment.objects.all(), widget=forms.Select(attrs={'class': 'form-control'})) - diff --git a/groups/views.py b/groups/views.py index ea1df17e..8cf049da 100644 --- a/groups/views.py +++ b/groups/views.py @@ -87,8 +87,9 @@ def company_userdetail(request, uid): except s_models.User.DoesNotExist: raise Http404("User does not exist") - #UserForm.set_usecomp(s_models.Partment.objects.all()) + #UserForm.set_usecomp(s_models.Partment.objects.filter(group__id=1)) user_form = UserForm(model_to_dict(user)) + return render(request, 'groups/company_userdetail.html', locals()) def groups_userupdate(request): diff --git a/safesite/forms.py b/safesite/forms.py index 147d9f7c..18ab7929 100644 --- a/safesite/forms.py +++ b/safesite/forms.py @@ -1,23 +1,25 @@ -from django import forms - -class UserForm(forms.Form): - username = forms.CharField(max_length=30) - password = forms.CharField(max_length=30) - -class CompanyInfoForm(forms.Form): - company_nature = ( - (0, '国企'), - (1, '私企'), - ) - name = forms.CharField(max_length=64, label='公司名称', widget=forms.TextInput(attrs={'size': '50'})) - nature = forms.ChoiceField(choices=company_nature, label='企业性质') - address = forms.CharField(max_length=128, label='公司地址', widget=forms.TextInput(attrs={'size': '50'})) - fixed_assets = forms.IntegerField(label='固定资产', widget=forms.TextInput(attrs={'size': '50'})) - website = forms.CharField(max_length=64, label='公司网址', widget=forms.TextInput(attrs={'size': '50'})) - peoplenum = forms.IntegerField(label='公司人数', widget=forms.TextInput(attrs={'size': '50'})) - legalperson = forms.CharField(max_length=24, label='法人代表', widget=forms.TextInput(attrs={'size': '50'})) - legalperson_phone = forms.CharField(max_length=24, label='法人电话', widget=forms.TextInput(attrs={'size': '50'})) - liaison = forms.CharField(max_length=24, label='联系人', widget=forms.TextInput(attrs={'size': '50'})) - liaison_phone = forms.CharField(max_length=24, label='联系人电话', widget=forms.TextInput(attrs={'size': '50'})) - introduce = forms.CharField(label='公司概况', widget=forms.Textarea) - +from django import forms +from captcha.fields import CaptchaField + +class UserForm(forms.Form): + #username = forms.CharField(max_length=30) + #password = forms.CharField(max_length=30) + captcha = CaptchaField(label='验证码', error_messages={"invalid": "验证码错误"}) + +class CompanyInfoForm(forms.Form): + company_nature = ( + (0, '国企'), + (1, '私企'), + ) + name = forms.CharField(max_length=64, label='公司名称', widget=forms.TextInput(attrs={'size': '50'})) + nature = forms.ChoiceField(choices=company_nature, label='企业性质') + address = forms.CharField(max_length=128, label='公司地址', widget=forms.TextInput(attrs={'size': '50'})) + fixed_assets = forms.IntegerField(label='固定资产', widget=forms.TextInput(attrs={'size': '50'})) + website = forms.CharField(max_length=64, label='公司网址', widget=forms.TextInput(attrs={'size': '50'})) + peoplenum = forms.IntegerField(label='公司人数', widget=forms.TextInput(attrs={'size': '50'})) + legalperson = forms.CharField(max_length=24, label='法人代表', widget=forms.TextInput(attrs={'size': '50'})) + legalperson_phone = forms.CharField(max_length=24, label='法人电话', widget=forms.TextInput(attrs={'size': '50'})) + liaison = forms.CharField(max_length=24, label='联系人', widget=forms.TextInput(attrs={'size': '50'})) + liaison_phone = forms.CharField(max_length=24, label='联系人电话', widget=forms.TextInput(attrs={'size': '50'})) + introduce = forms.CharField(label='公司概况', widget=forms.Textarea) + diff --git a/safesite/templates/login.html b/safesite/templates/login.html index 11d9529f..6598d2ed 100644 --- a/safesite/templates/login.html +++ b/safesite/templates/login.html @@ -1,233 +1,256 @@ - - - - - - - 安全生产管理系统 - - - - - - - - - - - - -
- - - - -
- - - -
- -
-
- - - - - + + + + + + + 安全生产管理系统 + + + + + + + + + + + + +
+ + + + +
+ + + +
+ +
+
+ + + + + + \ No newline at end of file diff --git a/safesite/views.py b/safesite/views.py index f4628577..9b35bc1e 100644 --- a/safesite/views.py +++ b/safesite/views.py @@ -5,6 +5,7 @@ from .models import User,Trouble,Dickey,Partment,Dicclass,Train,Drill,TroubleAcc from django.template import RequestContext from django.views.decorators.csrf import csrf_exempt from django.core import serializers +from .forms import UserForm import json from uuid import UUID import os @@ -286,19 +287,27 @@ def upfile(req): def login(req): if req.session.get('userid', None): return redirect('index') + if req.method == 'POST': + user_form = UserForm(req.POST) username = req.POST.get('username') password = req.POST.get('password') user = User.objects.filter(username__exact = username, password__exact = password,deletemark=1) if user: - #比较成功,跳转index - req.session['userid'] = user[0].userid - # req.session.set_expiry(60*30) - return redirect('index') + if user_form.is_valid(): + # 比较成功,跳转index + req.session['userid'] = user[0].userid + # req.session.set_expiry(60*30) + return redirect('index') + else: + msg = '验证码错误' + return render(req, 'login.html', locals()) else: - return render(req,'login.html',{'msg':'用户名或密码错误!'}) + msg = '用户名或密码错误' + return render(req,'login.html', locals()) else: - return render(req,'login.html') + user_form = UserForm() + return render(req,'login.html', locals()) def index(req): if not req.session.get('userid', None): @@ -6021,6 +6030,13 @@ def companyinfo(req): return render(req, 'companyinfo.html', {'companyinfo': companyinfo_form}) +import json +from captcha.models import CaptchaStore +from captcha.helpers import captcha_image_url +def refresh_captcha(request): + hashkey = CaptchaStore.generate_key() + image_url = captcha_image_url(hashkey) + return HttpResponse(json.dumps({'key': hashkey, 'image_url': image_url}), content_type='application/json') def dump(obj): print('\n'.join(['%s:%s' % item for item in obj.__dict__.items()])) \ No newline at end of file