예제 #1
0
파일: iso.py 프로젝트: helixyte/TheLMA
 def __process_change_owner(self, new_owner):
     trac_tool = None
     if new_owner is None:
         # Reassign to requester for editing the experiment
         # metadata.
         trac_tool = IsoRequestTicketReassigner(
                                 iso_request=self.get_entity(),
                                 completed=False)
         new_owner = ''
     elif new_owner == self.requester.directory_user_id:
         # Close iso request and reassign to requester.
         trac_tool = IsoRequestTicketReassigner(
                                 iso_request=self.get_entity(),
                                 completed=True)
     elif new_owner == STOCKMANAGEMENT_USER:
         if self.owner == '':
             # Activate this ISO request for the first time.
             trac_tool = IsoRequestTicketAccepter(
                                     iso_request=self.get_entity(),
                                     username=new_owner)
         else:
             user_id = get_current_user().directory_user_id
             new_owner = user_id + ", " + STOCKMANAGEMENT_USER
             trac_tool = IsoRequestTicketReopener(
                                     iso_request=self.get_entity(),
                                     username=user_id)
     else:
         # Accept this ISO request.
         tkt_user = new_owner.split(',')[0]
         trac_tool = IsoRequestTicketAccepter(
                                 iso_request=self.get_entity(),
                                 username=tkt_user)
     if not trac_tool is None:
         run_trac_tool(trac_tool)
     self.owner = new_owner
예제 #2
0
파일: iso.py 프로젝트: papagr/TheLMA
 def __pipetting_iso_or_iso_job(self, iso_or_iso_job):
     user = get_current_user()
     executor = get_worklist_executor(iso_or_iso_job, user)
     result = run_tool(executor, error_prefix='Errors during pipetting. --')
     trac_updater = LabIsoStockTransferReporter(executor=executor)
     run_trac_tool(trac_updater)
     return result
예제 #3
0
 def _process_request_data(self, data):
     initial_name = self.context.__name__
     self.context.update(data)
     if isinstance(data, ExperimentMetadata):
         # Now that we have all new information, generate links and upload
         # to Trac.
         url = self.request.application_url + '/public//LOUICe.html#' \
               + self.context.path
         if self.context.iso_request is None:
             iso_url = "No ISO for this experiment metadata."
         else:
             iso_url = self.request.application_url \
                       + '/public//LOUICe.html#' \
                       + self.context.iso_request.path
         trac_tool = ExperimentMetadataReportUploader(
                                             generator=self.__generator,
                                             experiment_metadata_link=url,
                                             iso_request_link=iso_url)
         run_trac_tool(trac_tool)
     # FIXME: add conflict detection # pylint: disable=W0511
     if initial_name != self.context.__name__:
         self.request.response_headerlist = \
             [('Location',
               resource_to_url(self.context, request=self.request))]
     self.request.response_status = self._status(HTTPOk)
     return {'context' : self.context}
예제 #4
0
파일: iso.py 프로젝트: papagr/TheLMA
 def __process_change_owner(self, new_owner):
     trac_tool = None
     if new_owner is None:
         # Reassign to requester for editing the experiment
         # metadata.
         trac_tool = IsoRequestTicketReassigner(
             iso_request=self.get_entity(), completed=False)
         new_owner = ''
     elif new_owner == self.requester.directory_user_id:
         # Close iso request and reassign to requester.
         trac_tool = IsoRequestTicketReassigner(
             iso_request=self.get_entity(), completed=True)
     elif new_owner == STOCKMANAGEMENT_USER:
         if self.owner == '':
             # Activate this ISO request for the first time.
             trac_tool = IsoRequestTicketAccepter(
                 iso_request=self.get_entity(), username=new_owner)
         else:
             user_id = get_current_user().directory_user_id
             new_owner = user_id + ", " + STOCKMANAGEMENT_USER
             trac_tool = IsoRequestTicketReopener(
                 iso_request=self.get_entity(), username=user_id)
     else:
         # Accept this ISO request.
         tkt_user = new_owner.split(',')[0]
         trac_tool = IsoRequestTicketAccepter(iso_request=self.get_entity(),
                                              username=tkt_user)
     if not trac_tool is None:
         run_trac_tool(trac_tool)
     self.owner = new_owner
예제 #5
0
파일: iso.py 프로젝트: helixyte/TheLMA
 def __pipetting_iso_or_iso_job(self, iso_or_iso_job):
     user = get_current_user()
     executor = get_worklist_executor(iso_or_iso_job, user)
     result = run_tool(executor,
                       error_prefix='Errors during pipetting. --')
     trac_updater = LabIsoStockTransferReporter(executor=executor)
     run_trac_tool(trac_updater)
     return result