Example #1
0
    def process_push(self, request, user_profile, input_data, template_args, **kwargs):
        """
        Set the notebook to articles
        """
        node = kwargs['node']
        nb = get_or_create_notebook(node)
        
        i = 0
        # if not, create one
        for cell in nb.cells:
            # check for item corresponding
            try:
                cell_id = cell.metadata.gid
            except:
                cell.metadata.gid = get_new_uuid()
                cell_id = cell.metadata.gid
            
            try:
                cell_node = Item.objects.get(id=cell_id)
            except ObjectDoesNotExist:
                cell_node = Item(id=cell_id, parent=node, **kwargs['pipe'])
            
            if cell.cell_type == 'code':
                #
                content = u''
                for output in cell.outputs:
                    if output.output_type == 'stream' and 'stream' == 'stdout':
                        content += output.get('text', u'')
                cell_node.content = content
                
                #if cell_node.content:
                #    cell_node.visible = True
                #else:
                cell_node.visible = False
                
                #if not cell_node.title:
                #    cell_node.title = 'Code'
                
                #if not cell_node.label:
                #    cell_node.label = cell_node.title
                
            elif cell.cell_type == 'markdown':
                
                #cell_node.behavior = 'view'
                #cell_node.content = '<i>markdown rendered html</i>'
                
                cell_node.visible = True
                
                cell = markdown_to_item(cell_node, ''.join(cell.source))

            cell_node.status = 'pushed'
            cell_node.order = i
            cell_node.save()
            i += 1

        save_notebook(nb, node)
        
        #
        if not node.file:
            node.file = 'resource/'+node.id+'.ipynb'
            node.save()
        
        return HttpResponseRedirect(node.get_url()+'view/')

        return self.manage_item_pipe(request, user_profile, input_data, template_args, **kwargs)