logger = logging.getLogger('cloudcms.rstimport')
+def slugify(title):
+ return title[:90]
+
# base filename to service slug map
DEFAULT_SERVICE_MAP = {
'cyclades':'cyclades',
def service_from_filename(rst):
fname = os.path.basename(rst).replace(".rst","")
- service_slug = DEFAULT_SERVICE_MAP.get(fname, None)
+ service_slug = SERVICE_MAP.get(fname, None)
if not service_slug:
return None
logger.warning("Removing exising entries")
self.clean_existing_data()
except Exception, e:
- transaction.savepoint_rollback(sid)
+ try:
+ transaction.savepoint_rollback(sid)
+ except Exception, e:
+ logger.exception("Can not rollback")
logger.exception("Failed to clean existing data")
logger.removeHandler(stream_handler)
logger.setLevel(old_level)
# the faq/guide content
if data_type == 'faq':
logger.info('Processing FAQ entry, %s, %s, %s', service, slug, title)
- cat = add_or_update_faq_category(category[0], category[1])
+ cat = add_or_update_faq_category(unicode(category[0]),
+ unicode(category[1]))
question = add_or_update_faq_question(user, service, cat, slug, \
title, html_content)
except Exception, e:
- print e
+ print e, "EXCEPTION"
logger.exception("RST import failed")
logger.removeHandler(stream_handler)
logger.setLevel(old_level)
- transaction.savepoint_rollback(sid)
+ try:
+ transaction.savepoint_rollback(sid)
+ transaction.rollback()
+ except Exception, e:
+ logger.exception("Can not rollback")
+
return False, stream.getvalue()
if dry_run:
- transaction.savepoint_rollback(sid)
+ try:
+ transaction.savepoint_rollback(sid)
+ transaction.rollback()
+ except Exception, e:
+ logger.exception("Can not rollback")
+
else:
transaction.savepoint_commit(sid)
q.is_active = True
q.category = category
q.service = service
- q.slug = slug
- q.title = title
+ q.slug = slugify(slug)
+ q.title = unicode(title)
q.save()
+
q.application = [Application.current()]
q.save()
guide.author = author
guide.is_active = True
guide.service = service
- guide.slug = slug
- guide.title = title
+ guide.slug = slugify(slug)
+ guide.title = unicode(title)
guide.save()
RawContentModel = UserGuideEntry.content_type_for(RawContent)