django框架开发-公司内部bug管理系统-全套源代码

 bug管理系统-全套源代码点击下载

from django.db import models

# Create your models here.
from django.contrib.auth.models import User
# 部门表——Dept
# 部门ID——deptid
# 部门名称——deptname
# 部门经理——User
class Deptd(models.Model):
    deptid= models.AutoField(primary_key=True)
    deptname = models.CharField(max_length=20)
    user = models.ForeignKey(User, blank=True, null=True, on_delete=models.DO_NOTHING)


# 项目管理-Project
# 项目ID——id
# 项目名称——name
# 合同金额——price
# 所属部门——Dept
# 开发工作量——day
# 缺陷数——error
# 项目描述——describe
class Project(models.Model):
    id= models.AutoField(primary_key=True)
    name = models.CharField(max_length=80)
    price=models.IntegerField()
    deptd = models.ForeignKey(Deptd, blank=True, null=True, on_delete=models.DO_NOTHING)
    day=models.IntegerField()
    error=models.IntegerField()
    describe=models.CharField(max_length=500)

# 产品表-Product
# 产品ID——pid
# 产品名称——pname
# 产品管理员——User
# 产品描述——pdescribe
class Product(models.Model):
    pid = models.AutoField(primary_key=True)
    name = models.CharField(max_length=100)
    user = models.ForeignKey(User, blank=True, null=True, on_delete=models.DO_NOTHING)
    pdescribe= models.CharField(max_length=500)
    projectid=models.IntegerField(blank=True, null=True)

# 产品版本号表-Pversion
# 版本号ID-vid
# 产品ID——Product
# 发布日期——date
# 版本类型——type
# 产品版本号——vnumber
#创建时写入日期 不改变
import django.utils.timezone as timezone
class Pversion(models.Model):
    vid=models.AutoField(primary_key=True)
    product=models.ForeignKey(Product, blank=True, null=True, on_delete=models.DO_NOTHING)
    vnumber=models.CharField(max_length=10,blank=True, null=True)
    date=models.DateTimeField('保存日期',default = timezone.now)
    type=models.CharField(max_length=10)

# 产品资料管理-Means
# 资料ID——id
# 资料名称——name
# 产品ID——Product
# 产品版本号——Pversion
# 资料类型——程序/样例代码/文档-type
# 资料——filepath
# 资料说明——explain
class Means(models.Model):
    id=models.AutoField(primary_key=True)
    name=models.CharField(max_length=100)
    product=models.ForeignKey(Product, blank=True, null=True, on_delete=models.DO_NOTHING)
    pversion=models.ForeignKey(Pversion, blank=True, null=True, on_delete=models.DO_NOTHING)
    type=models.CharField(max_length=10)
    filepath=models.CharField(max_length=200)
    explain=models.CharField(max_length=500)

# 产品问题管理-Matter
# 问题ID——mid
# 问题标题——mtitle
# 产品ID——pid
# 产品版本号ID——Pversion
# 产品模块——model
# 严重程度——1-5越大越严重-extent
# 要求解决日期——solvedate
# 问题描述——describe
# 提出项目组——proid
# 问题提交日期——mdate
# 问题提交人——quid
# 问题状态——待分配/已分配/已解决/已确认-state
# 解决人——ruid
# 消缺版本号——nvnumber
# 解决说明——mexplain
# 实际解决日期——sdate
# 确认日期——qdate
class Matter(models.Model):
    mid=models.AutoField(primary_key=True)
    mtitle=models.CharField(max_length=150)
    pid=models.IntegerField()
    pversion=models.ForeignKey(Pversion, blank=True, null=True, on_delete=models.DO_NOTHING)
    model=models.CharField(max_length=60)
    extent=models.IntegerField()
    solvedate=models.DateField()
    describe=models.CharField(max_length=200)
    proid=models.IntegerField()
    mdate=models.DateTimeField('保存日期',default = timezone.now)
    quid=models.IntegerField()
    state=models.CharField(max_length=10)
    ruid=models.IntegerField(blank=True, null=True)
    nvnumber=models.IntegerField(blank=True, null=True)
    mexplain=models.CharField(max_length=200,blank=True, null=True)
    sdate=models.DateTimeField(blank=True, null=True)
    qdate=models.DateTimeField(blank=True, null=True)


class Dongtai(models.Model):
    id= models.AutoField(primary_key=True)
    name = models.CharField(max_length=80, blank=True, null=True)
    describe=models.CharField(max_length=200)
    date = models.DateTimeField('保存日期', default=timezone.now)






访问配置

ALLOWED_HOSTS = ['*','localhost']

runserver 172.3.14.125:8000

 

from django.shortcuts import render

# Create your views here.
from django.contrib.auth.models import User
from django.http import HttpResponse,HttpResponseRedirect
from django.contrib.auth.decorators import login_required
from django.contrib.auth import authenticate,login,logout
import os,uuid
from django.contrib import messages
from app.models import Deptd,Project,Product,Pversion,Means,Matter,Dongtai

import time
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger

