def postAuthenticated(self, user, logoutUrl): key = self.request.get("_key") model = (key and self.MI.modelClass.get(key)) or None showProp = self.request.get("showProp", None) propNames = self.request.get("prop", None, allow_multiple=True) if not (model and showProp and propNames): self.response.out.write("ERROR! model or property missing") return for blobName in ("imageData", "dnd4eData"): if blobName in propNames: propNames.remove(blobName) imageData = self.request.get(blobName) try: theImage = images.Image(imageData) theImage.resize(width=323) imageData = theImage.execute_transforms() except images.Error: imageData = None if imageData: model.imageData = db.Blob(imageData) model.put() # If that was the only property, we're done. if not propNames: if imageData: self.response.out.write('<div class="Response" style="display:none;">') super(SavePropHandler, self).postAuthenticated(user, logoutUrl) self.response.out.write("</div>") else: logging.debug("invalid imageData for SaveProp in " + str(self.request.POST)) data = djangoforms.autoFormForProperties(self.MI.modelClass, [blobName])(instance=model) self.response.out.write('<font color="red">Invalid image file</font>') self.response.out.write(self.getEditPropForm(data, model, showProp, [blobName])) return # If the user input was bad, redisplay the edit form. data = djangoforms.autoFormForProperties(self.MI.modelClass, propNames)( self.request.POST, instance=model ) if not data.is_valid(): logging.debug("invalid data for SaveProp in " + str(self.request.POST)) self.response.out.write(self.getEditPropForm(data, model, showProp, propNames)) return # else: # logging.debug('valid data for SaveProp in ' + str(self.request.POST)) # Otherwise, save and display the new property value in a div that js will # pluck from. We do it this way so the content is invisible instead of flashing # in the modalbox briefly. if self.request.get("_action") != "Cancel": model = data.save() self.response.out.write('<div class="Response" style="display:none;">') super(SavePropHandler, self).postAuthenticated(user, logoutUrl) self.response.out.write("</div>")
def getAuthenticated(self, user, logoutUrl): key = self.request.get("_key") if key == "NEW": defaultDict = self.MI.modelClass.defaultDict(toJavascript=0) model = self.MI.modelClass(**defaultDict) model.put() else: model = (key and self.MI.modelClass.get(key)) or None showProp = self.request.get("showProp", None) propNames = self.request.get("prop", None, allow_multiple=True) if not (model and showProp and propNames): self.response.out.write("ERROR! model or property missing") return form = djangoforms.autoFormForProperties(self.MI.modelClass, propNames)(instance=model) self.response.out.write(self.getEditPropForm(form, model, showProp, propNames))
def getAuthenticated(self, user, logoutUrl): key = self.request.get('_key') if key == 'NEW': defaultDict = self.MI.modelClass.defaultDict( toJavascript=0) model = self.MI.modelClass(**defaultDict) model.put() else: model = (key and self.MI.modelClass.get(key)) or None showProp = self.request.get('showProp', None) propNames = self.request.get('prop', None, allow_multiple=True) if not (model and showProp and propNames): self.response.out.write('ERROR! model or property missing') return form = djangoforms.autoFormForProperties( self.MI.modelClass, propNames)(instance=model) self.response.out.write( self.getEditPropForm(form, model, showProp, propNames))
def postAuthenticated(self, user, logoutUrl): key = self.request.get('_key') model = (key and self.MI.modelClass.get(key)) or None showProp = self.request.get('showProp', None) propNames = self.request.get('prop', None, allow_multiple=True) if not (model and showProp and propNames): self.response.out.write('ERROR! model or property missing') return for blobName in ('imageData', 'dnd4eData'): if blobName in propNames: propNames.remove(blobName) imageData = self.request.get(blobName) try: theImage = images.Image(imageData) theImage.resize(width=323) imageData = theImage.execute_transforms() except images.Error: imageData = None if imageData: model.imageData = db.Blob(imageData) model.put() # If that was the only property, we're done. if not propNames: if imageData: self.response.out.write( '<div class="Response" style="display:none;">' ) super(SavePropHandler, self).postAuthenticated(user, logoutUrl) self.response.out.write('</div>') else: logging.debug( 'invalid imageData for SaveProp in ' + str(self.request.POST)) data = djangoforms.autoFormForProperties( self.MI.modelClass, [blobName])(instance=model) self.response.out.write( '<font color="red">Invalid image file</font>' ) self.response.out.write( self.getEditPropForm( data, model, showProp, [blobName])) return # If the user input was bad, redisplay the edit form. data = djangoforms.autoFormForProperties( self.MI.modelClass, propNames)(self.request.POST, instance=model) if not data.is_valid(): logging.debug('invalid data for SaveProp in ' + str(self.request.POST)) self.response.out.write( self.getEditPropForm(data, model, showProp, propNames)) return #else: #logging.debug('valid data for SaveProp in ' + str(self.request.POST)) # Otherwise, save and display the new property value in a div that js will # pluck from. We do it this way so the content is invisible instead of flashing # in the modalbox briefly. if self.request.get('_action') != 'Cancel': model = data.save() self.response.out.write( '<div class="Response" style="display:none;">') super(SavePropHandler, self).postAuthenticated(user, logoutUrl) self.response.out.write('</div>')