From 2fee146176287abc5f5e77f1e9a9032f01b7fa15 Mon Sep 17 00:00:00 2001 From: Alaguraj0361 Date: Thu, 5 Feb 2026 19:03:57 +0530 Subject: [PATCH] Implement a restaurant reservation system including a new model, website form, and controller logic. --- .../__pycache__/main.cpython-310.pyc | Bin 1907 -> 2075 bytes .../dine360_reservation/controllers/main.py | 11 +++++++-- .../restaurant_reservation.cpython-310.pyc | Bin 4034 -> 4840 bytes .../models/restaurant_reservation.py | 23 ++++++++++++++++-- .../views/reservation_templates.xml | 7 ++++-- 5 files changed, 35 insertions(+), 6 deletions(-) diff --git a/addons/dine360_reservation/controllers/__pycache__/main.cpython-310.pyc b/addons/dine360_reservation/controllers/__pycache__/main.cpython-310.pyc index 1cfab85d83fb6dd8e33a8eac683a8e20b6400fa1..6522f029f19c6309e3261dee070f27c408723960 100644 GIT binary patch delta 603 zcmYjPPixdb6rY#LznvtL?6$UA6f7m$RjVFEMMPOI7DNzRknN>}omjH&ZkFtn+Ayn! z_Tr&J8H9>GBp<<(pTIAXFX6$X7bn{y&g1?2@q52_c=MZn3ux+j1gZD#{Y&Fm;5Z*o4{4J%U9vb@MCS>ATFkgbJ@j z1r?gWLKlWGg(F;HGs^tadW*-M!e;?%3NL|DdxJJ2q$3{ee+4w9fbx|Yp~ahm9>7d= z?p(CBgUT~x{(nROyKt)4QYPvmrc^%Ajq|(*d#Jr2@9VE__?=;#CB5j*W}2lVp5`>{ zu7$(3kZp$RkHVL2s7#(GqqnL2qW^q7SK*zQS2!8*N+0j@ys~*RjPrC9S2l}yTz8c{ z;o11C8l=5wkmPYiqRBrd-sQc@%Hr`L>dE)U6Y%8^;^Kgtur9yOBh{SQU zSBwtS!2I%qzHwfT`$pv|R-e|C`n9$(Q0w+4t1aofYf;*As$=ID!t@V2x>187MXr-# wh};N?8rZM6rs__1-bz*JuU*IxinA`qTFUaSdUuv_Red`f%+(+ShAvK%Kf1G6I{*Lx diff --git a/addons/dine360_reservation/controllers/main.py b/addons/dine360_reservation/controllers/main.py index b6b1ee0..8d5888d 100644 --- a/addons/dine360_reservation/controllers/main.py +++ b/addons/dine360_reservation/controllers/main.py @@ -1,6 +1,7 @@ from odoo import http, _ from odoo.http import request import datetime +import pytz class TableReservationController(http.Controller): @@ -24,8 +25,14 @@ class TableReservationController(http.Controller): start_time_str = post.get('start_time') # Format: 2024-05-20T18:00 num_people = int(post.get('num_people', 1)) - # Convert start_time to datetime object - start_time = datetime.datetime.strptime(start_time_str, '%Y-%m-%dT%H:%M') + # Convert start_time to datetime object and localize to restaurant timezone (Brampton) + restaurant_tz = pytz.timezone('America/Toronto') + local_start = datetime.datetime.strptime(start_time_str, '%Y-%m-%dT%H:%M') + local_start = restaurant_tz.localize(local_start) + + # Convert to UTC for Odoo + start_time = local_start.astimezone(pytz.utc).replace(tzinfo=None) + # Standard duration of 1 hour for now end_time = start_time + datetime.timedelta(hours=1) diff --git a/addons/dine360_reservation/models/__pycache__/restaurant_reservation.cpython-310.pyc b/addons/dine360_reservation/models/__pycache__/restaurant_reservation.cpython-310.pyc index 13e366a410d86d7c768eef1940d6027a3e278885..63babc58daeaa38529b8aa7e267dcf4710c511cf 100644 GIT binary patch delta 1668 zcmah}&2JM&6rb5Iuh(BRNkjMuEJ{Fj0wjh&8%o-cq%=~&q9j0Tpzh*XVkh=)m|cUi za^$Lsgj7|PqB&87WFO&J{)1k6tI{4<;$F_}p=uB9dmEE}O5OGRJn#M9%$s>1`_17W zkEY#J${_H(c(hr4)U%a7NDEt|rw=m1lv=zPe~&PgX`6&;HeEJ0MA<;Vdx#D+T(%d*@i*`UQid!T)Y4Rt6RVWX%KFX(=gonogqNpZ*?Sl-7b z*qO+5_#sh9@#q4{oqe8>Qj{j156Wj~s|F65WRBd zgWlt2@0#1-CbvDC-?#j#>zE-CKPWddhUZ({FZtEF9V(6`&a3l#_rY1cB!EtPXqFzL zx}^LTjEW1%z2a;20X-&0v=%kRGmWbgV3rj}V&6?Btm+6NF#s)Ki(C zL+(66WOXC~AV1aj(_!&gAEhV7xB9h~4r&F)EDY}% zfKS?#(GG=>VrbuAmwW;tlbh1A(xGj&iJZKv({^=AQ*OsPWL<5_%Q}oWlMax*WL;}2 zAS=6atf?~jKH+msjVY}a;!QPUOkGj-g>xTmhcKbWVM#!Gu$Uet?$}f(+2L$xbhk7KntLnGUX9{WFiA zdDrFULc?L!nt8%ptTecX(|W`6%{w;y{0Fw}nE6xZ#>dSomrcuI=45xCz2ugynz;zc z&z^3D8nT}108j_=ujn~cna3-KpJ=GE0rsDd8KsLUA3L6vsA)Ecv#Ke zApk?tX&=10w1@7AFiEA~_sEFK&%p?`P4CVQf7?K0;=2A11iHE6q_-bsYE+gEa>a6%Y;mcxr z#V*-xY`PR2YM7C@%C(}zHHWR&>?(0L*GpTG(oqW=E1mqFZRh?2#`}4oDDAR%2S3k) zMJe9NFYplRSw6rAQM>p>ehIbP@vS%W%Y3L(?SCPuQoLtb3JjMU;n-}1hZ~Lt#3p3SWQfp$2is(g5zB5{wA3hsF7J^gbE*x1Vgv|&Wg$kB5~>Yhz|-mtQyfJE6hR{s3$Wt3!It2SCx%n|?pdhqAiJH=2I2bQ zoyt*fQcOdsezu!d&4_Z%va{i&^66}*+D0W)+stxjL(t^Q?o>9D%Zp?>lM~m;FtVA{ zS~9chhzN#anlMY4C(t3pEkxN$BvKp69Q>;HHjI#4Ii!Ir4WHZuw0j4AhUI34inn4Y bs>{m+ 21.0: + raise ValidationError(_('Reservations for Sunday - Thursday must be between 12:00 PM and 9:00 PM (Local Time).')) + else: # Fri-Sat + if time_start < 12.0 or time_end > 23.0: + raise ValidationError(_('Reservations for Friday & Saturday must be between 12:00 PM and 11:00 PM (Local Time).')) + @api.onchange('start_time') def _onchange_start_time(self): if self.start_time: diff --git a/addons/dine360_reservation/views/reservation_templates.xml b/addons/dine360_reservation/views/reservation_templates.xml index 7c96086..8d3c4f4 100644 --- a/addons/dine360_reservation/views/reservation_templates.xml +++ b/addons/dine360_reservation/views/reservation_templates.xml @@ -11,7 +11,10 @@

Table Reservation

-

Book your spot for an authentic South Indian dining experience.

+

Book your spot for an authentic South Indian dining experience.

+
+ Sun - Thu: 12pm - 9pm | Fri & Sat: 12pm - 11pm +
@@ -20,7 +23,7 @@
-
+