Example #1
0
 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))
Example #2
0
 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),
         )
Example #3
0
 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))
Example #4
0
 def _to_python(self, value, state):
     result = Sample.by_id(value)
     if result is None:
         raise Invalid('Invalid collection', value, state)
     return result