diff --git a/gestaoRaul/clients/__pycache__/views.cpython-313.pyc b/gestaoRaul/clients/__pycache__/views.cpython-313.pyc index 6406532..2d14d09 100644 Binary files a/gestaoRaul/clients/__pycache__/views.cpython-313.pyc and b/gestaoRaul/clients/__pycache__/views.cpython-313.pyc differ diff --git a/gestaoRaul/db.sqlite3 b/gestaoRaul/db.sqlite3 index eacf04f..cf62d00 100644 Binary files a/gestaoRaul/db.sqlite3 and b/gestaoRaul/db.sqlite3 differ diff --git a/gestaoRaul/gestaoRaul/__pycache__/decorators.cpython-313.pyc b/gestaoRaul/gestaoRaul/__pycache__/decorators.cpython-313.pyc new file mode 100644 index 0000000..a0c85a7 Binary files /dev/null and b/gestaoRaul/gestaoRaul/__pycache__/decorators.cpython-313.pyc differ diff --git a/gestaoRaul/gestaoRaul/__pycache__/settings.cpython-313.pyc b/gestaoRaul/gestaoRaul/__pycache__/settings.cpython-313.pyc index d23c5c2..26176f0 100644 Binary files a/gestaoRaul/gestaoRaul/__pycache__/settings.cpython-313.pyc and b/gestaoRaul/gestaoRaul/__pycache__/settings.cpython-313.pyc differ diff --git a/gestaoRaul/gestaoRaul/__pycache__/urls.cpython-313.pyc b/gestaoRaul/gestaoRaul/__pycache__/urls.cpython-313.pyc index 3099b68..8fd74b6 100644 Binary files a/gestaoRaul/gestaoRaul/__pycache__/urls.cpython-313.pyc and b/gestaoRaul/gestaoRaul/__pycache__/urls.cpython-313.pyc differ diff --git a/gestaoRaul/gestaoRaul/decorators.py b/gestaoRaul/gestaoRaul/decorators.py index 6caa715..bd3f9bc 100644 --- a/gestaoRaul/gestaoRaul/decorators.py +++ b/gestaoRaul/gestaoRaul/decorators.py @@ -1,5 +1,7 @@ from django.utils.decorators import method_decorator from django.http import HttpResponseForbidden, HttpResponseRedirect +from django.shortcuts import render, redirect + def group_required(groupName): @@ -11,7 +13,7 @@ def group_required(groupName): else: return HttpResponseForbidden('tu nao tem acesso rapa') else: - return HttpResponseForbidden('Direcionar para tela de login aqui') + return redirect('login') return wrapper return decorator diff --git a/gestaoRaul/gestaoRaul/urls.py b/gestaoRaul/gestaoRaul/urls.py index df33d14..2e3097f 100644 --- a/gestaoRaul/gestaoRaul/urls.py +++ b/gestaoRaul/gestaoRaul/urls.py @@ -18,7 +18,7 @@ from django.contrib import admin from django.urls import path, include urlpatterns = [ - path('admin/', admin.site.urls), + path('admin/', admin.site.urls, name='admin'), path('', include('home.urls')), path('login/', include('login.urls')), path('products/', include('products.urls')), diff --git a/gestaoRaul/home/__pycache__/views.cpython-313.pyc b/gestaoRaul/home/__pycache__/views.cpython-313.pyc index 67f7f0e..8b5aceb 100644 Binary files a/gestaoRaul/home/__pycache__/views.cpython-313.pyc and b/gestaoRaul/home/__pycache__/views.cpython-313.pyc differ diff --git a/gestaoRaul/home/views.py b/gestaoRaul/home/views.py index 9b656a9..594c90a 100644 --- a/gestaoRaul/home/views.py +++ b/gestaoRaul/home/views.py @@ -22,7 +22,7 @@ def home(request): produtos_mais_vendidos = ProductComanda.objects.values('product').annotate( quantidade=Count('product'), nome=F('product__name') ).order_by('-quantidade')[:5] - return render(request, 'home.html', {'total_pagamentos': total_pagamentos, 'pagamentos': pagamentos, 'qdt_pagamentos': qdt_pagamentos, 'produtos_mais_vendidos': produtos_mais_vendidos, 'ticekMedio': ticekMedio}) + return render(request, 'home.html', {'total_pagamentos': total_pagamentos, 'pagamentos': pagamentos, 'qdt_pagamentos': qdt_pagamentos, 'produtos_mais_vendidos': produtos_mais_vendidos, 'ticekMedio': ticekMedio, }) @group_required(groupName='Gerente') def chartCuisine(request): diff --git a/gestaoRaul/login/__pycache__/urls.cpython-313.pyc b/gestaoRaul/login/__pycache__/urls.cpython-313.pyc new file mode 100644 index 0000000..66de9af Binary files /dev/null and b/gestaoRaul/login/__pycache__/urls.cpython-313.pyc differ diff --git a/gestaoRaul/login/__pycache__/views.cpython-313.pyc b/gestaoRaul/login/__pycache__/views.cpython-313.pyc new file mode 100644 index 0000000..711f878 Binary files /dev/null and b/gestaoRaul/login/__pycache__/views.cpython-313.pyc differ diff --git a/gestaoRaul/login/templates/login.html b/gestaoRaul/login/templates/login.html index db0a31d..d36e536 100644 --- a/gestaoRaul/login/templates/login.html +++ b/gestaoRaul/login/templates/login.html @@ -1,13 +1,32 @@ - +{% load static %} + + - - Login - - -
- {% csrf_token %} - {{ form.as_p }} - -
- + + Login Form + + + + + + + +
+

+ +

+
+
+ {% csrf_token %} + {{ form.as_p }} +
+ +
+
+
+ + +
+ + \ No newline at end of file diff --git a/gestaoRaul/login/urls.py b/gestaoRaul/login/urls.py index 65294c6..ea4cd32 100644 --- a/gestaoRaul/login/urls.py +++ b/gestaoRaul/login/urls.py @@ -3,4 +3,5 @@ from . import views urlpatterns = [ path('', views.login_view, name='login'), + path('logout', views.logout_view, name='logout'), ] \ No newline at end of file diff --git a/gestaoRaul/login/views.py b/gestaoRaul/login/views.py index 6079b85..aee3e67 100644 --- a/gestaoRaul/login/views.py +++ b/gestaoRaul/login/views.py @@ -1,7 +1,13 @@ from django.shortcuts import render, redirect -from django.contrib.auth import authenticate, login +from django.contrib.auth import authenticate, login, logout from django.contrib.auth.forms import AuthenticationForm + +def logout_view(request): + logout(request) + return redirect('login') + + def login_view(request): if request.method == 'POST': form = AuthenticationForm(data=request.POST) @@ -11,7 +17,7 @@ def login_view(request): user = authenticate(username=username, password=password) if user is not None: login(request, user) - return redirect('home') # Substitua 'home' pelo nome da sua URL inicial + return redirect('home') else: pass # Mensagem de erro: Credenciais inválidas diff --git a/gestaoRaul/templates/base.html b/gestaoRaul/templates/base.html index 23fc834..d8a904c 100644 --- a/gestaoRaul/templates/base.html +++ b/gestaoRaul/templates/base.html @@ -6,6 +6,7 @@ + @@ -19,30 +20,37 @@
diff --git a/gestaoRaul/templates/static/base.css b/gestaoRaul/templates/static/base.css index 00256f0..d340ad4 100644 --- a/gestaoRaul/templates/static/base.css +++ b/gestaoRaul/templates/static/base.css @@ -25,18 +25,16 @@ text-align: center; .nav-bar { display: flex; justify-content: space-between; - padding: 0.1rem 2rem; + padding: 0.1rem 1rem; } .logo { display: flex; + margin-top: 5px; align-items: center; } -.logo h1 { - color: #fff; -} .nav-list { display: flex; @@ -45,7 +43,7 @@ text-align: center; .nav-list ul { display: flex; - justify-content: center; + justify-content: space-between; list-style: none; } @@ -60,11 +58,13 @@ text-align: center; font-weight: 400; } -.login-button button { +.logout-button{ + display: grid; + grid-template-columns: repeat(2, 1fr); + /* justify-content: center; */ border: none; - padding: 10px 15px; border-radius: 5px; - margin-top: 10px; + margin-top: 20px; } .login-button button a { @@ -82,14 +82,7 @@ text-align: center; display: none; } -/* .dropbtn { - background-color: #04AA6D; - color: white; - padding: 16px; - font-size: 16px; - border: none; - } - */ + .dropdown { position: relative; display: inline-block; @@ -135,7 +128,7 @@ text-align: center; .nav-item { display: none; } - .login-button { + .logout-button { display: none; } .mobile-menu-icon { @@ -156,11 +149,13 @@ text-align: center; display: block; padding-top: 1.2rem; } - .mobile-menu .login-button { + .mobile-menu .logout-button { display: block; + justify-items: center; + justify-self: center; padding: 1rem 2rem; } - .mobile-menu .login-button button { + .mobile-menu .logout-button button { width: 100%; } .open { diff --git a/gestaoRaul/templates/static/login/css/login.css b/gestaoRaul/templates/static/login/css/login.css new file mode 100644 index 0000000..82f4a6d --- /dev/null +++ b/gestaoRaul/templates/static/login/css/login.css @@ -0,0 +1,99 @@ +/* @import url('https://fonts.googleapis.com/css2?family=Oswald&display=swap'); */ +* +{ + margin: 0; + padding: 0; + box-sizing: border-box; + font-family: 'Oswald', sans-serif; +} +body +{ + display: flex; + justify-content: center; + align-items: center; + min-height: 100vh; + /* background: #060c21; */ +} +.c-form +{ + position: relative; + background: #060c21d8; + border: 1px solid #3f3f3f; + box-shadow: 5px 5px 10px rgba(87, 86, 86, 0.788); + width: 350px; + padding: 40px 40px 60px; + border-radius: 10px; + text-align: center; +} +.c-form::before +{ + content: ''; + position: absolute; + top: -2px; + right: -2px; + bottom: -2px; + left: -2px; + background: linear-gradient(315deg,#591309,#fee4c1); + z-index: -1; + transform: skew(2deg,1deg); + border-radius: 10px; +} +.c-form h2 +{ + color: #fff; + font-weight: 500; + text-transform: uppercase; + letter-spacing: 5px; + transition: transform 0.2s; +} + +.c-form h2:hover +{ + scale: 1.05; + transition: transform 0.2s; +} +.c-form .c-input +{ + margin-top: 40px; + text-align: left; +} +.c-form .c-input .c-inputBox +{ + margin-top: 10px; +} +.c-form .c-input .c-inputBox label +{ + display: block; + color: #fff; + margin-bottom: 5px; + font-size: 18px; + letter-spacing: 1px; +} +.c-form .c-input .c-inputBox input +{ + position: relative; + width: 100%; + height: 40px; + border: none; + outline: none; + padding: 5px 15px; + background:linear-gradient(315deg,#591309,#fee4c1) ; + color: #fff; + font-size: 18px; + border-radius: 10px; +} +.c-form .c-input .c-inputBox input[type="submit"] +{ + cursor: pointer; + margin-top: 20px; + letter-spacing: 1px; +} +.c-form .c-input .c-inputBox input[type="submit"]:hover +{ + background:linear-gradient(315deg,#fee4c1,#591309) ; +} +.c-form .c-input .c-inputBox input[type="submit"]:active +{ + color: rgba(255, 255, 255, 0.521); + background:linear-gradient(315deg,#fee4c1,#591309) ; +} diff --git a/gestaoRaul/templates/static/login/js/login.js b/gestaoRaul/templates/static/login/js/login.js new file mode 100644 index 0000000..e69de29 diff --git a/gestaoRaul/templates/static/mesas/css/mesas.css b/gestaoRaul/templates/static/mesas/css/mesas.css index 210ed56..81e222d 100644 --- a/gestaoRaul/templates/static/mesas/css/mesas.css +++ b/gestaoRaul/templates/static/mesas/css/mesas.css @@ -2,8 +2,8 @@ display: grid; grid-template-columns: repeat(3, 2fr); gap: 20px; - max-width: 800px; /* Define a largura máxima do grid */ - margin: 0 auto; /* Centraliza o grid na página */ + max-width: 800px; + margin: 0 auto; } .card { @@ -13,7 +13,7 @@ border-radius: 15px; box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.2); text-align: center; - line-height: 120px; /* Centraliza o texto verticalmente */ + line-height: 120px; font-size: 20px; font-weight: bold; color: #333; @@ -26,11 +26,10 @@ border-radius: 15px; box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.2); text-align: center; - line-height: 50px; /* Centraliza o texto verticalmente */ + line-height: 50px; font-size: 10px; font-weight: bold; color: #333; - /* position: absolute; */ transition: transform 0.2s; cursor: move; } diff --git a/gestaoRaul/templates/static/midia/favicon/apple-touch-icon.png b/gestaoRaul/templates/static/midia/favicon/apple-touch-icon.png new file mode 100644 index 0000000..12abe01 Binary files /dev/null and b/gestaoRaul/templates/static/midia/favicon/apple-touch-icon.png differ diff --git a/gestaoRaul/templates/static/midia/favicon/favicon-96x96.png b/gestaoRaul/templates/static/midia/favicon/favicon-96x96.png new file mode 100644 index 0000000..c410b50 Binary files /dev/null and b/gestaoRaul/templates/static/midia/favicon/favicon-96x96.png differ diff --git a/gestaoRaul/templates/static/midia/favicon/favicon.ico b/gestaoRaul/templates/static/midia/favicon/favicon.ico new file mode 100644 index 0000000..d16a3b5 Binary files /dev/null and b/gestaoRaul/templates/static/midia/favicon/favicon.ico differ diff --git a/gestaoRaul/templates/static/midia/favicon/favicon.svg b/gestaoRaul/templates/static/midia/favicon/favicon.svg new file mode 100644 index 0000000..468b235 --- /dev/null +++ b/gestaoRaul/templates/static/midia/favicon/favicon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gestaoRaul/templates/static/midia/favicon/site.webmanifest b/gestaoRaul/templates/static/midia/favicon/site.webmanifest new file mode 100644 index 0000000..ccf313a --- /dev/null +++ b/gestaoRaul/templates/static/midia/favicon/site.webmanifest @@ -0,0 +1,21 @@ +{ + "name": "MyWebSite", + "short_name": "MySite", + "icons": [ + { + "src": "/web-app-manifest-192x192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "/web-app-manifest-512x512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable" + } + ], + "theme_color": "#ffffff", + "background_color": "#ffffff", + "display": "standalone" +} \ No newline at end of file diff --git a/gestaoRaul/templates/static/midia/favicon/web-app-manifest-192x192.png b/gestaoRaul/templates/static/midia/favicon/web-app-manifest-192x192.png new file mode 100644 index 0000000..48b3104 Binary files /dev/null and b/gestaoRaul/templates/static/midia/favicon/web-app-manifest-192x192.png differ diff --git a/gestaoRaul/templates/static/midia/favicon/web-app-manifest-512x512.png b/gestaoRaul/templates/static/midia/favicon/web-app-manifest-512x512.png new file mode 100644 index 0000000..1714c94 Binary files /dev/null and b/gestaoRaul/templates/static/midia/favicon/web-app-manifest-512x512.png differ diff --git a/gestaoRaul/templates/static/midia/icons/logout.svg b/gestaoRaul/templates/static/midia/icons/logout.svg new file mode 100644 index 0000000..76d4717 --- /dev/null +++ b/gestaoRaul/templates/static/midia/icons/logout.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file