Example #1
0
def confirm_edit_section(request, section_code, thread_code, form):
    dajax = Dajax()
    
    try:
        form_dict={}
        for  obj in form:
            form_dict[obj['name']]=obj['value']
        form = ThreadSectionForm(form_dict)
        
        thread_section = ThreadSection.objects.get(code=section_code, thread__code=thread_code)

        if form.is_valid():
            new_section_name = form.cleaned_data.get('section_name')
            new_section_code = form.cleaned_data.get('section_code')
            
            thread_section.name = new_section_name
            thread_section.code = new_section_code

            thread_section.save()

            dajax.assign('#thread_contents', 'innerHTML', \
                             thread_section.thread.render_html_edit_string())

        # if form is not valid
        else:
            dajax.assign('#%s_section_name_errors' % section_code,
                         'innerHTML',
                         form['section_name'].errors)
            dajax.assign('#%s_section_code_errors' % section_code,
                         'innerHTML',
                         form['section_code'].errors)
    except Exception as e:
        dajax.alert("something wrong: %s" % e)
    return dajax.json()
Example #2
0
def insert_section_below(request, section_code, thread_code, form):
    dajax = Dajax()

    try:
        form_dict={}
        for  obj in form:
            form_dict[obj['name']]=obj['value']
        form = ThreadSectionForm(form_dict)
        
        if form.is_valid():
            new_section_name = form.cleaned_data.get('section_name')
            new_section_code = form.cleaned_data.get('section_code')
            
            # add section after section given by section_code
            thread_section = ThreadSection.objects.get(code=section_code, thread__code=thread_code)

            this_sort_order=thread_section.sort_order
            next_section = thread_section.find_next_section()
            if next_section:
                new_sort_order= (this_sort_order+next_section.sort_order)/2.0
            else:
                new_sort_order=this_sort_order+1.0
                
            new_section = ThreadSection(name=new_section_name, code=new_section_code,
                                  thread=thread_section.thread,
                                  sort_order=new_sort_order,
                                  level=thread_section.level)

            from django.db import IntegrityError
            try:
                new_section.save()
            except IntegrityError as e:
                dajax.assign('#%s_section_code_errors' % section_code,
                              'innerHTML',
                             'Cannot add section. Duplicate code: %s' % (new_section_code))
            else:
                dajax.assign('#thread_contents', 'innerHTML', \
                                 thread_section.thread.render_html_edit_string())
                
        # if form is not valid
        else:
            dajax.assign('#%s_section_name_errors' % section_code,
                         'innerHTML',
                         form['section_name'].errors)
            dajax.assign('#%s_section_code_errors' % section_code,
                         'innerHTML',
                         form['section_code'].errors)
    except Exception as e:
        dajax.alert("something wrong: %s" % e)
    return dajax.json()
Example #3
0
def insert_section_top(request, thread_code, form):
    dajax = Dajax()

    try:
        form_dict={}
        for  obj in form:
            form_dict[obj['name']]=obj['value']
        form = ThreadSectionForm(form_dict)
        
        if form.is_valid():
            new_section_name = form.cleaned_data.get('section_name')
            new_section_code = form.cleaned_data.get('section_code')
            
            # add section before first section
            thread = Thread.objects.get(code=thread_code)
            try:
                new_sort_order=thread.thread_sections.all()[0].sort_order-1.0
            except:
                new_sort_order=0
                
            new_section = ThreadSection(name=new_section_name, code=new_section_code,
                                        thread=thread,
                                        sort_order=new_sort_order,
                                        level=1)

            from django.db import IntegrityError
            try:
                new_section.save()
            except IntegrityError as e:
                dajax.assign('#section_code_errors_top',
                              'innerHTML',
                             'Cannot add section. Duplicate code: %s' % (new_section_code))
            else:
                dajax.assign('#thread_contents', 'innerHTML', \
                                 thread.render_html_edit_string())
                
        # if form is not valid
        else:
            dajax.assign('#section_name_errors_top',
                         'innerHTML',
                         form['section_name'].errors)
            dajax.assign('#section_code_errors_top',
                         'innerHTML',
                         form['section_code'].errors)
    except Exception as e:
        dajax.alert("something wrong: %s" % e)
    return dajax.json()