class FragViewer(BaseViewer): def __init__(self, request): BaseViewer.__init__(self, request) self.contacts = ContactManager(self.request.db) self._dispatch_table = dict( usercontactlist=self.list_user_contacts, globalcontactlist=self.list_global_contacts, contactlist=self.list_contacts, receivedcallscalendar=self.received_calls_calendar,) self.context = self.request.matchdict['context'] self._view = self.context self.dispatch() def _contact_name_filter(self, query, id): Contact = self.contacts.base q = self.contacts.query() if id != 'ALL': q = q.filter(Contact.lastname.like('%s%%' % id)) return q.order_by(Contact.lastname) def _render_contact_list(self, contacts): env = dict(contacts=contacts) template = 'mslemon:templates/consult/contact-list.mako' self.response = self.render(template, env) def list_user_contacts(self): id = self.request.matchdict['id'] user_id = self.get_current_user_id() q = self.contacts.get_by_user_query(user_id) q = self._contact_name_filter(q, id) contacts = q.all() self._render_contact_list(contacts) def list_global_contacts(self): id = self.request.matchdict['id'] q = self.contacts.get_global_query() q = self._contact_name_filter(q, id) contacts = q.all() self._render_contact_list(contacts) def list_contacts(self): self.list_user_contacts() def received_calls_calendar(self): template = 'mslemon:templates/consult/calendar-phone.mako' default_view = 'agendaDay' event_source = self.request.route_url( 'consult_json', context='receivedcalls', id='calls') env = dict(default_view=default_view, event_source=event_source,) content = self.render(template, env) self.response = content
def __init__(self, request): BaseViewer.__init__(self, request) self.contacts = ContactManager(self.request.db) self._dispatch_table = dict( usercontactlist=self.list_user_contacts, globalcontactlist=self.list_global_contacts, contactlist=self.list_contacts, receivedcallscalendar=self.received_calls_calendar,) self.context = self.request.matchdict['context'] self._view = self.context self.dispatch()
def __init__(self, request): BaseViewer.__init__(self, request) prepare_main_layout(self.request) self.clients = ClientManager(self.request.db) self.contacts = ContactManager(self.request.db) self._dispatch_table = dict( list=self.list_clients, add=self.add_client, delete=self.delete_client, confirmdelete=self.confirm_delete_client, editclient=self.edit_client, viewclient=self.view_client, ) self.context = self.request.matchdict["context"] self._view = self.context menu = BaseMenu() menu.set_header("Actions") url = self.url(context="add", id="somebody") menu.append_new_entry("Add Client", url) self.layout.options_menus = dict(actions=menu) self.dispatch()
class ClientViewer(BaseViewer): def __init__(self, request): BaseViewer.__init__(self, request) prepare_main_layout(self.request) self.clients = ClientManager(self.request.db) self.contacts = ContactManager(self.request.db) self._dispatch_table = dict( list=self.list_clients, add=self.add_client, delete=self.delete_client, confirmdelete=self.confirm_delete_client, editclient=self.edit_client, viewclient=self.view_client, ) self.context = self.request.matchdict["context"] self._view = self.context menu = BaseMenu() menu.set_header("Actions") url = self.url(context="add", id="somebody") menu.append_new_entry("Add Client", url) self.layout.options_menus = dict(actions=menu) self.dispatch() def list_clients(self): clients = self.clients.all() env = dict(clients=clients) template = "mslemon:templates/consult/listclients.mako" self.layout.content = self.render(template, env) def _make_form(self): schema = AddClientSchema() clist = self.contacts.all() choices = [(c.id, "%s %s" % (c.firstname, c.lastname)) for c in clist] schema["contact"].widget = make_select_widget(choices) form = deform.Form(schema, buttons=("submit",)) self.layout.resources.deform_auto_need(form) return schema, form def add_client(self): schema, form = self._make_form() if "submit" in self.request.POST: controls = self.request.POST.items() self.layout.subheader = "Client Submitted" try: data = form.validate(controls) except deform.ValidationFailure, e: self.layout.content = e.render() return name = data["name"] contact_id = int(data["contact"]) address = data["address"] description = data["description"] c = self.clients.add(name, contact_id, address, description) content = "<p>Client %s added.</p>" % c.name self.layout.content = content return rendered = form.render() self.layout.content = rendered self.layout.subheader = "Add a Client"