예제 #1
0
    def new(self, received_dict):

        self.files = []
        self.receivers = []
        self.mark = self._marker[0] # 'incomplete'

        self.creation_time = gltime.utcDateNow()
        # TODO with gltimes completed, just gltime.utcTimeNow(associated_c.submission_expire)
        self.expiration_time = gltime.utcFutureDate(seconds=1, minutes=1, hours=1)

        self.submission_gus = idops.random_submission_gus()

        try:
            self._import_dict(received_dict)
            self.context_gus = unicode(received_dict['context_gus'])

        except KeyError, e:
            raise InvalidInputFormat("Submission initialization failed (missing %s)" % e)
예제 #2
0
    def new(self, context_gus):

        store = self.getStore('new submission')

        try:
            associated_c = store.find(Context, Context.context_gus == context_gus).one()
        except NotOneError:
            store.close()
            raise ContextGusNotFound
        if associated_c is None:
            store.close()
            raise ContextGusNotFound

        submission = Submission()
        submission.submission_gus = idops.random_submission_gus(False)

        submission.context_gus = context_gus
        submission.context = associated_c

        # XXX this was important and actually IS bugged -- review that /me vecna
        # submission.receivers = associated_c.get_receivers('public')
        submission.receivers = associated_c.receivers
        # XXX this was important and actually IS bugged -- review that /me vecna

        submission.files = {}

        # TODO submission.context.update_stats()

        submission.creation_time = gltime.utcDateNow()
        submission.expiration_time = gltime.utcFutureDate(seconds=1, minutes=1, hours=1)

        store.add(submission)
        store.commit()

        submissionDesc = submission._description_dict()
        log.debug("[D] submission created", submission._description_dict())

        store.close()

        return submissionDesc
예제 #3
0
                raise ReceiverGusNotFound
            if selected_r is None:
                raise ReceiverGusNotFound
            if not self.context_gus in selected_r.contexts:
                print "[***] Invalid Receiver relationship:", self.context_gus, selected_r.contexts
                raise ReceiverGusNotFound

        for single_f in self.files:
            try:
                selected_f = store.find(File, File.file_gus == unicode(single_f)).one()
            except NotOneError:
                raise FileGusNotFound
            if selected_f is None:
                raise FileGusNotFound

        self.submission_gus = idops.random_submission_gus()

        if received_dict.has_key('finalize') and received_dict['finalize']:
            print "INFO, Finalized in new", self.submission_gus
            self.mark = self._marker[1] # 'finalized'
        else:
            print "INFO, NOT finalized in new", self.submission_gus

        store.add(self)
        return self._description_dict()


    @transact
    def update(self, submission_gus, received_dict):

        store = self.getStore()