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
-
-
-
-
+
+ Login Form
+
+
+
+
+
+
+
+
+
+
\ 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