def user_selected_these_dia_checkboxes(request): """ Input: Request POST contains a list of checkbox IDs corresponding to DIAs. Side-effect: Make a note on the DIA that its affiliated person wants it. Output: Success? """ # {{{ prepare_data_import_attempts(request.POST, request.user) checkboxes = filter_by_key_prefix(request.POST, "person_wants_") identifiers = filter_by_key_prefix(request.POST, "identifier_") for checkbox_id, value in checkboxes.items(): if value == 'on': x, y, identifier_index, source_key = checkbox_id.split('_') identifier = identifiers["identifier_%s" % identifier_index] if identifier: # FIXME: For security, ought this filter include only dias # associated with the logged-in user's profile? dia = DataImportAttempt(identifier, source_key, request.user.get_profile()) dia.person_wants_data = True dia.save() dia.do_what_it_says_on_the_tin() # There may be data waiting or not, # but no matter; this function may # run unconditionally. dia.give_data_to_person() return HttpResponse('1')
def user_selected_these_dia_checkboxes(request): """ Input: Request POST contains a list of checkbox IDs corresponding to DIAs. Side-effect: Make a note on the DIA that its affiliated person wants it. Output: Success? """ # {{{ prepare_data_import_attempts(request.POST, request.user) checkboxes = filter_by_key_prefix(request.POST, "person_wants_") identifiers = filter_by_key_prefix(request.POST, "identifier_") for checkbox_id, value in checkboxes.items(): if value == 'on': x, y, identifier_index, source_key = checkbox_id.split('_') identifier = identifiers["identifier_%s" % identifier_index] if identifier: # FIXME: For security, ought this filter include only dias # associated with the logged-in user's profile? dia = DataImportAttempt( identifier, source_key, request.user.get_profile()) dia.person_wants_data = True dia.save() dia.do_what_it_says_on_the_tin() # There may be data waiting or not, # but no matter; this function may # run unconditionally. dia.give_data_to_person() return HttpResponse('1')
def prepare_data_import_attempts(identifiers, user): "Enqueue and track importation tasks." """Expected input: A list of committer identifiers, e.g.: ['paulproteus', '*****@*****.**'] For each data source, enqueue a background task. Keep track of information about the task in an object called a DataImportAttempt.""" # Side-effects: Create DIAs that a user might want to execute. for identifier in identifiers: if identifier.strip(): # Skip blanks or whitespace for source_key, _ in DataImportAttempt.SOURCE_CHOICES: dia = DataImportAttempt(query=identifier, source=source_key, person=user.get_profile()) dia.save()
def prepare_data_import_attempts(identifiers, user): "Enqueue and track importation tasks." """Expected input: A list of committer identifiers, e.g.: ['paulproteus', '*****@*****.**'] For each data source, enqueue a background task. Keep track of information about the task in an object called a DataImportAttempt.""" # Side-effects: Create DIAs that a user might want to execute. for identifier in identifiers: if identifier.strip(): # Skip blanks or whitespace for source_key, _ in DataImportAttempt.SOURCE_CHOICES: dia = DataImportAttempt( query=identifier, source=source_key, person=user.get_profile()) dia.save()