57 lines
2.5 KiB
Python

from odoo import http # pyrefly: ignore [missing-import]
from odoo.http import request # pyrefly: ignore [missing-import]
class ContactController(http.Controller):
@http.route('/contact', type='http', auth='public', website=True)
def contact_page(self, **post):
return request.render('dance_new_theme.contact_page_template')
class EventsController(http.Controller):
@http.route('/events', type='http', auth='public', website=True)
def events_page(self, **post):
events = request.env['dance.event'].sudo().search([('state', 'in', ['planning', 'rehearsal', 'done'])], order='date desc')
return request.render('dance_new_theme.events_page_template', {'events': events})
class RegistrationController(http.Controller):
@http.route('/registration', type='http', auth='public', website=True)
def registration_page(self, **post):
return request.render('dance_new_theme.registration_page_template')
@http.route('/registration/submit', type='http', auth='public', methods=['POST'], website=True, csrf=False)
def registration_submit(self, **post):
try:
# Create Guardian
guardian_vals = {
'name': post.get('parent_name'),
'phone': post.get('parent_phone'),
'email': post.get('parent_email'),
'mobile': post.get('parent_whatsapp'),
'street': post.get('parent_address'),
'city': post.get('parent_city'),
'zip': post.get('parent_postal_code'),
'is_student': False,
}
guardian = request.env['res.partner'].sudo().create(guardian_vals)
# Create Student
student_vals = {
'name': post.get('student_name'),
'is_student': True,
'date_of_birth': post.get('student_dob'),
'gender': post.get('student_gender').lower() if post.get('student_gender') else False,
'dance_style': post.get('student_dance_style').lower() if post.get('student_dance_style') else False,
'level': post.get('student_skill_level').lower() if post.get('student_skill_level') else False,
'medical_notes': post.get('student_medical_notes'),
'guardian_id': guardian.id,
'guardian_phone': guardian.phone,
}
student = request.env['res.partner'].sudo().create(student_vals)
return "success"
except Exception as e:
return request.make_response(str(e), status=400)