#系统管理员主页
def index(request):
    user = request.user
    if user.is_authenticated:
        if user.last_name == '系统管理员':

            aa=0
            bb=0
            cc=0
            dd=0
            eelist=Matter.objects.filter(state='待分配').count()

            print(eelist)
            fflist = Matter.objects.filter(state='已分配').count()

            gglist = Matter.objects.filter(state='已解决').count()

            print(gglist)
            hhlist = Matter.objects.filter(state='已确认').count()
            deptid=user.deptid
            xmuserlist=User.objects.filter(deptid=deptid)
            dongtailist=Dongtai.objects.all().order_by('-date')

            paged = Paginator(dongtailist, 8)
            try:
                page = int(request.GET.get('page', 1))
                dongtailist = paged.page(page)
            except:
                dongtailist = paged.page(1)

            content = {}
            content['dongtailist'] = dongtailist

            return render(request, 'index2.html',locals())
        elif user.last_name == '项目开发人员':
            aa = Matter.objects.filter(quid=user.id).count()
            bb = 0
            cc = 0
            cc = 0
            dd = Matter.objects.filter(state='已解决').count()
            eelist = Matter.objects.filter(state='待分配').count()

            print(eelist)
            fflist = Matter.objects.filter(state='已分配').count()

            gglist = Matter.objects.filter(state='已解决').count()

            print(gglist)
            hhlist = Matter.objects.filter(state='已确认').count()
            projextid = user.projectid
            xmuserlist = User.objects.filter(projectid=projextid)
            if projextid == 0:
                xmuserlist = [user]
            xmuserlist = User.objects.filter(projectid=projextid)
            dongtailist = Dongtai.objects.all().order_by('-date')
            paged = Paginator(dongtailist, 8)
            try:
                page = int(request.GET.get('page', 1))
                dongtailist = paged.page(page)
            except:
                dongtailist = paged.page(1)
            content = {}
            content['dongtailist'] = dongtailist
            return render(request, 'xmindex.html', locals())

        elif user.last_name == '产品管理员':
            aa = 0
            bb = Matter.objects.filter(state='待分配').count()
            bb2 = Matter.objects.filter(state='已分配').count()
            bb3 = Matter.objects.filter(state='已解决').count()
            bb=bb+bb2+bb3
            cc = 0
            cc = 0
            dd = 0
            eelist = Matter.objects.filter(state='待分配').count()

            print(eelist)
            fflist = Matter.objects.filter(state='已分配').count()

            gglist = Matter.objects.filter(state='已解决').count()

            print(gglist)
            hhlist = Matter.objects.filter(state='已确认').count()
            deptid = user.deptid
            xmuserlist = User.objects.filter(deptid=deptid)

            dongtailist = Dongtai.objects.all().order_by('-date')
            paged = Paginator(dongtailist, 8)
            try:
                page = int(request.GET.get('page', 1))
                dongtailist = paged.page(page)
            except:
                dongtailist = paged.page(1)
            content = {}
            content['dongtailist'] = dongtailist
            return render(request, 'cpindex.html', locals())


        elif user.last_name == '产品开发人员':
            aa = 0
            bb = 0
            cc=Matter.objects.filter(ruid=user.id).count()

            dd = 0
            eelist = Matter.objects.filter(state='待分配').count()

            print(eelist)
            fflist = Matter.objects.filter(state='已分配').count()

            gglist = Matter.objects.filter(state='已解决').count()

            print(gglist)
            hhlist = Matter.objects.filter(state='已确认').count()
            projextid = user.projectid
            xmuserlist = User.objects.filter(projectid=projextid)
            if projextid == 0:
                xmuserlist = [user]
            xmuserlist = User.objects.filter(projectid=projextid)
            dongtailist = Dongtai.objects.all().order_by('-date')
            paged = Paginator(dongtailist, 8)
            try:
                page = int(request.GET.get('page', 1))
                dongtailist = paged.page(page)
            except:
                dongtailist = paged.page(1)

            content = {}
            content['dongtailist'] = dongtailist
            return render(request, 'kfindex.html',locals())


    else:
        return HttpResponseRedirect('/denglu/')

def souname(request):
    user = request.user
    if user.is_authenticated:
        sousuo=request.POST.get('sousuode')
        print(sousuo)
        userlist=User.objects.all()
        userd=[]
        for uu in userlist:
            if sousuo in uu.first_name:
                userd.append(uu)
        userlist=userd
        projuctlist = Project.objects.all()
        deptdlist = Deptd.objects.all()
        paged = Paginator(userlist, 10)
        try:
            page = int(request.GET.get('page', 1))
            userlist = paged.page(page)
        except:
            userlist = paged.page(1)

        content = {}
        content['userlist'] = userlist
        jueselist = ['系统管理员', '项目开发人员', '产品开发人员', '产品管理员']
        if user.last_name == '系统管理员':
            return render(request, 'showuser.html', locals())
        else:
            return render(request, 'jshowuser.html', locals())
    else:
        return HttpResponseRedirect('/denglu/')



#项目管理员主页
def xmindex(request):
    return render(request,'xmindex.html')

#产品管理员主页
def cpindex(request):
    return render(request,'cpindex.html')

#产品开发主页
def kfindex(request):
    return render(request,'kfindex.html')


