Example #1
0
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)
Example #2
0
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)
Example #3
0
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))
Example #4
0
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))
Example #5
0
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
Example #6
0
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
Example #7
0
 def dispatch(self, *args, **kwargs):
     task_log(self.request, task=None, message="Viewed Task Index")
     return super(TaskIndex, self).dispatch(*args, **kwargs)
Example #8
0
 def dispatch(self, *args, **kwargs):
     task_log(self.request, task=None, message="Viewed Task Index")
     return super(TaskIndex, self).dispatch(*args, **kwargs)