class WebApp: def onFormLoad(self): self.fetch = Button("Retrieve", self) self.search = TextBox() self.submit = Button("Submit", self) self.formsvc = FormService() self.wanted = WantedService() d = {'price': 20, 'name': 'a good car'} self.form = Form(getattr(self.formsvc, "itemform"), data=d, listener=self) #self.describe(['name', 'description']) RootPanel().add(self.form) RootPanel().add(self.search) RootPanel().add(self.fetch) def onRetrieveDone(self, form): log.debug("onRetrieveDone: %s" % repr(form)) def onDescribeDone(self, form): form.add_widget("Submit", self.submit) def onClick(self, sender): if sender == self.fetch: key = self.search.getText() if not key: log.debug("Please enter id") return key = int(key) log.debug("id %d" % key) #self.wanted.getItem(key, self) self.form.get(id=key) if sender == self.submit: v = self.form.getValue() log.debug("onClick %s" % repr(v)) if v.get('id', None): self.form.update(v) else: self.form.save(v) def onErrors(self, form, response): log.debug("onErrors %s" % repr(response)) def onSaveDone(self, form, response): log.debug("onSave %s" % repr(response)) def onModuleLoad(self): self.pages = DataService() #Show the initial screen. initToken = History().getToken() if initToken and len(initToken): if initToken == 'admin': RootPanel().add(WebPageEdit(self)) return else: initToken = 'index' self.dock = DockPanel() self.dock.setWidth("100%") self.pages = {} self.current_page = None RootPanel().add(self.dock) History.addHistoryListener(self) self.onHistoryChanged(initToken) def createPage(self, ref, html, title): htp = HTMLLinkPanel(self, html, title) htp.replaceLinks() htp.setWidth("100%") self.pages[ref] = htp def onHistoryChanged(self, token): #log.debug("onHistoryChanged %s" % token) if self.pages.has_key(token): self.setPage(token) return self.pages.getPageByName(token, self) def setPage(self, ref): htp = self.pages[ref] if htp == self.current_page: return Window.setTitle(htp.title) if self.current_page: self.dock.remove(self.current_page) self.dock.add(htp, DockPanel.CENTER) self.current_page = htp def onRemoteResponse(self, response, request_info): #if (request_info.method == 'getItem'): # data = {'id': response['pk']} # log.debug(repr(response)) # self.form.update_values(response) if (request_info.method == 'getPageByName' or request_info.method == 'getPage'): item = response[0] html = item['fields']['text'] token = item['fields']['name'] self.createPage(token, html, token) self.setPage(token) def onRemoteError(self, code, message, request_info): RootPanel().add(HTML("Server Error or Invalid Response: ERROR " + str(code) + " - " + str(message)))
class WebApp: def onFormLoad(self): self.fetch = Button("Retrieve", self) self.search = TextBox() self.submit = Button("Submit", self) self.formsvc = FormService() self.wanted = WantedService() d = {'price': 20, 'name': 'a good car'} self.form = Form(getattr(self.formsvc, "itemform"), data=d, listener=self) #self.describe(['name', 'description']) RootPanel().add(self.form) RootPanel().add(self.search) RootPanel().add(self.fetch) def onRetrieveDone(self, form): log.debug("onRetrieveDone: %s" % repr(form)) def onDescribeDone(self, form): form.add_widget("Submit", self.submit) def onClick(self, sender): if sender == self.fetch: key = self.search.getText() if not key: log.debug("Please enter id") return key = int(key) log.debug("id %d" % key) #self.wanted.getItem(key, self) self.form.get(id=key) if sender == self.submit: v = self.form.getValue() log.debug("onClick %s" % repr(v)) if v.get('id', None): self.form.update(v) else: self.form.save(v) def onErrors(self, form, response): log.debug("onErrors %s" % repr(response)) def onSaveDone(self, form, response): log.debug("onSave %s" % repr(response)) def onModuleLoad(self): self.pages = DataService() #Show the initial screen. initToken = History().getToken() if initToken and len(initToken): if initToken == 'admin': RootPanel().add(WebPageEdit(self)) return else: initToken = 'index' self.dock = DockPanel() self.dock.setWidth("100%") self.pages = {} self.current_page = None RootPanel().add(self.dock) History.addHistoryListener(self) self.onHistoryChanged(initToken) def createPage(self, ref, html, title): htp = HTMLLinkPanel(self, html, title) htp.replaceLinks() htp.setWidth("100%") self.pages[ref] = htp def onHistoryChanged(self, token): #log.debug("onHistoryChanged %s" % token) if self.pages.has_key(token): self.setPage(token) return self.pages.getPageByName(token, self) def setPage(self, ref): htp = self.pages[ref] if htp == self.current_page: return Window.setTitle(htp.title) if self.current_page: self.dock.remove(self.current_page) self.dock.add(htp, DockPanel.CENTER) self.current_page = htp def onRemoteResponse(self, response, request_info): #if (request_info.method == 'getItem'): # data = {'id': response['pk']} # log.debug(repr(response)) # self.form.update_values(response) if (request_info.method == 'getPageByName' or request_info.method == 'getPage'): item = response[0] html = item['fields']['text'] token = item['fields']['name'] self.createPage(token, html, token) self.setPage(token) def onRemoteError(self, code, message, request_info): RootPanel().add( HTML("Server Error or Invalid Response: ERROR " + str(code) + " - " + str(message)))