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)