#注册
def zhuce(request):
    user = request.user
    if user.is_authenticated:
        if user.last_name == '系统管理员':
            if request.POST:
                username = request.POST.get("username")
                password = request.POST.get("password")
                firstname = request.POST.get("firstname")
                deptid = request.POST.get("deptid")
                lastname = request.POST.get("lastname")
                projectid = request.POST.get("projectid")
                email = request.POST.get("email")
                print(username)
                print(password)
                print(firstname)
                print(deptid)
                print(lastname)
                print(projectid)
                if projectid=='':
                    projectid=0
                    print('kong')
                if lastname=='':
                    lastname=0
                    print('kong')
                try:
                    User.objects.create_user(username=username, password=password, first_name=firstname, deptid=deptid,
                                             last_name=lastname, projectid=projectid,email=email)
                    print('用户创建成功')
                    print(username)
                    return render(request, 'tzsucess.html')
                except:
                    projuctlist = Project.objects.all()
                    deptdlist = Deptd.objects.all()
                    jueselist = ['系统管理员', '项目开发人员', '产品开发人员', '产品管理员']
                    return render(request, 'zhuce.html', locals())


            else:
                projuctlist = Project.objects.all()
                deptdlist = Deptd.objects.all()
                jueselist = ['系统管理员', '项目开发人员', '产品开发人员','产品管理员']
                return render(request, 'zhuce.html',locals())
        else:
            logout(request)
            return HttpResponseRedirect('/denglu/')
    else:
        return HttpResponseRedirect('/denglu/')
#登录
def denglu(request):
    if request.POST:
        username=request.POST.get('username')
        password = request.POST.get('password')
        print(username)
        user = authenticate(username=username, password=password)
        if user is not None:
            login(request,user)
            print('登录成功')
            if user.last_name=='系统管理员':
                return HttpResponseRedirect('/index/')
            elif user.last_name=='项目开发人员':
                return HttpResponseRedirect('/index/')
            elif user.last_name=='产品管理员':
                return HttpResponseRedirect('/index/')
            elif user.last_name=='产品开发人员':
                return HttpResponseRedirect('/index/')
        else:
            msg='账号或密码错误'
            return render(request,'denglu.html',locals())
    else:
        return render(request, 'denglu.html')
#退出
def exitd(request):
    logout(request)
    return HttpResponseRedirect('/index/')

#添加部门表
def appdept(request):
    user = request.user
    if user.is_authenticated:
        if user.last_name == '系统管理员':
            if request.POST:
                deptname=request.POST.get('deptname')
                userid = request.POST.get('userid')
                try:
                    Deptd.objects.create(deptname=deptname,user_id=userid)
                    return render(request, 'tzbumensucess.html')
                except:

                    return HttpResponseRedirect('/appdept/')

            else:
                userlist=User.objects.all()
                return render(request, 'appdept.html',locals())
        else:
            logout(request)
            return HttpResponseRedirect('/denglu/')
    else:
        return HttpResponseRedirect('/denglu/')

#查看部门表
def showdept(request):
    user = request.user
    if user.is_authenticated:
        if user.last_name == '系统管理员':
            deptdlist=Deptd.objects.all()
            userlist = User.objects.all()
            return render(request, 'showdept.html',locals())
        else:
            return HttpResponseRedirect('/jshowdept/')

    else:
        return HttpResponseRedirect('/denglu/')

#仅查看部门表
def jshowdept(request):
    user = request.user
    if user.is_authenticated:
        deptdlist=Deptd.objects.all()
        userlist = User.objects.all()
        return render(request, 'jshowdept.html',locals())
    else:
        return HttpResponseRedirect('/denglu/')
#修改部门表
def updetp(request,deptdid):
    if request.POST:

        deptname = request.POST.get('deptname')
        userid = request.POST.get('userid')
        Deptd.objects.filter(deptid=deptdid).update(deptname=deptname,user_id=userid)
        deptd = Deptd.objects.get(deptid=deptdid)
        userlist = User.objects.all()
        return HttpResponseRedirect('/showdept/')
    else:
        deptd=Deptd.objects.get(deptid=deptdid)
        userlist=User.objects.all()
        return render(request, 'updept.html', locals())

#添加产品表
def appproduct(request):
    user = request.user
    if user.is_authenticated:
        if user.last_name == '系统管理员':
            if request.POST:
                pname=request.POST.get('pname')
                userid = request.POST.get('userid')
                pdescribe = request.POST.get('pdescribe')
                projectid = request.POST.get('projectid')
                print(projectid)
                if pname=='' or userid=='':
                    userlist = User.objects.filter(last_name='产品管理员')
                    return render(request, 'appproduct.html', locals())
                try:
                    Product.objects.create(name=pname,user_id=userid,pdescribe=pdescribe,projectid=projectid)
                    return render(request, 'tzappproduct.html')
                except:
                    return HttpResponseRedirect('/appproduct/')

            else:
                userlist = User.objects.filter(last_name='产品管理员')
                projectlist=Project.objects.all()

                return render(request, 'appproduct.html', locals())
        else:
            logout(request)
            return HttpResponseRedirect('/denglu/')
    else:
        return HttpResponseRedirect('/denglu/')
#显示产品表
def showproduct(request):
    user = request.user
    if user.is_authenticated:
        if user.last_name == '系统管理员':
            productlist=Product.objects.all()
            userlist = User.objects.all()
            paged = Paginator(productlist, 10)
            try:
                page = int(request.GET.get('page', 1))
                productlist = paged.page(page)
            except:
                productlist = paged.page(1)

            content = {}
            content['productlist'] = productlist
            return render(request, 'showproduct.html', locals())
        else:
            return HttpResponseRedirect('/jshowproduct/')
    else:
            return HttpResponseRedirect('/denglu/')
