Exemple #1
0
 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()
Exemple #2
0
 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()
Exemple #3
0
 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()
Exemple #6
0
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())
Exemple #7
0
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
        })
Exemple #8
0
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())