durusmail: quixote-users: keeping track of the modules/objects traversed
keeping track of the modules/objects traversed
2004-09-20
2004-09-20
2004-09-20
2004-09-20
2004-09-20
2004-09-21
2004-09-21
2004-09-20
keeping track of the modules/objects traversed
Ksenia Marasanova
2004-09-20
> Right now I'm using a hack which I'm sure isn't right, but is working
> enough to let me get some work done.  Basically the AnimalUI class
> (instantiated on x123) has a _q_lookup method that returns the
> assessment_ui module when the component == 'assessment'.  And then to
> pass the animal_id info along it (prepare to experience pain due to
> ugly hack) sets the animal_id var in the assessments module.

I hoop I didn't misunderstand the situation, but I think that I would
not pass animal_id to the assessments module at all, because it has
unique assessment_id on it's own (does it?). The assessment_id should
be sufficient to get all the information about assessment...

Ksenia.


Example for SCGI environment (should work in CGI too, I think):

in AnimalUI class:

def __init__(self):
        self.id = None

def _q_index(self, request):
        if self.id is None:
                # show all animals
        else:
                # show one animal

def _q_lookup(self, request, component):
        if component == 'assessment':
                return AssessmentUI()
        else:
                try:
                        self.id = int(component)
                except ValueError:
                        raise TraversalError
                else:
                        return self


in AssessmentUI class:

def __init__(self):
        self.id = None

def _q_index(self, request):
        if self.id is None:
                raise TraversalError # do not allow url like
/animal/x123/assessment/
        else:
                # show assessment

def _q_lookup(self, request, component):
        try:
                self.id = int(component)
        except ValueError:
                raise TraversalError
        else:
                return self


reply