#显示产品表
def jshowproduct(request):
    user = request.user
    if user.is_authenticated:
        productlist=Product.objects.all()
        userlist = User.objects.all()
        paged = Paginator(productlist, 10)
        try:
            page = int(request.GET.get('page', 1))
            productlist = paged.page(page)
        except:
            productlist = paged.page(1)

        content = {}
        content['productlist'] = productlist
        return render(request, 'jshowproduct.html', locals())
    else:
            return HttpResponseRedirect('/denglu/')

#修改产品表
#修改部门表
def upproduct(request,pid):
    if request.POST:
        try:
            pname = request.POST.get('pname')
            userid = request.POST.get('userid')
            pdescribe = request.POST.get('pdescribe')
            Product.objects.filter(pid=pid).update(name=pname,user_id=userid,pdescribe=pdescribe)
            product = Product.objects.get(pid=pid)
            userlist = User.objects.all()
            return render(request, 'tzupproduct.html',locals())
        except:
            return HttpResponseRedirect('/showproduct/')
    else:
        product=Product.objects.get(pid=pid)
        userlist=User.objects.all()
        return render(request, 'upproduct.html', locals())


# 产品版本号表-Pversion
# 版本号ID-vid
# 产品ID——Product
# 发布日期——date
# 版本类型——type
# 产品版本号——vnumber
#添加产品版本号
def apppversion(request):
    user = request.user
    if user.is_authenticated:
        if user.last_name == '产品管理员':
            if request.POST:
                productid=request.POST.get('productid')
                vnumber = request.POST.get('vnumber')
                type = request.POST.get('type')
                try:
                    Pversion.objects.create(product_id=productid,vnumber=vnumber,type=type)
                    return render(request, 'tzappbanben.html')
                except:

                    return HttpResponseRedirect('/apppversion/')

            else:
                productlist=Product.objects.filter()

                return render(request, 'apppversion.html', locals())
        else:
            logout(request)
            return HttpResponseRedirect('/denglu/')
    else:
        return HttpResponseRedirect('/denglu/')

#显示版本号087799


# 产品资料管理-Means
# 资料ID——id
# 资料名称——name
# 产品ID——Product
# 产品版本号——Pversion
# 资料类型——程序/样例代码/文档-type
# 资料——filepath
# 资料说明——explain
def appmeans(request):
    user = request.user
    if user.is_authenticated:
        if user.last_name == '产品管理员':
            if request.POST:
                name=request.POST.get('name')
                productid = request.POST.get('productid')
                pversionid = request.POST.get('pversionid')
                type = request.POST.get('type')
                filepath = request.POST.get('filepath')
                explain = request.POST.get('explain')
                try:
                    Means.objects.create(name=name,product_id=productid,pversion_id=pversionid,type=type,filepath=filepath,explain=explain)
                    print('添加成功')
                    return HttpResponseRedirect('/index/')
                except:
                    return HttpResponseRedirect('/appmeans/')
            else:
                productlist=Product.objects.all()

                return render(request, 'appmeans.html', locals())
        else:
            logout(request)
            return HttpResponseRedirect('/denglu/')
    else:
        return HttpResponseRedirect('/denglu/')
#ajax产品下拉框显示版本
#导入JsonResponse返回json数据
from django.http import JsonResponse
def banben(request):
    productid=request.GET.get('productid')
    print(productid)
    data = list(Pversion.objects.filter(product_id=productid).values())
    print(data)
    return JsonResponse(data, safe=False)

#选择部门显示 部门下项目
def xiangmu(request):
    deptid=request.GET.get('deptid')
    data = list(Project.objects.filter(deptd_id=deptid).values())

    return JsonResponse(data, safe=False)

def deptselect(request,deptid):
    user = request.user
    if user.is_authenticated:
        userlist = User.objects.filter(deptid=deptid)
        projuctlist = Project.objects.filter(deptd_id=deptid)
        deptdlist = Deptd.objects.all()
        paged = Paginator(userlist, 10)
        try:
            page = int(request.GET.get('page', 1))
            userlist = paged.page(page)
        except:
            userlist = paged.page(1)
        content = {}
        content['userlist'] = userlist
        jueselist = ['系统管理员', '项目开发人员', '产品开发人员', '产品管理员']
        if user.last_name == '系统管理员':
            return render(request, 'showuser.html', locals())
        else:
            return render(request, 'jshowuser.html', locals())

    else:
        return HttpResponseRedirect('/denglu/')


def projectselect(request,projectid):
    user = request.user
    if user.is_authenticated:

        userlist = User.objects.filter(projectid=projectid)
        projuctlist = Project.objects.filter(id=projectid)
        deptdlist = Deptd.objects.all()
        paged = Paginator(userlist, 10)
        try:
            page = int(request.GET.get('page', 1))
            userlist = paged.page(page)
        except:
            userlist = paged.page(1)
        content = {}
        content['userlist'] = userlist
        jueselist = ['系统管理员', '项目开发人员', '产品开发人员', '产品管理员']
        if user.last_name == '系统管理员':
            return render(request, 'showuser.html', locals())
        else:
            return render(request, 'jshowuser.html', locals())
    else:
        return HttpResponseRedirect('/denglu/')

