Beispiel #1
0
def associates(request, os_release, field):
    dajax = Dajax()

    db = pyfaf.storage.getDatabase()

    os_releases = None
    os_release_id = distro_release_id(db, *split_distro_release(os_release))
    if os_release_id != -1:
        os_releases = [os_release_id]

    out = "<option value='*'>All Associates</option>"
    for associate in associates_list(db, os_releases):
        out += "<option value='%s'>%s</option>\n" % (str(associate.id), associate.name)

    dajax.assign('#id_%s' % (field), 'innerHTML', out)
    return dajax.json()
Beispiel #2
0
    def __init__(self, db, request):
        '''
        Builds choices according to user selection.
        '''

        self.db = db
        super(OsAssociateComponentFilterForm, self).__init__()

        self.fields['os_release'].populate_choices(all_distros_with_all_releases(db))
        self.fields['os_release'].widget.attrs['onchange'] = (
            'Dajaxice.pyfaf.hub.services.associates(Dajax.process'
            ',{"os_release":this.value,"field":"associate"})')

        # Set initial value for operating system release.
        if 'os_release' in request:
            self.fields['os_release'].try_to_select(request['os_release'])

        distro, release = split_distro_release(self.fields['os_release'].initial)
        self.os_release_id = distro_release_id(db, distro, release)

        self.fields['associate'].populate_choices(associates_list(db, [self.os_release_id]
            if self.os_release_id != -1 else None))

        self.fields['associate'].widget.attrs['onchange'] = (
            'Dajaxice.pyfaf.hub.services.components(Dajax.process'
            ',{"os_release":$("#id_os_release")[0].value,"associate":this.value,"component_field":"component"})')

        if 'associate' in request:
            self.fields['associate'].try_to_select(request['associate'])

        # Find all components

        self.fields['component'].populate_choices(components_list(db, [self.os_release_id]
            if self.os_release_id != -1 else [], self.fields['associate'].get_selection()))

        if 'component' in request:
            self.fields['component'].try_to_select(request['component'])