From 110f4ea0c9b3b9121697f008026c6da668230311 Mon Sep 17 00:00:00 2001 From: Pranav Nachanekar Date: Mon, 9 Sep 2019 17:04:25 +0530 Subject: [PATCH] Formatting --- .../availability_of_slots.py | 3 +- erpnext/www/book-appointment/index.html | 15 ++-- erpnext/www/book-appointment/index.py | 72 ++++++++++++------- 3 files changed, 57 insertions(+), 33 deletions(-) diff --git a/erpnext/crm/doctype/availability_of_slots/availability_of_slots.py b/erpnext/crm/doctype/availability_of_slots/availability_of_slots.py index 8258471eed..94fb0c94d6 100644 --- a/erpnext/crm/doctype/availability_of_slots/availability_of_slots.py +++ b/erpnext/crm/doctype/availability_of_slots/availability_of_slots.py @@ -6,5 +6,6 @@ from __future__ import unicode_literals # import frappe from frappe.model.document import Document + class AvailabilityOfSlots(Document): - pass + pass diff --git a/erpnext/www/book-appointment/index.html b/erpnext/www/book-appointment/index.html index b915484f54..f4074270e0 100644 --- a/erpnext/www/book-appointment/index.html +++ b/erpnext/www/book-appointment/index.html @@ -3,8 +3,8 @@ {% block title %}{{ _("Book Appointment") }}{% endblock %} {% block script %} - - + + {% endblock %} {% block page_content %} @@ -18,15 +18,16 @@
- - +
-
- +
+
diff --git a/erpnext/www/book-appointment/index.py b/erpnext/www/book-appointment/index.py index 9c37fb0c99..f4e96b47d6 100644 --- a/erpnext/www/book-appointment/index.py +++ b/erpnext/www/book-appointment/index.py @@ -4,50 +4,62 @@ import json no_cache = 1 + @frappe.whitelist(allow_guest=True) def get_appointment_settings(): settings = frappe.get_doc('Appointment Booking Settings') return settings + @frappe.whitelist(allow_guest=True) def get_holiday_list(holiday_list_name): - holiday_list = frappe.get_doc('Holiday List',holiday_list_name) + holiday_list = frappe.get_doc('Holiday List', holiday_list_name) return holiday_list + @frappe.whitelist(allow_guest=True) def get_timezones(): - timezones = frappe.get_list('Timezone',fields='*') + timezones = frappe.get_list('Timezone', fields='*') return timezones + @frappe.whitelist(allow_guest=True) -def get_appointment_slots(date,timezone): +def get_appointment_slots(date, timezone): timezone = int(timezone) format_string = '%Y-%m-%d %H:%M:%S' - query_start_time = datetime.datetime.strptime(date + ' 00:00:00',format_string) - query_end_time = datetime.datetime.strptime(date + ' 23:59:59',format_string) - query_start_time = _convert_to_ist(query_start_time,timezone) - query_end_time = _convert_to_ist(query_end_time,timezone) + query_start_time = datetime.datetime.strptime( + date + ' 00:00:00', format_string) + query_end_time = datetime.datetime.strptime( + date + ' 23:59:59', format_string) + query_start_time = _convert_to_ist(query_start_time, timezone) + query_end_time = _convert_to_ist(query_end_time, timezone) # Database queries settings = frappe.get_doc('Appointment Booking Settings') holiday_list = frappe.get_doc('Holiday List', settings.holiday_list) - timeslots = get_available_slots_between(query_start_time, query_end_time, settings) - + timeslots = get_available_slots_between( + query_start_time, query_end_time, settings) + # Filter timeslots based on date converted_timeslots = [] for timeslot in timeslots: # Check if holiday - if _is_holiday(timeslot.date(),holiday_list): - converted_timeslots.append(dict(time=_convert_to_tz(timeslot,timezone),availability=False)) + if _is_holiday(timeslot.date(), holiday_list): + converted_timeslots.append( + dict(time=_convert_to_tz(timeslot, timezone), availability=False)) continue # Check availability - if check_availabilty(timeslot,settings): - converted_timeslots.append(dict(time=_convert_to_tz(timeslot,timezone),availability=True)) + if check_availabilty(timeslot, settings): + converted_timeslots.append( + dict(time=_convert_to_tz(timeslot, timezone), availability=True)) else: - converted_timeslots.append(dict(time=_convert_to_tz(timeslot,timezone),availability=False)) - date_required = datetime.datetime.strptime(date + ' 00:00:00',format_string).date() - converted_timeslots = filter_timeslots(date_required,converted_timeslots) + converted_timeslots.append( + dict(time=_convert_to_tz(timeslot, timezone), availability=False)) + date_required = datetime.datetime.strptime( + date + ' 00:00:00', format_string).date() + converted_timeslots = filter_timeslots(date_required, converted_timeslots) return converted_timeslots + def get_available_slots_between(query_start_time, query_end_time, settings): records = _get_records(query_start_time, query_end_time, settings) timeslots = [] @@ -59,7 +71,7 @@ def get_available_slots_between(query_start_time, query_end_time, settings): query_start_time, record.from_time) end_time = _deltatime_to_datetime( query_start_time, record.to_time) - else : + else: current_time = _deltatime_to_datetime( query_end_time, record.from_time) end_time = _deltatime_to_datetime( @@ -69,11 +81,13 @@ def get_available_slots_between(query_start_time, query_end_time, settings): current_time += appointment_duration return timeslots -@frappe.whitelist(allow_guest=True) -def create_appointment(date,time,contact): + +@frappe.whitelist(allow_guest=True) +def create_appointment(date, time, contact): appointment = frappe.new_doc('Appointment') format_string = '%Y-%m-%d %H:%M:%S' - appointment.scheduled_time = datetime.datetime.strptime(date+" "+time,format_string) + appointment.scheduled_time = datetime.datetime.strptime( + date+" "+time, format_string) contact = json.loads(contact) appointment.customer_name = contact['name'] appointment.customer_phone_number = contact['number'] @@ -83,15 +97,17 @@ def create_appointment(date,time,contact): # Helper Functions -def filter_timeslots(date,timeslots): +def filter_timeslots(date, timeslots): filtered_timeslots = [] for timeslot in timeslots: if(timeslot['time'].date() == date): filtered_timeslots.append(timeslot) return filtered_timeslots -def check_availabilty(timeslot,settings): - return frappe.db.count('Appointment',{'scheduled_time':timeslot})