def setUpTestData(cls): superuser = user = User.objects.create_superuser( cls.super_username, "*****@*****.**", cls.super_password) superuser.save() store = Store(name="store", user=superuser) store.save() department1 = Department(name="d1", store=store) department1.save() department2 = Department(name="d2", store=store) department2.save() cls.department3 = Department(name="d3", store=store) cls.department3.save() user1 = User.objects.create_user(cls.username1, "*****@*****.**", cls.password1) user1.save() employee1 = Employee(user=user1, phonenumber="0505050505", department=department1) employee1.save() user2 = User.objects.create_user(cls.username2, "*****@*****.**", cls.password2) user2.save() cls.employee2 = Employee(user=user2, phonenumber="0505050506", department=department2) cls.employee2.save()
def setUpTestData(cls): superuser = user = User.objects.create_superuser( "boss", "*****@*****.**", "bossmdp") superuser.save() store = Store(name="store", user=superuser) store.save() department = Department(name="d1", store=store) department.save() user = User.objects.create_user(cls.username, "*****@*****.**", cls.password) user.save() employee = Employee(user=user, phonenumber="0505050505", department=department) employee.save()
def setUpTestData(cls): superuser = user = User.objects.create_superuser( "super", "*****@*****.**", "mdp") superuser.save() store = Store(name="store", user=superuser) store.save() department1 = Department(name=cls.dep1_name, store=store) department1.save() department2 = Department(name="d2", store=store) department2.save() cls.department3 = Department(name="d3", store=store) cls.department3.save()
def create_departement(self): self.department_foot = Department(name="Football", store=self.store) self.department_foot.save() self.department_tennis = Department(name="Tennis", store=self.store) self.department_tennis.save() self.department_running = Department(name="Running", store=self.store) self.department_running.save()
class PopulateDatabase: def start(self): self.create_super_user() self.create_store() self.create_departement() self.create_user() self.create_product() def create_super_user(self): self.superuser = User.objects.create_superuser("admin", "*****@*****.**", "admin") self.superuser.save() def create_store(self): self.store = Store(name="store", user=self.superuser) self.store.save() def create_departement(self): self.department_foot = Department(name="Football", store=self.store) self.department_foot.save() self.department_tennis = Department(name="Tennis", store=self.store) self.department_tennis.save() self.department_running = Department(name="Running", store=self.store) self.department_running.save() def create_user(self): self.user1 = User.objects.create_user("Michel", "*****@*****.**", "password") self.user1.save() self.employee1 = Employee(user=self.user1, phonenumber="0505050505", department=self.department_foot) self.employee1.save() self.user2 = User.objects.create_user("Jean", "*****@*****.**", "password") self.user2.save() self.employee2 = Employee(user=self.user2, phonenumber="0505050505", department=self.department_tennis) self.employee2.save() self.user3 = User.objects.create_user("Alberto", "*****@*****.**", "password") self.user3.save() self.employee3 = Employee(user=self.user3, phonenumber="0505050505", department=self.department_running) self.employee3.save() def create_product(self): self.product1 = Product(name="Ballon low", quantity=78, ref="B1", price=25.0, department_id=self.department_foot.id) self.product2 = Product(name="Ballon medium", quantity=456, ref="B2", price=50.0, department_id=self.department_foot.id) self.product3 = Product(name="Ballon high", quantity=1025, ref="B3", price=99.0, department_id=self.department_foot.id) self.product4 = Product(name="Raquette low", quantity=55, ref="T1", price=18.0, department_id=self.department_tennis.id) self.product5 = Product(name="Raquette medium", quantity=789, ref="T2", price=45.0, department_id=self.department_tennis.id) self.product6 = Product(name="Raquette high", quantity=999, ref="T3", price=150.0, department_id=self.department_tennis.id) self.product7 = Product(name="Chaussure low", quantity=66, ref="C1", price=32.0, department_id=self.department_running.id) self.product8 = Product(name="Chaussure medium", quantity=666, ref="C2", price=56.0, department_id=self.department_running.id) self.product9 = Product(name="Chaussure high", quantity=6666, ref="C3", price=124.0, department_id=self.department_running.id) self.product1.save() self.product2.save() self.product3.save() self.product4.save() self.product5.save() self.product6.save() self.product7.save() self.product8.save() self.product9.save()
def employe(request): error = False error_message = "" if request.user.is_superuser: if request.method == 'POST' and request.POST.get( 'add'): # check if post request comes from correct button if not User.objects.filter(username="******").exists(): new_user = User.objects.create_user( username="******", password="******", email="") new_user.save() try: default_dep = Department.objects.get(name="") except: default_dep = Department(name="", store_id="1") default_dep.save() new_emp = Employee(user=new_user, phonenumber="", department_id=default_dep.id) new_emp.save() else: error, error_message = True, "un employé par défaut existe déjà" elif request.method == 'POST' and request.POST.get( 'modify'): # check if post request comes from correct button selected_emp_id = request.POST.getlist('action_user') id_employees = list(Employee.objects.values_list('id', flat=True)) id_employees.sort() username = request.POST.getlist('name_user') password = request.POST.getlist('password_user') phone = request.POST.getlist('phone_user') email = request.POST.getlist('email_user') dep = request.POST.getlist('dept_user') for emp_id in selected_emp_id: emp = Employee.objects.get(pk=emp_id) emp.user.username = username[id_employees.index( int(emp_id))] # TODO check if username already exist error, error_message = emp.doesNameExists() emp.user.set_password(password[id_employees.index( int(emp_id))]) emp.phonenumber = phone[id_employees.index(int(emp_id))] emp.user.email = email[id_employees.index(int(emp_id))] try: emp.department = Department.objects.get( name=dep[id_employees.index(int(emp_id))]) except: error, error_message = True, "département invalide" if not error: if emp.department.name is "": error, error_message = True, "département invalide" if not error: emp.user.save() emp.save() elif request.method == 'POST' and request.POST.get( 'delete'): # check if post request comes from correct button selected_emp = request.POST.getlist('action_user') employees_to_delete = Employee.objects.filter( id__in=selected_emp).select_related() for employee in employees_to_delete: employee.user.delete() employee.delete() header = [ 'Action', "Nom d'utilisateur", 'Mot de passe', 'Téléphone', 'Email', 'Rayon', 'Date de création' ] query_employee_results = Employee.objects.all().select_related() return render( request, 'StoreManager/employee.html', { 'username': request.user.username, 'header': header, 'data': query_employee_results, 'error': error, 'error_message': error_message }) else: return render(request, 'StoreManager/forbiddenAccess.html', locals())
def produit(request): error = False error_message = "" superuser = request.user.is_superuser if request.method == 'POST' and request.POST.get( 'add'): # check if post request comes from correct button if not Product.objects.filter(name="").exists(): if superuser: try: default_dep = Department.objects.get(name="") except: default_dep = Department(name="", store_id="1") default_dep.save() new_product = Product(name="", quantity=0, ref="", price=0.0, department_id=default_dep.id) else: new_product = Product( name="", quantity=0, ref="", price=0.0, department_id=request.user.employee.department.id) if not error: new_product.save() else: error = True, error_message = "un produit par défaut existe déjà" elif request.method == 'POST' and request.POST.get( 'modify'): # check if post request comes from correct button selected_products_id = request.POST.getlist('action_product') id_products = list(Product.objects.values_list('id', flat=True)) id_products.sort() name_products = request.POST.getlist('name_product') price_products = request.POST.getlist('price_product') quantity_products = request.POST.getlist('quantity_product') ref_products = request.POST.getlist('ref_product') if superuser: departments = request.POST.getlist('department') for product_id in selected_products_id: product = Product.objects.get(pk=product_id) if not superuser and product.department.id is not request.user.employee.department.id: error = True, error_message = "Vous ne pouvez pas modifier tous les produits séléctionnés (mauvais département)" else: product.name = name_products[id_products.index( int(product_id))] product.price = price_products[id_products.index( int(product_id))] product.quantity = quantity_products[id_products.index( int(product_id))] product.ref = ref_products[id_products.index(int(product_id))] if superuser: department_name = departments[id_products.index( int(product_id))] try: dep = Department.objects.get(name=department_name) product.department = dep except: error, error_message = True, "le département n'existe pas" if not error: error, error_message = product.doesRefExists() if not error: error, error_message = product.isNotValid() if not error: product.save() elif request.method == 'POST' and request.POST.get( 'delete'): # check if post request comes from correct button selected_products = request.POST.getlist( 'action_product') # get id of selected products for product in Product.objects.filter(id__in=selected_products): if product.department.id is not request.user.employee.department.id and not superuser: error = True, error_message = "Vous ne pouvez pas supprimer tous les produits séléctionnés (mauvais département)" else: product.delete() header = ['Action', 'Nom', 'Prix', 'Quantité', 'Ref', 'Nom Rayon'] query_results = Product.objects.all( ) # TODO à modifier en fonction des droits du user return render( request, 'StoreManager/produit.html', { 'username': request.user.username, 'header': header, 'data': query_results, 'error': error, 'error_message': error_message, 'superuser': superuser })
def rayon(request): error = False error_message = "" if request.user.is_superuser: if request.method == 'POST' and request.POST.get( 'add'): # check if post request comes from correct button if not Department.objects.filter(name="").exists(): new_dep = Department(name="", store_id=1) new_dep.save() else: error = True error_message = "un rayon par défaut existe déjà" elif request.method == 'POST' and request.POST.get( 'modify'): # check if post request comes from correct button selected_dep_id = request.POST.getlist('action_dep') id_deps = list(Department.objects.values_list('id', flat=True)) id_deps.sort() dep_name = request.POST.getlist('dep_name') username = request.POST.getlist('username') for dep_id in selected_dep_id: dep = Department.objects.get(pk=dep_id) dep.name = dep_name[id_deps.index(int(dep_id))] error, error_message = dep.doesNameExists() if not error: dep.save() if username[id_deps.index(int(dep_id))]: try: user = User.objects.get( username=username[id_deps.index(int(dep_id))]) employee = Employee.objects.get(user=user) employee.department = dep employee.save() except: error = True error_message = "l'employé n'existe pas" elif request.method == 'POST' and request.POST.get( 'delete'): # check if post request comes from correct button selected_dep = request.POST.getlist( 'action_dep') # get id of selected products Department.objects.filter( id__in=selected_dep).delete() # delete selected product header = ['Action', 'Rayon', "Nom d'utilisateur"] query_employee_results = Employee.objects.all().select_related() query_dept = Department.objects.all() custom_data = [] for dept in query_dept: for emp in query_employee_results: if dept.name == emp.department.name: custom_data.append([dept, emp]) if custom_data[-1][0].name != dept.name: custom_data.append([dept]) return render( request, 'StoreManager/rayon.html', { 'username': request.user.username, 'header': header, 'data': custom_data, 'error': error, 'error_message': error_message }) else: return render(request, 'StoreManager/forbiddenAccess.html', locals())