def jueseselect(request,juese):
        user = request.user
        if user.is_authenticated:

            userlist = User.objects.filter(last_name=juese)
            projuctlist = Project.objects.all()
            deptdlist = Deptd.objects.all()
            paged = Paginator(userlist, 10)
            try:
                page = int(request.GET.get('page', 1))
                userlist = paged.page(page)
            except:
                userlist = paged.page(1)
            content = {}
            content['userlist'] = userlist
            jueselist = ['系统管理员', '项目开发人员', '产品开发人员', '产品管理员']
            if user.last_name == '系统管理员':
                return render(request, 'showuser.html', locals())
            else:
                return render(request, 'jshowuser.html', locals())
        else:
            return HttpResponseRedirect('/denglu/')




#上传文件 添加资料管理
def fileupload(request):
    user = request.user
    if user.is_authenticated:
        if request.method=='POST':
            name = request.POST.get('name')
            productid = request.POST.get('productid')
            pversionid = request.POST.get('pversionid')
            type = request.POST.get('type')
            filepaths = []
            explain = request.POST.get('explain')
            print(name)
            print(productid)

            files=request.FILES.getlist('filepath')
            print(pversionid)
            print(files)

            for file in files:
                filename=file.name
                filetype=filename.split('.')[-1]
                print(filename)
                print(filetype)
                uploadpath = "app/static/file"
                if not os.path.exists(uploadpath):
                    os.mkdir(uploadpath)
                uploadname = str(uuid.uuid1()) + "." + filetype
                path = uploadpath + os.sep + uploadname
                with open(path, "wb+") as fp:
                    for chunk in file.chunks():
                        fp.write(chunk)

                filepath = "/static/file/" + uploadname

                Means.objects.create(name=name, product_id=productid, pversion_id=pversionid, type=type, filepath=uploadname,
                                     explain=explain)
                print('添加成功')

                describedd = user.first_name+'上传:' +name+ '版本文件成功'
                Dongtai.objects.create(name=user.first_name, describe=describedd,date=datetime.datetime.now())
            return HttpResponseRedirect('/index/')
        else:
            return HttpResponseRedirect('/appmeans/')
    else:
        return HttpResponseRedirect('/denglu/')

def showmiaoshu(request,mid):
    meansexp=Means.objects.get(id=mid)
    return render(request, 'showmeansexp.html', locals())


def showmeans(request):
    productlist = Product.objects.all()
    return render(request, 'showmeans.html', locals())


#ajax产品下拉框显示版本
#导入JsonResponse返回json数据
from django.http import JsonResponse
def wenjiandd(request):
    pversionid=request.GET.get('pversionid')
    print(pversionid)
    data = list(Means.objects.filter(pversion_id=pversionid).values())
    print(data)
    return JsonResponse(data, safe=False)

def meanswj(request):
    meansid=request.GET.get('meansid')
    print(meansid)
    mm=Means.objects.filter(id=meansid).values('filepath')
    for ii in mm:
        print(ii)
        kk=ii['filepath']
    data = list(Means.objects.filter(id=meansid).values('filepath'))
    print(data)
    return JsonResponse(data, safe=False)

# 问题标题:<input name="mtitle"><br>
#     产品名称:<input name="pid"><br>
#     产品版本号:<input name="pversionid"><br>
#     产品模块:<input name="model"><br>
#     严重程度:<input name="extent"><br>
#     要求解决日期:<input name="solvedate"><br>
#     问题描述:<textarea name="describe"></textarea>
#     提出项目组:<input name="pid"><br>
#     问题提交日期:<input name="mdate"><br>
def appmatter(request):
    user = request.user
    if user.is_authenticated:
        user = request.user
        if user.last_name == '项目开发人员':
            if request.POST:
                mtitle=request.POST.get('mtitle')
                pid = request.POST.get('pid')
                pversionid = request.POST.get('pversionid')
                model = request.POST.get('model')
                extent = request.POST.get('extent')
                describe = request.POST.get('describe')
                solvedate = request.POST.get('solvedate')
                proid = request.POST.get('proid')
                quid = request.POST.get('quid')
                print(mtitle)

                try:
                    Matter.objects.create(mtitle=mtitle,pid=pid,pversion_id=pversionid,model=model,extent=extent,solvedate=solvedate,
                                          describe=describe,proid=proid,quid=quid,state='待分配',mdate=datetime.datetime.now())
                    print('添加成功')
                    discribedd='添加问题:'+mtitle
                    Dongtai.objects.create(name=user.first_name,describe=discribedd,date=datetime.datetime.now())
                    return HttpResponseRedirect('/index/')
                except:
                    return HttpResponseRedirect('/appmatter/')

            else:
                productlist=Product.objects.all()
                projectlist=Project.objects.all()

                return render(request, 'appmatter.html',locals())
        else:
            logout(request)
            return HttpResponseRedirect('/denglu/')

    else:
        return HttpResponseRedirect('/denglu/')

