예제 #1
0
def patchrecursive_submit(request):
    # Initialize data array and some default values.
    data = {}
    data['patchrecursive_form'] = forms.PatchRecursiveUploadForm()
    data['patchrecursive_success'] = False
    if request.method == 'POST':
        form = forms.PatchRecursiveUploadForm(request.POST)
        if form.is_valid():
            set_mission_completed(request.user.get_profile(), 'diffpatch_patchrecursive')
            return HttpResponseRedirect(reverse(recursive_patch))
        data['patchrecursive_form'] = form
    return recursive_patch(request, data)
예제 #2
0
def diffrecursive_submit(request):
    # Initialize data array and some default values.
    data = {}
    data['diffrecursive_form'] = forms.DiffRecursiveUploadForm()
    data['diffrecursive_success'] = False
    data['diffrecursive_error_message'] = ''
    if request.method == 'POST':
        form = forms.DiffRecursiveUploadForm(request.POST, request.FILES)
        if form.is_valid():
            try:
                controllers.DiffRecursiveMission.validate_patch(form.cleaned_data['diff'].read())
                set_mission_completed(request.user.get_profile(), 'diffpatch_diffrecursive')
                data['diffrecursive_success'] = True
            except controllers.IncorrectPatch, e:
                data['diffrecursive_error_message'] = str(e)
        data['diffrecursive_form'] = form
예제 #3
0
def patchsingle_submit(request):
    # Initialize data array and some default values.
    data = {}
    data['patchsingle_form'] = forms.PatchSingleUploadForm()
    data['patchsingle_success'] = False
    data['patchsingle_error_message'] = ''
    if request.method == 'POST':
        form = forms.PatchSingleUploadForm(request.POST, request.FILES)
        if form.is_valid():
            if form.cleaned_data['patched_file'].read() == open(controllers.PatchSingleFileMission.NEW_FILE).read():
                set_mission_completed(request.user.get_profile(), 'diffpatch_patchsingle')
                data['patchsingle_success'] = True
            else:
                data['patchsingle_error_message'] = 'The file did not match the contents it should have.'
        data['patchsingle_form'] = form
    return single_file_patch(request, data)
예제 #4
0
파일: views.py 프로젝트: armooo/oh-mainline
def patchrecursive_submit(request):
    # Initialize data array and some default values.
    data = {}
    data['patchrecursive_form'] = forms.PatchRecursiveUploadForm()
    data['patchrecursive_success'] = False
    wrong_answers_present = False
    if request.method == 'POST':
        form = forms.PatchRecursiveUploadForm(request.POST)
        if form.is_valid():
            for key, value in controllers.PatchRecursiveMission.ANSWERS.iteritems():
                if form.cleaned_data[key] != value:
                    data['patchrecursive_%s_error_message' % key] = 'This answer is incorrect.'
                    wrong_answers_present = True
                else:
                    data['patchrecursive_%s_error_message' % key] = ''
            if not wrong_answers_present:
                set_mission_completed(request.user.get_profile(), 'diffpatch_patchrecursive')
                data['patchrecursive_success'] = True
        data['patchrecursive_form'] = form
    return recursive_patch(request, data)
예제 #5
0
    def form_valid(self, form):

        controllers.set_mission_completed(request.user.get_profile(),
                                          self.mission_step)