57 lines
2.5 KiB
Python
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)
|