def post( self, request, *args, **kwargs ): d=self.request.POST.copy() or {} mime=kwargs.get( 'mimetype' ).lower() delay=int( d.get( 'delay', 0 ) ) if delay > 0: time.sleep( delay ) if mime == 'html': print 'returning HTML ' return dump( d.get( 'html' ), mimetype="text/html", dumps=False ) elif mime == 'json': return dump( json.loads( d.get( 'json', d ) )) return dump( d )
def export_fiddle( self, **kwargs ): if self.object: exportform=FiddleExportForm( data=self.request.POST, fiddle=self.object ) if exportform.is_valid(): d=exportform.cleaned_data Exporter=exportManager.get( d.get( 'format' ) ) exporter=Exporter( fiddle=self.object, user=self.user ) url=exporter.export( d ) return dump({ 'url': url }) else: return dump({ 'success': False, 'errors': [ e for e in form.errors ]}) else: return dump({ 'success': False, 'errors': [ 'Something is f****d up, no object should not be able to export',]})
def base_fiddle( self, fiddle, form, **kwargs ): ''' make this fiddle the base ''' if self.object and self.object.creator==self.user and self.object.revision > 0 and not self.object.temp: fiddle.temp=False fiddle.creator=self.object.creator fiddle.slug=self.object.slug fiddle.base=True #overwrite the old base Fiddle.objects.filter( slug=fiddle.slug, base=True ).delete() fiddle.save() form.save_m2m() return dump({ 'url': fiddle.get_absolute_url() }) else: return dump({ 'success': False, 'errors': [ 'Fiddle is not eligible for basing', ] })
def delete(self, request, *args, **kwargs): self.object = self.get_object() if self.object.base: Fiddle.objects.filter( slug=self.object.slug ).delete() else: self.object.deactivate() return dump({ 'success': True })
def post( self, request, *args, **kwargs ): self.object=self.get_object() action=request.POST.get( 'action', 'run' ) method='%s_fiddle' % action form=FiddleForm( data=request.POST ) if hasattr( self, method ): if action in ( 'export', ): return getattr( self, method )() if form.is_valid(): fiddle=form.save( commit=False ) return getattr( self, method )( fiddle, form ) else: print 'invalid form %s' % str( form.errors ) return dump({ 'success': False, 'errors':[ e for e in form.errors ] }) else: return dump({ 'success': False, 'errors': [ 'invalid action', ] })
def fork_fiddle( self, fiddle, form, **kwargs ): ''' clone fiddle, the clone must be saved after being forked ( ohduzit? ) ''' fiddle.base=True fiddle.temp=False if self.user: fiddle.creator=self.user fiddle.save() return dump({ 'url': fiddle.get_absolute_url() })
def get_resource( self, request, *args, **kwargs ): q=request.GET.get( 'term' ) ret=[] if request.user.is_authenticated(): ret=[ { 'value': r.url, 'label': os.path.basename( r.url ) } for r in request.user.resource_set.filter( name__istartswith=q ) ] return dump( ret )
def get_deps( self, request, *args, **kwargs ): try: framework=Framework.objects.get( pk=kwargs.get( 'pk' ) ) return dump( [ { 'name': dep.name, 'pk': dep.pk, } for dep in framework.deps.all() ] ) except Exception, e: print 'EROR IN DEPS %s' % e
def form_invalid( self, form ): print 'INVALID upload' return dump( [ e for e in form.errors ] )
def respond( self, fiddle, form ): fiddle.save() form.save_m2m() return dump( fiddleRecord( fiddle ) )