#显示问题表
def showmatter(request):
    user = request.user
    if user.is_authenticated:
        if user.last_name == '产品管理员':
            matterlist = Matter.objects.all()
            projectlist = Project.objects.all()
            productlist = Product.objects.all()
            pversionlist = Pversion.objects.all()
            userlist = User.objects.all()
            return render(request, 'showmatter.html', locals())
        if user.last_name == '项目开发人员':
            return HttpResponseRedirect('/qshowmatter/')
        if user.last_name == '产品开发人员':
            return HttpResponseRedirect('/kshowmatter/')

        else:
            return HttpResponseRedirect('/jshowmatter/')
    else:
        return HttpResponseRedirect('/denglu/')

def kshowmatter(request):
        user = request.user
        if user.is_authenticated:
            if user.last_name == '产品开发人员':
                matterlist = Matter.objects.all()
                projectlist = Project.objects.all()
                productlist = Product.objects.all()
                pversionlist = Pversion.objects.all()
                userlist = User.objects.all()
                return render(request, 'kshowmatter.html', locals())
            if user.last_name == '项目开发人员':
                return HttpResponseRedirect('/qshowmatter/')

            else:
                return HttpResponseRedirect('/jshowmatter/')
        else:
            return HttpResponseRedirect('/denglu/')

#仅显示问题表
def jshowmatter(request):
    matterlist=Matter.objects.all()
    projectlist = Project.objects.all()
    productlist=Product.objects.all()
    pversionlist=Pversion.objects.all()
    userlist=User.objects.all()
    return render(request, 'jshowmatter.html', locals())

#显示确认问题表
def qshowmatter(request):
    user = request.user
    if user.is_authenticated:
        if user.last_name == '项目开发人员':
            matterlist=Matter.objects.all()
            projectlist = Project.objects.all()
            productlist=Product.objects.all()
            pversionlist=Pversion.objects.all()
            userlist=User.objects.all()
            return render(request, 'qshowmatter.html', locals())
        else:
            return HttpResponseRedirect('/index/')


    else:
        return HttpResponseRedirect('/denglu/')
#问题表修改
import datetime
def upmatter(request,mid):
    user = request.user
    if user.is_authenticated:
        if user.last_name == '产品开发人员':
            if request.POST:
                nvnumber = request.POST.get('nvnumber')
                mexplain = request.POST.get('mexplain')
                if True:
                    Matter.objects.filter(mid=mid).update( nvnumber=nvnumber, mexplain=mexplain, sdate=datetime.datetime.now())
                    print('修改成功')
                    Matter.objects.filter(mid=mid).update(state='已解决')
                    matter=Matter.objects.get(mid=mid)

                    describedd =user.first_name+'提交问题:' + matter.mtitle + '已经解决'
                    Dongtai.objects.create(name=user.first_name, describe=describedd,date=datetime.datetime.now())
                    return render(request, 'tzupmatter.html')
            else:
                matter = Matter.objects.get(mid=mid)
                projectlist = Project.objects.all()
                productlist = Product.objects.all()
                pversionlist = Pversion.objects.all()
                userlist = User.objects.all()
                return render(request, 'upmatter.html', locals())
        else:
            logout(request)
            HttpResponseRedirect('/denglu/')
    else:
        return HttpResponseRedirect('/denglu/')



def qupmatter(request, mid):
    user = request.user
    if user.is_authenticated:
        if user.last_name == '项目开发人员':
            try:
                Matter.objects.filter(mid=mid).update(qdate=datetime.datetime.now())
                print('修改成功')
                Matter.objects.filter(mid=mid).update(state='已确认')
                matterdd=Matter.objects.get(mid=mid)
                describedd = user.first_name + '确认Bug问题:' + matterdd.mtitle + '已经确认解决'
                Dongtai.objects.create(name=user.first_name, describe=describedd,date=datetime.datetime.now())
                return render(request, 'tzqumater.html')
            except:
                return HttpResponseRedirect('/index/')
        else:
            return HttpResponseRedirect('/index/')

    else:
        return HttpResponseRedirect('/denglu/')





#分配解决人
def fenpeimatter(request,mid):
    user = request.user
    if user.is_authenticated:
        if user.last_name == '产品管理员':
            if request.POST:
                ruid = request.POST.get('ruid')
                print(ruid)
                if True:
                    Matter.objects.filter(mid=mid).update(ruid=ruid)
                    print('修改成功')
                    Matter.objects.filter(mid=mid).update(state='已分配')
                    matter=Matter.objects.get(mid=mid)
                    userdd=User.objects.get(id=ruid)
                    describedd='分配问题:'+matter.mtitle+'-给:'+userdd.first_name
                    Dongtai.objects.create(name=user.first_name,describe=describedd,date=datetime.datetime.now())
                    return render(request, 'tzfenpei.html')
            else:
                matter = Matter.objects.get(mid=mid)
                ddii =matter.proid
                projectlist = Project.objects.all()
                productlist = Product.objects.all()
                pversionlist = Pversion.objects.all()
                deptdlist=Deptd.objects.all()
                userlist = User.objects.filter(projectid=ddii)
                print(userlist)
                return render(request, 'fenpeimatter.html', locals())
        else:
            logout()
            return HttpResponseRedirect('/denglu/')

    else:
        return HttpResponseRedirect('/denglu/')



