Exemple #1
0
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
Exemple #2
0
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