def newElem(type='post'): '''Create a new XML element. Args: type: The type of element to create (post or page). Returns: A default XML element of the given type. ''' now = datetime.datetime.utcnow() now = now.replace(microsecond = 0) nowSpace = now.isoformat(' ') slug = util.onlyAlphaNum(now.isoformat('_'),'-') filepath = util.getContentFilepath(now, slug) while os.path.exists(filepath): nowSpace = "%s0"%(nowSpace) slug = "%s0"%(slug) filepath = util.getContentFilepath(now, slug) item = { 'date': nowSpace, 'name': slug, 'title': nowSpace, 'type': type, 'status': 'hidden', 'filepath': util.getContentFilepath(now, slug), 'url': util.getURL(now, slug, type), 'parent': '', 'trash': '' } new_elem = ET.Element(type) updateElem(new_elem, item) return new_elem
def formToItem(form, orig_item): '''Convert an EditForm object to an item. Args: form: Form to convert. orig_item: Original item to use for default values. Returns: An item. ''' keys = ['status','categories','name','title','tags','content'] if orig_item['type'] == 'page': keys.append('parent') item = dict((k, form.cleaned_data[k]) for k in keys) date = datetime.datetime.combine(form.cleaned_data['date'], form.cleaned_data['time']) item['date'] = date.isoformat(' ') item['url'] = util.getURL(date, item['name'], orig_item['type']) item['categories'] = util.cleanCSV(item['categories']) item['tags'] = util.cleanCSV(item['tags']) item['type'] = orig_item['type'] item['filepath'] = util.getContentFilepath(date, item['name']) return item