#项目表添加
def appproject(request):
    user = request.user
    if user.is_authenticated:
        if user.last_name == '系统管理员':
            if request.POST:
                name = request.POST.get('name')
                price =request.POST.get('price')
                deptid = request.POST.get('deptid')
                day = request.POST.get('day')
                describe = request.POST.get('describe')
                try:
                    Project.objects.create(name=name,price=price,deptd_id=deptid,day=day,describe=describe,error=0
                                          )
                    print('添加成功')
                    return render(request, 'tzappproject.html')
                except:
                    return HttpResponseRedirect('/appproject/')

            else:
                deptlist=Deptd.objects.all()
                return render(request, 'appproject.html',locals())
        else:
            logout(request)
            return HttpResponseRedirect('/denglu/')

    else:
        return HttpResponseRedirect('/denglu/')

#显示项目表
def showproject(request):
    user = request.user
    if user.is_authenticated:
        if user.last_name == '系统管理员':
            projectlist =Project.objects.all()
            deptdlist=Deptd.objects.all()
            paged = Paginator(projectlist, 10)
            try:
                page = int(request.GET.get('page', 1))
                projectlist = paged.page(page)
            except:
                projectlist = paged.page(1)

            content = {}
            content['projectlist'] = projectlist
            return render(request, 'showproject.html', locals())

        else:

            return HttpResponseRedirect('/jshowproject/')
    else:
        return HttpResponseRedirect('/denglu/')

#修改项目
#显示项目表
def jshowproject(request):
    user = request.user
    if user.is_authenticated:
        projectlist =Project.objects.all()
        deptdlist=Deptd.objects.all()
        paged = Paginator(projectlist, 10)
        try:
            page = int(request.GET.get('page', 1))
            projectlist = paged.page(page)
        except:
            projectlist = paged.page(1)

        content = {}
        content['projectlist'] = projectlist
        return render(request, 'jshowproject.html', locals())
    else:
        return HttpResponseRedirect('/denglu/')

def upproject(request,pid):
    user = request.user
    if user.is_authenticated:
        if user.last_name == '系统管理员':
            if request.POST:
                name = request.POST.get('name')
                price = request.POST.get('price')
                deptid = request.POST.get('deptid')
                day = request.POST.get('day')
                describe = request.POST.get('describe')
                if True:
                    Project.objects.filter(id=pid).update(name=name, price=price, deptd_id=deptid, day=day, describe=describe)
                    print('修改成功')
                    return HttpResponseRedirect('/showproject/')
            else:
                project =Project.objects.get(id=pid)
                deptdlist = Deptd.objects.all()
                return render(request, 'upproject.html', locals())
        else:
            logout(request)
            return HttpResponseRedirect('/denglu/')
    else:
            return HttpResponseRedirect('/denglu/')



#查询用户表
def showuser(request):
    user = request.user
    if user.is_authenticated:
        if user.last_name == '系统管理员':
            userlist = User.objects.all()
            projuctlist=Project.objects.all()
            deptdlist=Deptd.objects.all()
            paged = Paginator(userlist, 10)
            try:
                page = int(request.GET.get('page', 1))
                userlist = paged.page(page)
            except:
                userlist = paged.page(1)

            content = {}
            content['userlist'] = userlist
            jueselist = ['系统管理员', '项目开发人员', '产品开发人员', '产品管理员']
            return render(request, 'showuser.html', locals())
        else:
            return HttpResponseRedirect('/jshowuser/')
    else:
        return HttpResponseRedirect('/denglu/')

#查询用户表
def jshowuser(request):

    user = request.user
    if user.is_authenticated:
        userlist = User.objects.all()
        projuctlist=Project.objects.all()
        deptdlist=Deptd.objects.all()
        paged = Paginator(userlist, 10)
        try:
            page = int(request.GET.get('page', 1))
            userlist = paged.page(page)
        except:
            userlist = paged.page(1)

        content = {}
        content['userlist'] = userlist
        return render(request, 'jshowuser.html', locals())
    else:
        return HttpResponseRedirect('/denglu/')


#修改用户信息
def upuser(request,uid):
    user = request.user
    if user.is_authenticated:
        if user.last_name == '系统管理员':
            if request.POST:
                password = request.POST.get('password')
                firstname = request.POST.get('firstname')
                email = request.POST.get('email')
                deptdid = request.POST.get('deptdid')
                juese = request.POST.get('juese')
                projectid = request.POST.get('projectid')
                if projectid=='':
                    projectid=0

                if password=='':
                    User.objects.filter(id=uid).update(first_name=firstname,email=email,deptid=deptdid,last_name=juese,projectid=projectid)
                    userlist = User.objects.filter(id=uid)
                    uid=uid
                    deptdlist = Deptd.objects.all()
                    projectlist = Project.objects.all()
                    jueselist = ['系统管理员',  '项目开发人员', '产品管理员','产品开发人员']
                    return render(request, 'tzupuser.html',locals())
                else:
                    user = User.objects.get(id=uid)
                    user.set_password(password)
                    user.save()
                    User.objects.filter(id=uid).update(first_name=firstname, deptid=deptdid, last_name=juese,
                                                       projectid=projectid)
                    userlist = User.objects.filter(id=uid)
                    deptdlist = Deptd.objects.all()
                    projectlist = Project.objects.all()
                    jueselist = ['系统管理员', '项目开发人员', '产品管理员', '产品开发人员']
                    return render(request, 'tzupuser.html', locals())

            else:
                userlist=User.objects.filter(id=uid)
                deptdlist=Deptd.objects.all()
                projectlist=Project.objects.all()
                jueselist=['系统管理员','项目开发人员','产品管理员','产品开发人员']
                return render(request, 'upuser.html', locals())
        else:
            logout(request)
            return HttpResponseRedirect('/denglu/')
    else:
        return HttpResponseRedirect('/denglu/')

