Guest User

Untitled

a guest
Jan 29th, 2018
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 12.66 KB | None | 0 0
  1. from app import db, models
  2. from flask import flash, redirect, render_template, request, session, url_for
  3.  
  4. def userLogin():
  5.   attemptedUser = request.form['loginName']
  6.   attemptedPW = request.form['loginPW']
  7.   userCheck = models.User.query.filter_by(accountName=attemptedUser).first()
  8.   if userCheck == None:
  9.     session['message'] = 'Error Logging In'
  10.   else:
  11.     if attemptedPW == userCheck.password:
  12.       for x in vars(userCheck):
  13.         if x[0] == '_':
  14.           pass
  15.         elif x == 'password':
  16.           pass
  17.         else:
  18.           session[str(x)] = vars(userCheck)[x]
  19.       session['message'] = None
  20.     else:
  21.       session['message'] = 'Error Logging In'      
  22.   return redirect(url_for('index'))
  23.  
  24. def userLogout():
  25.   session.clear()
  26.   return redirect(url_for('index'))
  27.  
  28. def listUsers(filter):
  29.   userName = session['accountName']
  30.   userCheck = models.User.query.filter_by(accountName=userName).first()
  31.   if userCheck.accessLevel == 1:
  32.     allUsers = models.User.query.order_by(models.User.employer).order_by(models.User.accountName).all()
  33.     allClients = models.Client.query.all()
  34.   else:
  35.     employer = userCheck.employer
  36.     getClient = models.Client.query.filter_by(accountName=employer).first()
  37.     allUsers = getClient.hasUsers[:]
  38.     allClients = models.Client.query.all()
  39.   if filter != 'None':
  40.     newBin = []
  41.     for x in allUsers:
  42.       if x.employer == filter:
  43.         newBin.append(x)
  44.     allUsers = newBin
  45.   else:
  46.     filter = None
  47.   return render_template('users.html', userCheck=userCheck, allUsers=allUsers, allClients=allClients, filter=filter)
  48.  
  49. def addNewUser():
  50.   attemptedName = request.form['newUserName']
  51.   attemptedEmail = request.form['newUserEmail']
  52.   attemptedPW = request.form['newUserPassword']
  53.   attemptedAccess = request.form['newUserAccessLevel']
  54.   attemptedWorkplace = request.form['newUserWorkplace']
  55.   nameCheck = models.User.query.filter_by(accountName=attemptedName).first()
  56.   if nameCheck != None:
  57.     message = 'Name Already Used'
  58.     return message
  59.     return redirect(url_for('addUserPage'))
  60.   emailCheck = models.User.query.filter_by(email=attemptedEmail).first()
  61.   if emailCheck != None:
  62.     message = 'Email Already Used'
  63.     return message
  64.     return redirect(url_for('addUserPage'))
  65.   workplaceCheck = models.Client.query.filter_by(accountName=attemptedWorkplace).first()
  66.   newUser = models.User(accountName=attemptedName, password=attemptedPW, email=attemptedEmail, accessLevel=attemptedAccess, workplace=workplaceCheck)
  67.   db.session.add(newUser)
  68.   db.session.commit()
  69.   return redirect(url_for('userPage', wantedName=newUser.accountName))
  70.  
  71. def removeUser():
  72.   attemptedUser = request.form['accountName']
  73.   if attemptedUser == 'jreidl':
  74.     return "Can't delete the architect"
  75.   checkUser = models.User.query.filter_by(accountName=attemptedUser).first()
  76.   if checkUser != None:
  77.     db.session.delete(checkUser)
  78.     db.session.commit()
  79.   return redirect(url_for('usersPage'))
  80.  
  81. def updateUser(updateMe):
  82.   user = models.User.query.filter_by(accountName=updateMe).first()
  83.   if session['accountName'] == user.accountName:
  84.     owner = True
  85.   try:
  86.     attemptedUser = request.form['accountName']
  87.     if attemptedUser == user.accountName:
  88.       pass
  89.     else:
  90.       attemptedUserCheck = models.User.query.filter_by(accountName=attemptedUser).first()
  91.       if attemptedUserCheck == None:
  92.         for x in user.ispConnection:
  93.           x.forUser = attemptedUser
  94.         user.accountName = attemptedUser
  95.         if owner == True:
  96.           session['accountName'] = user.accountName
  97.       else:
  98.         message = 'Name Already Used'
  99.         return message
  100.   except:
  101.     pass
  102.   try:
  103.     attemptedEmail = request.form['accountEmail']
  104.     if attemptedEmail == user.email:
  105.       pass
  106.     else:
  107.       emailCheck = models.User.query.filter_by(email=attemptedEmail).first()
  108.       if emailCheck == None:
  109.         user.email = attemptedEmail
  110.       else:
  111.         message = 'Email Already Used'
  112.         return message
  113.   except:
  114.     pass
  115.   try:
  116.     attemptedPassword = request.form['accountPassword']
  117.     confirmPassword = request.form['confirmPassword']
  118.     if attemptedPassword == '':
  119.       pass
  120.     else:
  121.       if attemptedPassword != confirmPassword:
  122.         return "Passwords don't match"
  123.       elif attemptedPassword == confirmPassword:
  124.         user.password = confirmPassword
  125.   except:
  126.     pass
  127.   try:
  128.     attemptedWorkplace = request.form['accountWorkplace']
  129.     user.workplace = models.Client.query.filter_by(accountName=attemptedWorkplace).first()
  130.   except:
  131.     pass
  132.   try:
  133.     attemptedAccess = request.form['accountAccess']
  134.     user.accessLevel = attemptedAccess
  135.   except:
  136.     pass
  137.   db.session.commit()
  138.   return redirect(url_for('userPage', wantedName=user.accountName))
  139.  
  140. def listClients():
  141.   allClients = models.Client.query.order_by(models.Client.accountName).all()
  142.   userName = session['accountName']
  143.   userCheck = models.User.query.filter_by(accountName=userName).first()
  144.   return render_template('clients.html', userCheck=userCheck, allClients=allClients)
  145.  
  146. def addClient():
  147.   attemptedName = request.form['newClientName']
  148.   clientCheck = models.Client.query.filter_by(accountName=attemptedName).first()
  149.   if clientCheck == None:
  150.     client = models.Client(accountName=attemptedName)
  151.     db.session.add(client)
  152.     db.session.commit()
  153.   return redirect(url_for('clientsPage'))
  154.  
  155. def updateClient(updateMe):
  156.   client = models.Client.query.filter_by(accountName=updateMe).first()
  157.   if client == None:
  158.     attemptedClient = request.form['accountName']
  159.     client.accountName = attemptedClient
  160.     db.session.commit()
  161.   else:
  162.     message = 'Name Already Used'
  163.     return message
  164.   return redirect(url_for('clientsPage'))
  165.  
  166. def removeClient():
  167.   attemptedClient = request.form['accountName']
  168.   if attemptedClient == 'Corona':
  169.     return "Can't delete the architect's home"
  170.   elif attemptedClient == 'Other':
  171.     return "Can't delete the generic"
  172.   checkClient = models.Client.query.filter_by(accountName=attemptedClient).first()
  173.   if checkClient != None:
  174.     for x in checkClient.hasUsers[:]:
  175.       x.workplace = models.Client(accountName='Other')
  176.     db.session.delete(checkClient)
  177.     db.session.commit()
  178.   return redirect(url_for('clientsPage'))
  179.  
  180. def listProjects(filter):
  181.   userName = session['accountName']
  182.   userCheck = models.User.query.filter_by(accountName=userName).first()
  183.   if userCheck.accessLevel == 1:
  184.     allProjects = models.Project.query.order_by(models.Project.forClientRef).order_by(models.Project.projectName).all()    
  185.     allClients = models.Client.query.all()
  186.     if filter != 'None':
  187.       newBin = []
  188.       for x in allProjects:
  189.         if x.forClientRef == filter:
  190.           newBin.append(x)
  191.       allProjects = newBin
  192.     return render_template('projects.html', userCheck=userCheck, allProjects=allProjects, allClients=allClients, filter=filter)
  193.   if userCheck.accessLevel == 2:
  194.     employer = session['employer']
  195.     getEmployer = models.Client.query.filter_by(accountName=employer).first()
  196.     allClients = None
  197.     allProjects = getEmployer.hasProjects[:]
  198.   else:
  199.     getUser = models.User.query.filter_by(accountName=userName).first()
  200.     allClients = None
  201.     allProjects = getUser.projects[:]
  202.   return render_template('projects.html', userCheck=userCheck, allProjects=allProjects, allClients=allClients, filter=filter)
  203.  
  204. def addProject():
  205.   attemptedProjectNumber = request.form['newProjectNumber']
  206.   projectCheck = models.Project.query.filter_by(projectNumber=attemptedProjectNumber).first()
  207.   if projectCheck == None:
  208.     attemptedProjectName = request.form['newProjectName']
  209.     attemptedForClient = request.form['newProjectClient']
  210.     clientCheck = models.Client.query.filter_by(accountName=attemptedForClient).first()
  211.     newProject = models.Project(projectNumber=attemptedProjectNumber, projectName=attemptedProjectName, forClient=clientCheck)
  212.     db.session.add(newProject)
  213.     db.session.commit()
  214.   return redirect(url_for('projectPage', wantedProject=newProject.projectNumber))
  215.  
  216. def removeProject():
  217.   attemptedProject = request.form['projectNumber']
  218.   checkProject = models.Project.query.filter_by(projectNumber=attemptedProject).first()
  219.   if checkProject != None:
  220.     db.session.delete(checkProject)
  221.     db.session.commit()
  222.   return redirect(url_for('projectsPage'))
  223.  
  224. def updateProject(updateMe):
  225.   project = models.Project.query.filter_by(projectNumber=updateMe).first()
  226.   try:
  227.     attemptedProjectNumber = request.form['projectNumber']
  228.     if attemptedProjectNumber == project.projectNumber:
  229.       pass
  230.     else:
  231.       project.projectNumber = attemptedProjectNumber
  232.   except:
  233.     pass
  234.   try:
  235.     attemptedProjectName = request.form['projectName']
  236.     if attemptedProjectName == project.projectName:
  237.       pass
  238.     else:
  239.       project.projectName = attemptedProjectName
  240.   except:
  241.     pass
  242.   try:
  243.     attemptedForClient = request.form['forClient']
  244.     print attemptedForClient
  245.     print project.forClientRef
  246.     if attemptedForClient == project.forClientRef:
  247.       pass
  248.     else:
  249.       clientCheck = models.Client.query.filter_by(accountName=attemptedForClient).first()
  250.       project.forClient = clientCheck
  251.   except:
  252.     pass
  253.   db.session.commit()
  254.   return redirect(url_for('projectsPage'))
  255.  
  256. def addUserToProject(updateMe, forUser):
  257.   project = models.Project.query.filter_by(projectNumber=updateMe).first()
  258.   attemptedUser = forUser
  259.   returnToUser = True
  260.   if forUser == None:
  261.     attemptedUser = request.form['addProjectUser']
  262.     returnToUser = False
  263.   userCheck = models.User.query.filter_by(accountName=attemptedUser).first()
  264.   if userCheck not in project.users:
  265.     userCheck.projects.append(project)
  266.     db.session.commit()
  267.   else:
  268.     print 'user already on the project'
  269.   if returnToUser:
  270.     return redirect(url_for('userPage', wantedName=attemptedUser))
  271.   return redirect(url_for('projectPage', wantedProject=project.projectNumber))
  272.  
  273. def removeUserFromProject(updateMe, forUser):
  274.   print 'updateMe = ' + updateMe
  275.   project = models.Project.query.filter_by(projectNumber=updateMe).first()
  276.   print 'project = ' + project.projectName
  277.   returnToUser = True
  278.   attemptedUser = forUser
  279.   if forUser == None:
  280.     attemptedUser = request.form['removeProjectUser']
  281.     returnToUser = False
  282.   print 'attemptedUser = ' + attemptedUser
  283.   userCheck = models.User.query.filter_by(accountName=attemptedUser).first()
  284.   if userCheck != None:
  285.     userCheck.projects.remove(project)
  286.     db.session.commit()
  287.   if returnToUser:
  288.     return redirect(url_for('userPage', wantedName=attemptedUser))
  289.   return redirect(url_for('projectPage', wantedProject=project.projectNumber))
  290.  
  291. def addUserConnection(updateMe):
  292.   user = models.User.query.filter_by(accountName=updateMe).first()
  293.   attemptedConnectionType = request.form['connectionType']
  294.   attemptedISP = request.form['ispName']
  295.   attemptedNetworkName = request.form['networkName']
  296.   attemptedDownSpeed = int(request.form['downSpeed'])
  297.   attemptedUpSpeed = int(request.form['upSpeed'])
  298.   try:
  299.     newConnection = models.userConnection(forUser=user.accountName, connectionType=attemptedConnectionType, ispName=attemptedISP, networkName=attemptedNetworkName, downSpeed=attemptedDownSpeed, upSpeed=attemptedUpSpeed)
  300.     user.ispConnection.append(newConnection)
  301.     db.session.commit()
  302.   except:
  303.     return 'could not add connection to user'
  304.   return redirect(url_for('userPage', wantedName=user.accountName))
  305.  
  306. def removeUserConnection(projectID, forUser):
  307.   removeForUser = models.User.query.filter_by(accountName=forUser).first()
  308.   connection = models.userConnection.query.filter_by(id=projectID).first()
  309.   try:
  310.     removeForUser.ispConnection.remove(connection)
  311.     db.session.commit()
  312.   except:
  313.     return 'could not remove connection'
  314.   return redirect(url_for('userPage', wantedName=forUser))
  315.  
  316. def addProTitle(updateMe):
  317.   user = models.User.query.filter_by(accountName=updateMe).first()
  318.   attemptedTitle = request.form['proTitles']
  319.   if attemptedTitle == '':
  320.     return redirect(url_for('userPage', wantedName=user.accountName))
  321.   try:
  322.     newTitle = models.professionalTitle(type=attemptedTitle, forUser=user.accountName)
  323.     user.proTitle.append(newTitle)
  324.     db.session.commit()
  325.   except:
  326.     return 'could not add title'
  327.   return redirect(url_for('userPage', wantedName=user.accountName))
  328.  
  329. def removeProTitle(titleID, forUser):
  330.   removeForUser = models.User.query.filter_by(accountName=forUser).first()
  331.   removeID = models.professionalTitle.query.filter_by(id=titleID).first()
  332.   try:
  333.     removeForUser.proTitle.remove(removeID)
  334.     db.session.delete(removeID)
  335.     db.session.commit()
  336.   except:
  337.     return 'could not remove title'
  338.   return redirect(url_for('userPage', wantedName=forUser))
Add Comment
Please, Sign In to add comment