diff -r 0327b83959e9 -r 4bdb45071c89 svv/orders.py --- a/svv/orders.py Thu Dec 23 00:57:46 2010 +0200 +++ b/svv/orders.py Thu Dec 23 01:07:42 2010 +0200 @@ -333,6 +333,20 @@ ) for opt_value, opt_title in options ) + def render_datetime_input (self, name, value=None) : + """ + Render HTML for a generic datetime control (using jQuery). + + name - field name, as used for POST + value - selected date + """ + + return ( + self.render_text_input(name, (value.strftime(self.DATETIME_FORMAT) if value else None)), + + tags.script("$(document).ready(function () { $('#" + name + "').datetimepicker(); });"), + ) + def render_customer_input (self) : """ Render HTML for customer_id/name field inputs. @@ -353,10 +367,10 @@ Render HTML for contact name field s """ # recommended contacts for selected customer, if known - contacts = self.get_contact_list(self.customer_id) + contacts = self.build_contact_list(self.customer_id) return ( - self.render_select_input('contact_id', ((id, name) for id, name, phone, email in contacts), self.contact_id) + self.render_select_input('contact_id', ((id, name) for id, name, phone, email in contacts), self.contact_id), self.render_text_input('contact_name', self.contact_name), tags.script(r"$(document).ready(function () { $('#contact_id').formSelectPreset({textTarget: $('#contact_name')}); });"), @@ -368,18 +382,15 @@ """ return ( - self.render_text_input('event_start', (self.event_start.strftime(self.DATETIME_FORMAT) if event_start else None)), + self.render_datetime_input('event_start', self.event_start), " - ", - self.render_text_input('event_end', (self.event_end.strftime(self.DATETIME_FORMAT) if event_end else None)), + self.render_datetime_input('event_end', self.event_end), tags.script(r""" $(document).ready(function () { var event_start = $('#event_start'); var event_end = $('#event_end'); - event_start.datetimepicker(); - event_end.datetimepicker(); - /* Buggy shit doesn't work { @@ -474,23 +485,30 @@ class OrdersView (PageHandler) : - def render (self) : + def render_content (self) : return tags.h1("Orders list") class OrderView (PageHandler) : - def render (self, id) : + def render_content (self, id) : return tags.h1("Order info for #%d" % (id, )) class NewOrderView (PageHandler) : """ - + """ - def render (self) : + def render_content (self) : + + form = OrderForm(self.app) + form.defaults() + + return form.render(action=self.url_for(NewOrderView)) + + # XXX: under construction.. + if self.POST : print self.POST - # # if we've gotten this far, then we can create it! sql = db.insert(db.orders).values( @@ -509,7 +527,5 @@ # ok, we don't need the /new URL anymore, we can just show the order page return self.redirect_for(OrderView, id=order_id) - # render form - return self.render_form()