def quick_entry(request): """Quick data entry""" form = QuickEntryViewForm(request.POST) if not form.is_valid(): return redirect('entry:index') # fake a task. descr = u"Source: %s\nLanguage: %s\nWordlist: %s" % ( form.cleaned_data['source'], form.cleaned_data['language'], form.cleaned_data['wordlist']) t = Task.objects.create(name=u"Quick", description=descr, editor=request.user, source=form.cleaned_data['source'], wordlist=form.cleaned_data['wordlist'], language=form.cleaned_data['language'], records=form.cleaned_data['records'], view='WordlistView' if form.cleaned_data.get( 'wordlist', False) else 'GenericView', completable=True) t.save() task_log(request, task=t, message="Created Quick Entry Task") return redirect('entry:detail', task_id=t.id)
def quick_entry(request): """Quick data entry""" form = QuickEntryViewForm(request.POST) if not form.is_valid(): return redirect('entry:index') # fake a task. descr = u"Source: %s\nLanguage: %s\nWordlist: %s" % ( form.cleaned_data['source'], form.cleaned_data['language'], form.cleaned_data['wordlist'] ) t = Task.objects.create( name=u"Quick", description=descr, editor=request.user, source=form.cleaned_data['source'], wordlist=form.cleaned_data['wordlist'], language=form.cleaned_data['language'], records=form.cleaned_data['records'], view='WordlistView' if form.cleaned_data.get('wordlist', False) else 'GenericView', completable=True ) t.save() task_log(request, task=t, message="Created Quick Entry Task") return redirect('entry:detail', task_id=t.id)
def task_detail(request, task_id): "Handles routing of tasks" # check if task is valid t = get_object_or_404(Task, pk=task_id) # redirect away if task is complete if t.done: return redirect('entry:complete', pk=t.id) # If we've got POST data, then save checkpoint otherwise load the checkpoint # if it exists. if request.POST: task_log(request, task=t, message="Saved Checkpoint") t.checkpoint = encode_checkpoint(request.POST) t.save() elif t.checkpoint not in (None, u""): task_log(request, task=t, message="Loaded Checkpoint") request.POST = make_querydict(decode_checkpoint(t.checkpoint)) # Finally send to correct view views = dict(dataentry.available_views) if t.view in views: viewfunc = getattr(dataentry, t.view) task_log(request, task=t, message="Called View Func: %s" % t.view) return viewfunc(request, t) else: task_log(request, task=t, message="Error - Can't find View Func %s" % t.view) # ...but if we don't know which view, then we die. return HttpResponseServerError("Can't find view %s for task %s" % (t.view, task_id))
def process_post_and_save(request, task, formset): """Extracted common code to process a form.""" if 'refresh' in request.POST: task_log(request, task=task, message="Refreshed Task") elif 'submit' in request.POST: # # fill if necessary if formset.is_valid(): for form in formset: if form.is_valid() and len(form.changed_data): # if form is valid and some fields have changed # two stages here to set default fields with reversion.create_revision(): obj = form.save(commit=False) obj.editor = request.user obj.save() with reversion.create_revision(): task.lexicon.add(obj) task_log(request, task=task, message="Submitted valid Task") # update task if needed. if task.completable == True: with reversion.create_revision(): task.done = True task.save() task_log(request, task=task, message="Completed Task") # if we have a file saved and a language then add it to the attachments... if task.language and task.source and (task.image or task.file): from website.apps.core.models import Attachment if task.image: a = Attachment.objects.create( editor = request.user, language = task.language, source = task.source, file = task.image ) if task.file: a = Attachment.objects.create( editor = request.user, language = task.language, source = task.source, file = task.file ) return True task_log(request, task=task, message="Submitted incomplete") return False
def dispatch(self, *args, **kwargs): task_log(self.request, task=None, message="Viewed Task Index") return super(TaskIndex, self).dispatch(*args, **kwargs)