def _archive(self, notebook, format=u'json'):
   if notebook.archive == True:
     raise Exception("Cannot archive an archived copy of a notebook")
   archive = Notebook()
   archive.id = str(uuid.uuid4())
   archive.archive = True
   archive.for_notebook = notebook
   archive.name = notebook.name
   archive.content = notebook.content
   archive.save()
 def new_notebook(self):
   """Create a new notebook and return its notebook_id."""
   n = Notebook()
   n.id = str(uuid.uuid4())
   n.name = 'New Notebook'
   metadata = current.new_metadata(name=n.name)
   nb = current.new_notebook(metadata=metadata)
   data = current.writes(nb, u'json')
   n.content = data
   n.save(force_insert=True)
   return n.id
 def save_new_notebook(self, data, name=None, format=u'json'):
   """Save a new notebook and return its notebook_id."""
   if format != 'json':
     raise Exception('Only supporting JSON in Django backed notebook')
   n = Notebook()
   n.id = str(uuid.uuid4())
   if name != None:
     n.name = name
     nb = current.reads(data.decode('utf-8'), format)
     nb.metadata.name = name
     data = current.writes(nb, format)
   else:
     nb = current.reads(data.decode('utf-8'), format)
     n.name = nb.metadata.name
   n.content = data
   n.save(force_insert=True)
   self._archive(n)
   return n.id