def create(self): form = Form( self.request, schema=SampleCreateSchema, variable_decode=True, multipart=True) if form.validate(): # XXX Check for EDIT_COLLECTION on selected collection # XXX Should be using form collection below new_sample = form.bind( Sample.create(self.request.user, self.context.collection)) for storage in self.request.POST.getall('attachments'): if storage: new_sample.attachments.create(storage.filename, storage.file) return HTTPFound( location=self.request.route_url( 'samples_view', sample_id=new_sample.id)) return dict(form=FormRenderer(form))
def combine(self): form = Form( self.request, schema=SampleCombineSchema, variable_decode=True) if form.validate(): new_sample = Sample.combine( self.request.user, form.data['collection'], form.data['aliquots']) return HTTPFound( location=self.request.route_url( 'samples_view', sample_id=new_sample.id)) return dict( form=FormRenderer(form), samples=DBSession.query(Sample).\ filter(Sample.collection==self.context.collection).\ filter(Sample.destroyed==None), )
def create(self): form = Form( self.request, schema=SampleCreateSchema, variable_decode=True, multipart=True) if form.validate(): # XXX Check for EDIT_COLLECTION on selected collection # XXX Should be using form collection below new_sample = form.bind( Sample.create(self.request.user, self.context.collection)) DBSession.add(new_sample) DBSession.flush() # to generate sample.id for storage in self.request.POST.getall('attachments'): if storage: new_sample.attachments.create(storage.filename, storage.file) return HTTPFound( location=self.request.route_url( 'samples_view', sample_id=new_sample.id)) return dict(form=FormRenderer(form))
def _to_python(self, value, state): result = Sample.by_id(value) if result is None: raise Invalid('Invalid collection', value, state) return result