def gerenxinxi(request,uid):
    user = request.user
    if user.is_authenticated:
            if request.POST:
                password = request.POST.get('password')
                firstname = request.POST.get('firstname')
                email = request.POST.get('email')

                if password=='':
                    User.objects.filter(id=uid).update(first_name=firstname,email=email)
                    userlist = User.objects.filter(id=uid)
                    deptdlist = Deptd.objects.all()
                    projectlist = Project.objects.all()
                    jueselist = ['系统管理员',  '项目开发人员', '产品管理员','产品开发人员']
                    return render(request, 'tzxiugaigerenxinxi.html',locals())

                else:
                    user = User.objects.get(id=uid)
                    user.set_password(password)
                    user.save()
                    User.objects.filter(id=uid).update(first_name=firstname,email=email)
                    logout(request)
                    return HttpResponseRedirect('/denglu/')

            else:
                userlist=User.objects.filter(id=uid)
                deptdlist=Deptd.objects.all()
                projectlist=Project.objects.all()
                jueselist=['系统管理员','项目开发人员','产品管理员','产品开发人员']
                return render(request, 'gerenxinxi.html', locals())

    else:
        return HttpResponseRedirect('/denglu/')
#文件下载
def wenjianxiazai(request):
    return render(request,'wenjianxiazai.html')

from django.http import StreamingHttpResponse

def filexiazai2(request,filename):
    filepath = os.getcwd() + '/app/static/file/' + filename
    def fileiter(path,chunk=512):
        with open(path,'rb')as filed:
            while True:
                content=filed.read(chunk)
                if content:
                    yield content
                else:
                    break
    response=StreamingHttpResponse(fileiter(filepath))
    response['Content-Type']='application/octet-stream'
    response['Content-Disposition']='attachment;filename={0}'.format(filename)
    return response

#创建用户成功跳转
def tzsucess(request):

    return render(request,'tzsucess.html')


def goajax(request,username):
    userlist = User.objects.all()
    flag = 'true'
    for uu in userlist:
        if username==uu.username :
            flag = 'false'
    return HttpResponse(flag)















 

URL

from django.contrib import admin
from django.urls import path

from app.views import index,zhuce,denglu,exitd,appdept,appproduct,apppversion,appmeans,appmatter,appproject
from app.views import showuser,upuser,showdept,updetp,showproduct,upproduct,banben,fileupload
from app.views import showmeans,wenjiandd,meanswj,showmiaoshu,showproject,upproject,showmatter,jshowmatter
from app.views import upmatter,fenpeimatter,jshowuser,jshowdept,jshowproduct,qshowmatter,qupmatter,xmindex,cpindex,kfindex

from app.views import gerenxinxi,jshowproject,kshowmatter,wenjianxiazai,filexiazai2,tzsucess,goajax,xiangmu,deptselect

from app.views import projectselect,jueseselect,souname


urlpatterns = [
    path('admin/', admin.site.urls),
path('index/', index),
path('zhuce/', zhuce),
path('denglu/', denglu),
path('exitd/', exitd),
path('appdept/', appdept),
path('appproduct/', appproduct),
path('apppversion/', apppversion),
path('appmeans/', appmeans),
path('appmatter/', appmatter),
path('appproject/', appproject),

path('showuser/', showuser),
path('upuser/<int:uid>/', upuser),
path('showdept/', showdept),
path('updept/<int:deptdid>/',updetp),
path('showproduct/', showproduct),
path('upproduct/<int:pid>/',upproduct),
path('banben/', banben),
path('fileupload/', fileupload),
path('showmeans/', showmeans),
path('wenjiandd/', wenjiandd),
path('meanswj/', meanswj),
path('showmiaoshu/<int:mid>/',showmiaoshu),
path('showproject/', showproject),
path('upproject/<int:pid>/',upproject),
path('showmatter/', showmatter),
path('upmatter/<int:mid>/',upmatter),
path('fenpeimatter/<int:mid>/',fenpeimatter),
path('jshowuser/', jshowuser),
path('jshowdept/', jshowdept),
path('jshowproduct/', jshowproduct),
path('qshowmatter/', qshowmatter),
path('qupmatter/<int:mid>/',qupmatter),
path('jshowmatter/', jshowmatter),
path('xmindex/', xmindex),
path('cpindex/', cpindex),
path('kfindex/', kfindex),
path('gerenxinxi/<int:uid>/', gerenxinxi),
path('jshowproject/', jshowproject),
path('kshowmatter/', kshowmatter),
path('wenjianxiazai/', wenjianxiazai),
path('filexiazai2/<str:filename>/', filexiazai2),
path('tzsucess/', tzsucess),
path('goajax/<str:username>/', goajax),
path('xiangmu/', xiangmu),
path('deptselect/<int:deptid>/', deptselect),
path('projectselect/<int:projectid>/', projectselect),
path('jueseselect/<str:juese>/', jueseselect),
path('souname/', souname),


]

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

huanghong6956

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值