def post(self): item = None vals = {} try: # get all the incoming values section = Section.get( self.request.get('section') ) name = self.request.get('name').strip() title = self.request.get('title').strip() content = self.request.get('content') type = self.request.get('type') label_raw = self.request.get('label_raw').strip() attribute_raw = util.make_attr_raw_string( { 'index-entry' : self.request.get('index_entry'), 'has-comments' : self.request.get('has_comments'), 'comments-open' : self.request.get('comments_open'), } ).strip() # some pre-processing of the input params if name == '': name = util.urlify(self.request.get('title')) if self.request.get('key'): item = Page.get( self.request.get('key') ) item.section = section item.name = name item.title = title item.content = content item.type = type item.label_raw = label_raw item.attribute_raw = attribute_raw else: item = Page( section = section, name = name, title = title, content = content, type = type, label_raw = label_raw, attribute_raw = attribute_raw, ) # update and save this page item.set_derivatives() item.put() # once saved, regenerate certain section properties section.regenerate() # also, check that this section doesn't have duplicate content Task( params={ 'section_key': str(section.key()), 'name': item.name }, countdown=30, ).add( queue_name='section-check-duplicate-nodes' ) self.redirect('.') except Exception, err: vals['item'] = self.request.POST vals['err'] = err vals['sections'] = Section.all() vals['types'] = models.type_choices self.template( 'page-form.html', vals, 'admin' );
def post(self): item = None vals = {} try: # get all the incoming values path = self.request.get('path').strip() title = self.request.get('title').strip() description = self.request.get('description') type = self.request.get('type') layout = self.request.get('layout') attribute_raw = util.make_attr_raw_string( { 'sitemap-entry' : self.request.get('sitemap_entry'), 'contact-form' : self.request.get('contact_form'), 'sitefeed' : self.request.get('sitefeed'), } ).strip() # some pre-processing of the input params description_html = util.render(description, type) if self.request.get('key'): item = Section.get( self.request.get('key') ) item.path = path item.title = title item.description = description item.description_html = description_html item.type = type item.layout = layout item.attribute_raw = attribute_raw else: item = Section( path = path, title = title, description = description, description_html = description_html, type = type, layout = layout, attribute_raw = attribute_raw, ) # update and save this section item.set_derivatives() item.put() # once saved, add the section to the two task queues item.regenerate() self.redirect('.') except Exception, err: vals['item'] = self.request.POST vals['err'] = err vals['types'] = models.type_choices vals['layouts'] = models.layout_choices self.template( 'section-form.html', vals, 'admin' );