示例#1
0
文件: ajax.py 项目: roldandvg/esmayoy
def eliminarDatos(request):
    """
    @note: Función que permite eliminar los datos del registro seleccionado
    @author: T.S.U. Roldan D. Vargas G.
    @contact: [email protected]
    @return: Retorna un objeto dajax con un mensaje al usuario que le indica el estatus de la eliminación de los registros
    """
    dajax = Dajax()
    opcion = request.POST['opcion']
    id = request.POST['id']
    objetos = []
    try:
        if opcion=="sede":
            sede = Sede.objects.get(pk=id)
            sede.delete()
            objetos = Sede.objects.all()
        elif opcion=="dpto":
            dpto = Departamento.objects.get(pk=id)
            dpto.delete()
            objetos = Departamento.objects.all()
        elif opcion=="carrera":
            carr = Carrera.objects.get(pk=id)
            carr.delete()
            objetos = Carrera.objects.all()
        elif opcion=="carrerasede":
            carsed = Carrera_Sede.objects.get(pk=id)
            carsed.delete()
            objetos = Carrera_Sede.objects.all()
        dajax.remove("#"+id)
        if not objetos:
            dajax.clear("#registros","innerHTML")
        dajax.alert(_(u"Registros eliminados con éxito"))
    except Exception, e:
        dajax.alert(_(u"Los registros no se pueden eliminar. Error: ")+e.message)
def save_edit_mcq(request, eve_id, q_id, form = ''):
    sub = IndividualSubmission.objects.get_or_create(event_id = eve_id, participant = request.user.get_profile())[0]
    dajax = Dajax()
    q = ObjectiveQuestion.objects.get(id = q_id)
    jav_func = None
    if form:
        choice = q.mcqoption_set.get(id = int(form['choice']))
        ans = Answer_MCQ.objects.get_or_create(question_id = q_id, submission = sub)[0]
        ans.choice = choice
        ans.save()
        dajax.alert('save sucessful')
        f = Answer_MCQ_Form(queryset = q.mcqoption_set.all())
        jav_func = """var elem = getRadioByValue(%s);
        setChecked(elem);""" % choice.id
    else:
        ans = get_answer(sub, q)
        f = Answer_MCQ_Form(queryset = q.mcqoption_set.all())
        if ans:
            jav_func = """var id = getRadioByValue(%s);
            setChecked(id);""" % ans.choice.id
    template = loader.get_template('ajax/submissions/mcq_form.html')
    t = template.render(RequestContext(request,locals())) 
    dajax.assign('#q_detail', 'innerHTML', t)
    dajax.script(jav_func)
    dajax.script('pagination(%s,%s,true);' % (eve_id, q_id))
    return dajax.json()
示例#3
0
def add_edit_mobapp_tab(request, form=''):
    dajax = Dajax()
    event = request.user.get_profile().is_coord_of
    mob_app_tab = get_mob_app_tab(event)
    template = loader.get_template('ajax/events/add_edit_mobapptab.html')
    if form:
        if mob_app_tab:
            f = MobAppWriteupForm(form, instance=mob_app_tab)
        else:
            f = MobAppWriteupForm(form)
        if f.is_valid():
            unsaved = f.save(commit=False)
            unsaved.event = event
            unsaved.save()
            dajax.alert('saved successfully!')
        else:
            dajax.alert('Error. Your write up could not be saved!')
    else:
        if mob_app_tab:
            f = MobAppWriteupForm(instance=mob_app_tab)
        else:
            f = MobAppWriteupForm()
    t = template.render(RequestContext(request, locals()))
    dajax.assign('#detail', 'innerHTML', t)
    return dajax.json()
示例#4
0
def bug_form_submit(request, form):
    dajax = Dajax()
    form = BugForm(deserialize_form(form))
    if form.is_valid():
        dajax.remove_css_class('#bug-form input', 'error')
        dajax.remove_css_class('#bug-form select', 'error')
        dajax.remove_css_class('#bug-form textarea', 'error')
        dajax.remove('.error-message')
        dajax.alert('Forms valid')
    else:
        dajax.remove_css_class('#bug-form input', 'error')
        dajax.remove_css_class('#bug-form select', 'error')
        dajax.remove_css_class('#bug-form textarea', 'error')
        dajax.remove('.error-message')
        for error in form.errors:
            dajax.add_css_class('#id_{0}'.format(error), 'error')
        for field in form:
            for error in field.errors:
                message = '<div class="error-message">* {0}</div>'.format(error)
                dajax.append('#id_{0}_wrapper'.format(field.name), 'innerHTML', message) 
        # non field errors
        if form.non_field_errors():
            message = '<div class="error-message"><small>{0}</small></div>'.format(form.non_field_errors())
            dajax.append('#non-field-errors', 'innerHTML', message)
    return dajax.json()
示例#5
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()
示例#6
0
def add_corrected_time(request, uid, date, time):
    dajax = Dajax()

    try:
        #time has simple hh:mm - need convert into YYY-MM-DD HH:MM:SS -> int format
        sdate = date.split("-")
        stime = time.split(":")

        yy = int(sdate[0])
        mm = int(sdate[1])
        dd = int(sdate[2])
        h = int(stime[0])
        m = int(stime[1])

        dt = datetime.datetime(yy, mm, dd, h, m)
        dt = dt - datetime.timedelta(hours=3)  #GMS+3 offset for UTC time

        sdate = dt.strftime('%Y-%m-%d %H:%M')
        corrected_time = utils.get_unix_strdtime(sdate)

        utime = UserTime(user_id=uid, time=corrected_time)
        utime.save()
        #dajax.alert(utime.id)

        #get the list of updated hours

        #and add all of these hours into the new div list
        msg = '<div style="display: inline; background-color: #FF9999; padding: 5px; width: 60px; height: 10px; border: groove 1px gray;">%02d:%02d</div>&nbsp;' % (
            h, m)
        dajax.append('#missed_time_area', 'innerHTML', msg)
    except ValueError:
        dajax.alert(
            'Minutes or hours are wrong! Hours [0..23], minutes [0..59]')

    return dajax.json()
示例#7
0
def add_student_content_attempt(request, form):
    dajax = Dajax()

    try:

        form_dict={}
        for  obj in form:
            form_dict[obj['name']]=obj['value']
        form = StudentContentAttemptRequiredScoreForm(form_dict)

        try:
            sca=form.save()
        except ValueError:
            dajax.assign('#add_attempt_errors','innerHTML', "%s" % form['score'].errors)
            dajax.append('#add_attempt_errors','innerHTML', " %s" % form['datetime'].errors)
        else:
            total_score=sca.content.student_score(sca.student)
            number_attempts = len(sca.content.studentcontentattempt_set.filter(student=sca.student))
            table_row = "<tr><td>&nbsp;%s</td><td>&nbsp;%s</td><td>&nbsp%s</td></tr>" % \
                (number_attempts, format_datetime(sca.datetime), sca.score)
            dajax.append('#attempt_table', 'innerHTML', table_row)
            dajax.assign('#assessment_score_table', 'innerHTML', total_score)
            dajax.assign('#assessment_score', 'innerHTML', total_score)
            dajax.script('toggleAttemptForm();')
            dajax.clear('#add_attempt_errors','innerHTML')
            
    except Exception as e:
        dajax.alert("something wrong: %s" % e)

    return dajax.json()
示例#8
0
def save_user_avatar(request, uid):
    dajax = Dajax()

    try:

        user = User.objects.get(id=int(uid))
        ext = ".jpg"
        path = "%suserpic/" % (settings.MEDIA_ROOT)
        path_web = "%suserpic/" % (settings.MEDIA_URL)

        avator_in_name = "%s%s_temp%s" % (path, user.login, ext)
        avator_out_name = path + user.login + ext

        utils.img_save(avator_in_name, avator_out_name)
        user.avator = user.login + ext
        user.save()

        rand = random.randint(1, 999999)
        user_live_pic = "%s%s_temp%s?v=%s" % (path_web, user.login, ext, rand)
        dajax.assign('#original_user_pic', 'src', user_live_pic)
        dajax.assign('#user_avator', 'src', user_live_pic)
        msg = "avatar is updated"
        dajax.assign('#msg_area_pic', 'innerHTML', msg)

    except:
        dajax.alert('Please refresh the page and try again.')

    return dajax.json()
示例#9
0
def bug_form_submit(request, form):
    dajax = Dajax()
    form = BugForm(deserialize_form(form))
    if form.is_valid():
        dajax.remove_css_class('#bug-form input', 'error')
        dajax.remove_css_class('#bug-form select', 'error')
        dajax.remove_css_class('#bug-form textarea', 'error')
        dajax.remove('.error-message')
        dajax.alert('Forms valid')
    else:
        dajax.remove_css_class('#bug-form input', 'error')
        dajax.remove_css_class('#bug-form select', 'error')
        dajax.remove_css_class('#bug-form textarea', 'error')
        dajax.remove('.error-message')
        for error in form.errors:
            dajax.add_css_class('#id_{0}'.format(error), 'error')
        for field in form:
            for error in field.errors:
                message = '<div class="error-message">* {0}</div>'.format(
                    error)
                dajax.append('#id_{0}_wrapper'.format(field.name), 'innerHTML',
                             message)
        # non field errors
        if form.non_field_errors():
            message = '<div class="error-message"><small>{0}</small></div>'.format(
                form.non_field_errors())
            dajax.append('#non-field-errors', 'innerHTML', message)
    return dajax.json()
示例#10
0
def flickr_save(request, new_title):
    dajax = Dajax()
    # Use new_title...
    dajax.script('cancel_edit();')
    dajax.assign('#title', 'value', new_title)
    dajax.alert('Save complete using "%s"' % new_title)
    return dajax.json()
示例#11
0
文件: ajax.py 项目: redatest/speedjob
def send_form(request, form):
	print 'in send form'
	dajax = Dajax()
	form = Search_Form(deserialize_form(form))

	print 'errors'
	print form.errors
	
	# must do this to clean the form
	if form.is_valid():

		print 	'form is valid'
		cars 	= make_query(form)
		items 	= land_page_pagination(page=1, items=cars)
		render 	= render_to_string('./parts/pagination_page2.html', {'items': items})

		
		dajax 	= Dajax()

		dajax.assign('#respo', 'innerHTML', render)
		# print(dir(dajax.json()))
		return dajax.json()

	else:
		dajax.alert('error in form validation')

	return dajax.json()
示例#12
0
文件: ajax.py 项目: redatest/speedjob
def text_send_form(request, form):
	print 'in text send form'
	query_string 	= ''
	found_entries 	= None
	dajax 			= Dajax()
	form 			= Text_Search_Form(deserialize_form(form))

	print 'errors'
	print form.errors
	
	# must do this to clean the form
	if form.is_valid():
		print 'form is valid'
		text 			= form.cleaned_data['target_text']
		query_string 	= text
		entry_query 	= get_query(query_string, ['title', 'category',])
		print entry_query
		found_entries 	= Offer.objects.filter(entry_query)
		items 			= land_page_pagination(page=1, items=found_entries)
		render 			= render_to_string('./parts/pagination_page2.html', {'items': items})
		dajax 			= Dajax()
		dajax.assign('#respo', 'innerHTML', render)
		return dajax.json()

	else:
		dajax.alert('error in form validation')

	return dajax.json()
示例#13
0
def save_tree(request, treeform):
    dajax = Dajax()
    form_dic = deserialize_form(treeform)
    topic_id_list=[]
    root = request.user.user_root.root_topic
        
    for key, value in form_dic.iteritems():     
        if 'root' in key:
            if value=='1':
                abstract_root = Topic.objects.get(pk = int(key[4:]))
                # prevent error
                if abstract_root.is_reserved():
                    branch_root = Topic.objects.create(name=abstract_root.name,encode=abstract_root.encode,weight=abstract_root.weight,related_topic=abstract_root)
                    # Add branch root to the course root
                    branch_root.parent_topic.add(root)
                    branch_root.root_topic.add(root)
                    branch_root.save()
            else:
                dajax.alert('Nothing is picked')
                return dajax.json()   
        if 'topic' in key and value=='1':
            topic_id_list.append(int(key[5:]))      
            progress, created = ProgressMeasurement.objects.get_or_create(user = request.user, topic_id = int(key[5:]))  
    if len(topic_id_list) and (not abstract_root.is_leaf()):
        parent_child_relation(abstract_root, branch_root, topic_id_list)    
    
    dajax.redirect('/qb/myprogress/', delay=2000)   
    
    return dajax.json() 
def add_edit_mobapp_tab(request, form = ''):
    dajax = Dajax()
    event = request.user.get_profile().is_coord_of
    mob_app_tab = get_mob_app_tab(event)
    template = loader.get_template('ajax/events/add_edit_mobapptab.html')
    if form:
        if mob_app_tab:
            f = MobAppWriteupForm(form, instance = mob_app_tab)
        else:
            f = MobAppWriteupForm(form)
        if f.is_valid():
            unsaved = f.save(commit = False)
            unsaved.event = event
            unsaved.save()
            dajax.alert('saved successfully!')
        else:
            dajax.alert('Error. Your write up could not be saved!')
    else:
        if mob_app_tab:
            f = MobAppWriteupForm(instance = mob_app_tab)
        else:
            f = MobAppWriteupForm()
    t = template.render(RequestContext(request,locals())) 
    dajax.assign('#detail', 'innerHTML', t)
    return dajax.json()
示例#15
0
def text_send_form(request, form):
    print "in text send form"
    query_string = ""
    found_entries = None
    dajax = Dajax()
    form = Text_Search_Form(deserialize_form(form))

    print "errors"
    print form.errors

    # must do this to clean the form
    if form.is_valid():
        print "form is valid"
        text = form.cleaned_data["target_text"]
        query_string = text
        entry_query = get_query(query_string, ["title", "category"])
        print entry_query
        found_entries = Offer.objects.filter(entry_query)
        items = land_page_pagination(page=1, items=found_entries)
        render = render_to_string("pagination_page2.html", {"items": items})
        dajax = Dajax()
        dajax.assign("#respo", "innerHTML", render)
        return dajax.json()

    else:
        dajax.alert("error in form validation")

    return dajax.json()
示例#16
0
def move_content_down(request, threadcontent_id):
    dajax = Dajax()
    try:
        thread_content=ThreadContent.objects.get(id=threadcontent_id)
        this_section = thread_content.section

        # if next content in section, switch order
        next_content = thread_content.find_next_in_section()
        if next_content:
            this_sort_order = thread_content.sort_order
            next_sort_order = next_content.sort_order

            # if sort_orders are the same, 
            # redo all sort orders before continuing
            if this_sort_order==next_sort_order:
                for (i,tc) in enumerate(thread_content.section.threadcontent_set.all()):
                    tc.sort_order=i
                    tc.save()
                thread_content = ThreadContent.objects.get(id=threadcontent_id)
                next_content = thread_content.find_next_in_section()
                this_sort_order = thread_content.sort_order
                next_sort_order = next_content.sort_order
            thread_content.sort_order = next_sort_order
            next_content.sort_order = this_sort_order
            thread_content.save()
            next_content.save()
            
            # rewrite just thread content of section
            dajax.assign('#threadcontent_%s' % this_section.code, \
                             'innerHTML', \
                             this_section.return_content_html_string(edit=True))

        # if content is last in section, move to beginning of next section
        else:
            next_section = thread_content.section.find_next_section()
            if next_section:
                other_content=next_section.threadcontent_set.all()
                if other_content:
                    first_sort_order=other_content[0].sort_order
                    new_sort_order = first_sort_order-1
                else:
                    new_sort_order = 0
                thread_content.section = next_section
                thread_content.sort_order = new_sort_order
                thread_content.save()


                # rewrite just thread content of section and next_section
                dajax.assign('#threadcontent_%s' % this_section.code, \
                                 'innerHTML', \
                                 this_section.return_content_html_string(edit=True))
                dajax.assign('#threadcontent_%s' % next_section.code, \
                                 'innerHTML', \
                                 next_section.return_content_html_string(edit=True))
                

            
    except Exception as e:
        dajax.alert("something wrong: %s" % e)
    return dajax.json()
示例#17
0
def delete_content(request, threadcontent_id):
    dajax = Dajax()

    try:
        thread_content=ThreadContent.objects.get(id=threadcontent_id)
        delete_prompt = '<h5>Confirm Delete</h5><p>Are you sure you want to delete this thread content: %s?</p>' % thread_content.get_title()
    
        course_thread_content = thread_content.coursethreadcontent_set.all()
        if course_thread_content:
            delete_prompt += '<p>Deleting will also delete content from the following courses:</p><ul>'
            
            for content in course_thread_content:
                delete_prompt += '<li>%s</li>' % content.course.name
            delete_prompt += '</ul>'

        click_command_base = thread_content.get_click_command_base()
        
        click_command = click_command_base % 'confirm_delete_content'
        delete_prompt += '<p><input type="button" value="Yes" onclick="%s;">' % click_command

        click_command = click_command_base % 'cancel_delete_content'
        delete_prompt += '<input type="button" value="No" onclick="%s;" style="margin-left: 3px;"></p>' % click_command

        dajax.assign('#%s_content_insert_below_content' % threadcontent_id, \
                         'innerHTML', delete_prompt)
        dajax.add_css_class('#%s_content_insert_below_content' % threadcontent_id, 'thread_info_box')


    except Exception as e:
        dajax.alert("something wrong: %s" % e)

    return dajax.json()
示例#18
0
文件: ajax.py 项目: rraidel89/portal
def rechazar_comprobante_recibido(request, tipo_comprobante, comprobante_id, observaciones, email_rechazo):
    dajax = Dajax()
    try:
        operador = request.user.get_profile()
        docs = core_models.Documento.objects.filter(pk=comprobante_id, tipo_comprobante=tipo_comprobante)
        estado = core_mixins.get_rejected_notif_status()
        if estado:
            print 'rechazar_comprobante_recibido - Estableciendo', docs.count(), 'comprobante a estado', estado.nombre
            docs.update(estado_notificacion=estado, observaciones=observaciones[:80])
            try:
                from innobee_util import util
                for doc in docs:
                    email_remitente = email_rechazo.strip()
                    if email_remitente == '':
                        email_remitente = doc.email_remitente
                    util.enviar_email_rechazo_comprobante(operador.get_nombre_completo(), email_remitente,
                               doc.observaciones, doc.razon_social_emisor, str(doc.monto_total), doc.secuencial)
            except Exception as e:
                dajax.alert('El comprobante fue rechazado pero no se pudo enviar el correo al remitente debido a: %s' % str(e))
        else:
            print 'rechazar_comprobante_recibido - No hay estado rechazado'
        dajax.script("activar_rechazo_comprobante('%s','%s');" % (tipo_comprobante, comprobante_id))
    except Exception as e:
        print 'rechazar_comprobante_recibido - Error', e
    return dajax.json()
示例#19
0
def flickr_save(request, new_title):
    dajax = Dajax()
    # Use new_title...
    dajax.script("cancel_edit();")
    dajax.assign("#title", "value", new_title)
    dajax.alert('Save complete using "%s"' % new_title)
    return dajax.json()
示例#20
0
def insert_content_below_section(request, section_code, thread_code, form):
    
    dajax = Dajax()

    try:

        thread_section = ThreadSection.objects.get(code=section_code, thread__code=thread_code)
        
        form_dict={}
        for  obj in form:
            form_dict[obj['name']]=obj['value']
        form =  ThreadContentForm(form_dict, prefix=section_code)
        if form.is_valid():
            content_type = form.cleaned_data.get('content_type')
            object_id = form.cleaned_data.get('object_id')
            substitute_title = form.cleaned_data.get('substitute_title')

            other_content = thread_section.threadcontent_set.reverse()
            if other_content:
                last_sort_order = other_content[0].sort_order
                sort_order = last_sort_order+1
            else:
                sort_order = 0

            thread_content = ThreadContent(section=thread_section,
                                           content_type=content_type,
                                           object_id=object_id,
                                           sort_order=sort_order,
                                           substitute_title=substitute_title)

            # since added section after form, need to validate again
            # to see if have duplicate content for thread
            try:
                thread_content.full_clean()
            except ValidationError as ve:
                dajax.assign('#%s_object_id_errors' % section_code,
                             'innerHTML',
                             ve.messages)
            else:
                thread_content.save()

                dajax.assign('#thread_contents', 'innerHTML', \
                                 thread_section.thread.render_html_edit_string())
        # if form is not valid
        else:
            dajax.assign('#%s_content_type_errors' % section_code,
                         'innerHTML',
                         form['content_type'].errors)
            dajax.assign('#%s_object_id_errors' % section_code,
                         'innerHTML',
                         form['object_id'].errors)
            dajax.assign('#%s_substitute_title_errors' % section_code,
                         'innerHTML',
                         form['substitute_title'].errors)

    except Exception as e:
        dajax.alert("something wrong: %s" % e)
        
    return dajax.json()
示例#21
0
文件: ajax.py 项目: renatax/bbc
def say_hello(request,pk):
    dajax = Dajax()
    nap = Nap.objects.get(pk=pk)
    print nap.user
    dajax.assign('#idUser', 'innerHTML', nap.user)
    dajax.assign('#idInfant', 'innerHTML', nap.infant)
    dajax.alert("Hello World!")
    return dajax.json()
示例#22
0
def set_config_deffered(request, ip, config):
    dajax = Dajax()
    sched = Scheduler()
    sched.start()
    job = sched.add_date_job(snmp_config.set_config, datetime.now() + timedelta(seconds=5), [ip, config])
    dajax.alert("Config set deferred for 5 seconds")
    dajax.script("stopLoading();")
    return dajax.json()
示例#23
0
def move_content_up(request, threadcontent_id):
    dajax = Dajax()
    try:
        thread_content=ThreadContent.objects.get(id=threadcontent_id)
        this_section = thread_content.section
      
        # if previous content in section, switch order
        previous_content = thread_content.find_previous_in_section()
        if previous_content:
            this_sort_order = thread_content.sort_order
            previous_sort_order = previous_content.sort_order

            # if sort_orders are the same, 
            # redo all sort orders before continuing
            if this_sort_order==previous_sort_order:
                for (i,tc) in enumerate(thread_content.section.threadcontent_set.all()):
                    tc.sort_order=i
                    tc.save()
                thread_content = ThreadContent.objects.get(id=threadcontent_id)
                previous_content = thread_content.find_previous_in_section()
                this_sort_order = thread_content.sort_order
                previous_sort_order = previous_content.sort_order
            thread_content.sort_order = previous_sort_order
            previous_content.sort_order = this_sort_order
            thread_content.save()
            previous_content.save()
            
            # rewrite just thread content of section
            dajax.assign('#threadcontent_%s' % this_section.code, \
                             'innerHTML', \
                             this_section.return_content_html_string(edit=True))


        # if content is first in section, move to end of previous section
        else:
            previous_section = thread_content.section.find_previous_section()
            if previous_section:
                other_content =  previous_section.threadcontent_set.reverse()
                if other_content:
                    last_sort_order = other_content[0].sort_order
                    new_sort_order = last_sort_order +1
                else:
                    new_sort_order = 0
                thread_content.section = previous_section
                thread_content.sort_order = new_sort_order
                thread_content.save()

                # rewrite just thread content of section and previous
                dajax.assign('#threadcontent_%s' % this_section.code, \
                                 'innerHTML', \
                                 this_section.return_content_html_string(edit=True))
                dajax.assign('#threadcontent_%s' % previous_section.code, \
                                 'innerHTML', \
                                 previous_section.return_content_html_string(edit=True))
            
    except Exception as e:
        dajax.alert("something wrong: %s" % e)
    return dajax.json()
示例#24
0
    def process(self):
        """
        Process the dajax request calling the apropiate method.
        """
        if self.is_callable():
            # 1. get the function
            thefunction = self.get_ajax_function()

            # 2. call the function
            try:
                response = thefunction(self.request)
                if isinstance(response, Dajax):
                    return response.render()
                else:
                    return response
            except Exception, e:
                log.exception("dajax error, e=%s" % (e))  # added by hehao
                # Development Server Debug
                if settings.DEBUG and DajaxRequest.get_dajax_debug():
                    import traceback
                    from dajax.utils import print_green_start, print_blue_start, print_clear, print_red

                    print_green_start()
                    print "#" * 50
                    print "uri:      %s" % self.request.build_absolute_uri()
                    print "function: %s" % self.full_name
                    print "#" * 50
                    print ""
                    print_red(str(e))
                    print_blue_start()
                    traceback.print_exc(e)
                    print_clear()

                # If it's an ajax request we need soft debug
                # http://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpRequest.is_ajax
                if self.request.is_ajax():
                    # If project was in debug mode, alert with Exception info
                    # if settings.DEBUG:#modified by hehao
                    if True:
                        response = Dajax()
                        # response.alert('Exception %s: Check %s manually for more information or your server log.' % (str(e), self.request.get_full_path()))
                        response.alert(u'亲,出错啦,请联系您的顾问!')
                        return response.render()
                    # If not, check DAJAX_ERROR_CALLBACK, if present call this function
                    # elif DajaxRequest.get_dajax_error_callback() != None:#modified by hehao
                    if DajaxRequest.get_dajax_error_callback() != None:
                        response = Dajax()
                        response.script(
                            DajaxRequest.get_dajax_error_callback() % str(e))
                        return response.render()
                    # Otherside ... raise Exception
                    else:
                        raise
                # If it's a non-ajax request raise Exception, Django cares.
                else:
                    raise
示例#25
0
def revision_form_submit(request, form, code):
    dajax = Dajax()
    form = RevisionForm(deserialize_form(form))

    dajax.remove_css_class('#revision-form textarea', 'error')
    dajax.remove('.error-message')

    if form.is_valid():

        commit_message = form.cleaned_data['commit_message']
        username, email = request.user.username, request.user.email

        # push changes to temp repo
        # update_file returns True if the push is success.
        commit_sha = utils.update_file(
            request.session['filepath'],
            commit_message,
            base64.b64encode(code),
            [username, email],
            main_repo=False,
        )

        if commit_sha is not None:
            # everything is fine

            # save the revision info in database
            rev = TextbookCompanionRevision(
                example_file_id=request.session['example_file_id'],
                commit_sha=commit_sha,
                commit_message=commit_message,
                committer_name=username,
                committer_email=email,
            )
            rev.save(using='scilab')

            dajax.alert(
                'submitted successfully! \nYour changes will be visible after review.'
            )
            dajax.script('$("#submit-revision-wrapper").trigger("close")')
    else:
        for error in form.errors:
            dajax.add_css_class('#id_{0}'.format(error), 'error')
        for field in form:
            for error in field.errors:
                message = '<div class="error-message">* {0}</div>'.format(
                    error)
                dajax.append('#id_{0}_wrapper'.format(field.name), 'innerHTML',
                             message)
        # non field errors
        if form.non_field_errors():
            message = '<div class="error-message"><small>{0}</small></div>'.format(
                form.non_field_errors())
            dajax.append('#non-field-errors', 'innerHTML', message)

    return dajax.json()
示例#26
0
def generateSchedule(request, form):
	dajax = Dajax()
	selectedCourses = Course.objects.none()
	timesUnavailable = []

	# Get the data
	numClasses = int(form['numClasses'])
	if 'byCourse' in request.session:
		for courseTuple in request.session['byCourse']:
			selectedCourses = selectedCourses | Course.objects.filter(subject=courseTuple[0], number=courseTuple[1])
	if 'byProf' in request.session:
		for profTuple in request.session['byProf']:
			selectedCourses = selectedCourses | Instructor.objects.get(userid=profTuple[1]).course.filter(subject=profTuple[0], number=profTuple[2])
	if 'byId' in request.session:
		for idTuple in request.session['byId']:
			selectedCourses = selectedCourses | Course.objects.filter(id=idTuple[0])
	if 'timesUnavailable' in request.session:
		for time in request.session['timesUnavailable']:
			timesUnavailable.append(time)
	if not selectedCourses:
		dajax.alert("Please select at least one class")
		dajax.script('$(\'#scheduleViewDiv\').activity(false);')
		dajax.remove_css_class('#scheduleViewDiv', 'emptySchedule');
		return dajax.json()
	if numClasses > len(selectedCourses):
		dajax.alert("Only %i class(es) meet your course selection. Please specify more classes" % len(selectedCourses))
		dajax.script('$(\'#scheduleViewDiv\').activity(false);')
		dajax.remove_css_class('#scheduleViewDiv', 'emptySchedule');
		return dajax.json()

	# Process the data
	processedCourses = createOptimalSchedule(numClasses, selectedCourses, timesUnavailable)

	optimalCourses = list(set(processedCourses[1]))
	optimalInstructors = list(set(Instructor.objects.filter(course__in = optimalCourses)))	
	optimalMeetingTimes = list(set(processedCourses[0]))
	optimalExamTimes = list(set(MeetingTime.objects.filter(course__in = optimalCourses).filter(Q(type="EXAM") | Q(type="MIDT"))))

	rejectedCourses = list(set(processedCourses[3]))
	rejectedInstructors = list(set(Instructor.objects.filter(course__in = rejectedCourses)))
	rejectedMeetingTimes = list(set(processedCourses[2]))

	processedData = {'optimalCourses': optimalCourses, 'optimalInstructors': optimalInstructors, 'optimalMeetingTimes': optimalMeetingTimes, 'optimalExamTimes': optimalExamTimes, 'rejectedCourses': rejectedCourses, 'rejectedInstructors': rejectedInstructors, 'rejectedMeetingTimes': rejectedMeetingTimes}
	request.session['processedData'] = processedData
	processedData['scheduledHTML'] = weeklySchedule(optimalMeetingTimes)

	# Serve the data
	dajax.assign('#scheduleViewDiv', 'innerHTML', render_to_response('schedulerSchedule.html', processedData).content)
	dajax.script('$(\'#scheduleViewDiv\').activity(false);')
	dajax.script('$(document).ready(jQueryEffects());')
	dajax.remove_css_class('#scheduleViewDiv', 'emptySchedule');
	dajax.add_css_class('#scheduleViewDiv', 'fullSchedule');
	dajax.clear('#warningDiv', 'innerHTML')
	return dajax.json()
示例#27
0
def cancel_edit_section(request, section_code, thread_code):
    dajax = Dajax()
    
    try:
        thread_section = ThreadSection.objects.get(code=section_code, thread__code=thread_code)
        dajax.assign('#thread_section_%s' % section_code, 'innerHTML', \
                         thread_section.return_html_innerstring(edit=True))

    except Exception as e:
        dajax.alert("something wrong: %s" % e)
    return dajax.json()
示例#28
0
def temp_add_order(req, form):
    dajax = Dajax()
    p = form['food']
    n = int(form['quantity'])
    if n == 0:
        dajax.alert("You Selected a Zero Quantity")
    else:
        m = Order(order_food = p, order_quantity = n, is_currentorder = True, dateofentry = timezone.now())
        m.save() 
        dajax.redirect(reverse('employee'), delay=0)
    return dajax.json()
示例#29
0
def cancel_edit_content(request, threadcontent_id):
    dajax = Dajax()

    try:
        thread_content=ThreadContent.objects.get(id=threadcontent_id)
        dajax.assign('#thread_content_%s' % threadcontent_id, 'innerHTML', \
                         thread_content.return_html_innerstring(edit=True))
    except Exception as e:
        dajax.alert("something wrong: %s" % e)

    return dajax.json()
def add_task( request, **kwargs ):

	project = get_object_or_404( Project, pk = kwargs['project'] )

	# controller auth checking.
	if( (not PermissionHandler.create_update( request.user, **kwargs )) ): # check for permission using the permissions module.
		dajax = Dajax()	# controller feedback
		dajax.alert('You do NOT have this permission')
		return dajax.json()


	



	# error handling for form data
	# controller input data checking
	try:
		for x in ['content','title','deadline']:
			if x not in kwargs.keys() or kwargs[x] == '':
				if x+'_feedback_field' in kwargs.keys():
					raise ValueError(x+' missing..',kwargs[x+'_feedback_field']) # controller feedback
				else:
					raise ValueError(x+' missing..')
	except ValueError as e:
		if (len(e.args) == 2):	# intercept special value errors
			dajax = Dajax()
			# clear feedback fields. controller feedback initialization
			for x in ['content','title','deadline']:
				dajax.script('document.getElementById("'+kwargs[x+'_feedback_field']+'").innerHTML = ""')
			# write scripts to be executed on the client side to inform the client of the value error in a proper manner.
			dajax.script('document.getElementById("'+e.args[1]+'").innerHTML = "'+e.args[0]+'"')
			return dajax.json()

	# controller operation
	task = Task()
	task.content = kwargs['content']
	task.title = kwargs['title']
	task.deadline = kwargs['deadline']
	task.parent = project

	if 'assignees' in kwargs.keys():
		for i in kwargs['assignees']:
			user = get_object_or_404( User, pk=i )
			task.assigned.add(user)


	task.user = request.user
	task.save()

	# controller response on success.
	dajax = Dajax()
	dajax.script('location.reload(true)')
	return dajax.json()
示例#31
0
def add_report_project(request, next_id):

    dajax = Dajax()

    inc_id = int(next_id) + 1

    dajax.alert(next_id)
    #dajax.script("$('#add_report_project_button').attr('title', '"+inc_id+"')")
    #dajax.alert("$('#add_report_project_button').attr('title')")

    return dajax.json()
示例#32
0
def cancel_delete_content(request, threadcontent_id):
    dajax = Dajax()
    
    try:
        thread_content=ThreadContent.objects.get(id=threadcontent_id)
        dajax.assign('#%s_content_insert_below_content' % threadcontent_id, \
                     'innerHTML', thread_content.content_insert_below_content_html()) 
        dajax.remove_css_class('#%s_content_insert_below_content' % threadcontent_id, 'thread_info_box')
    except Exception as e:
        dajax.alert("something wrong: %s" % e)

    return dajax.json()
示例#33
0
def make_user(request, uid, button_id):
    dajax = Dajax()

    user = User.objects.get(id=uid)
    #send request
    user.accessLevel = 0  # make user
    user.save()
    dajax.alert(user.login + ' accesslevel is 0')

    dajax.script("$('#" + button_id + "').hide()")

    return dajax.json()
示例#34
0
文件: views.py 项目: webiest/dajax
def dispacher(request,app_name,method):	
	import imp
	for app in settings.INSTALLED_APPS:
		try:
			app_path = __import__(app, {}, {}, [app.split('.')[-1]]).__path__
		except AttributeError:
			continue
		
		try:
			imp.find_module('ajax', app_path)
		except ImportError:
			continue
		
		django_project_name = app.split('.')[:-1][0]
		
		if app.split('.')[-1:][0] == app_name:
			#If this method was registered pass, else raise Exception
			if "%s.ajax.%s" % (app_name,method) in settings.DAJAX_FUNCTIONS:
				try:
					work = __import__('%s.ajax' % (app) , None, None, [method])
					response = work.__getattribute__(method)(request)
					if isinstance(response,Dajax):
						return response.render()
					else:
						return response
				#AttributeError raises when the method doesn't exists
				except AttributeError, e:
					raise Exception("%s method doesn't exists in %s.%s.ajax" % (method, django_project_name, app_name) )
				#Otherwise let's do some debug
				except Exception,e:
					# If it's an ajax request we need soft debug
					# http://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpRequest.is_ajax
					if request.is_ajax():
						# If project was in debug mode, alert with Exception info
						if settings.DEBUG:
							response = Dajax()
							response.alert('Exception %s: Check %s manually for more information' %(str(e), request.get_full_path()))
							return response.render()
						# If not, check DAJAX_ERROR_CALLBACK, if present call this function
						elif get_dajax_error_callback() != None:
							response = Dajax()
							response.script(get_dajax_error_callback() % str(e))
							return response.render()
						# Otherwsie ... raise Exception
						else:
							raise e
					# If it's a non-ajax request raise Exception, Django cares.
					else:
						raise e
			# This function isn't included into DAJAX_FUNCTIONS
			else:
				raise Exception("%s.ajax.%s isn't included into settings.DAJAX_FUNCTIONS" % (app_name, method) )
示例#35
0
def remove_revision(request):
    """
    remove revision from revision database
    """
    dajax = Dajax()
    print(request.session['revision_id'])
    TextbookCompanionRevision.objects.using('scilab').get(
        id=request.session['revision_id']).delete()

    dajax.alert('removed successfully!')
    dajax.script('location.reload()')

    return dajax.json()
示例#36
0
def send_form(request, form):
    dajax = Dajax()
    form = ContactForm(deserialize_form(form))

    if form.is_valid():
        pass
    else:
        dajax.alert("Hello World!")
        #dajax.remove_css_class('#my_form input', 'error')
        #for error in form.errors:
            

    return dajax.json()
示例#37
0
def cancel_insert_content_below_section(request, section_code, thread_code):
    
    dajax = Dajax()

    try:
        thread_section = ThreadSection.objects.get(code=section_code, thread__code=thread_code)
        dajax.assign('#%s_content_insert_below_section' % section_code,\
                         'innerHTML', \
                         thread_section.content_insert_below_section_html())
    except Exception as e:
        dajax.alert("something wrong: %s" % e)
        
    return dajax.json()
示例#38
0
def cancel_delete_section(request, section_code, thread_code):
    dajax = Dajax()
    
    try:
        thread_section = ThreadSection.objects.get(code=section_code, thread__code=thread_code)
        dajax.assign('#%s_section_info_box' % section_code, 'innerHTML', '')
        dajax.remove_css_class('#%s_section_info_box' % section_code, 'thread_info_box')

        
    except Exception as e:
        dajax.alert("something wrong: %s" % e)

    return dajax.json()
示例#39
0
def send_form(request, form):
    dajax = Dajax()
    form = forms.LoginForm(deserialize_form(form))

    if form.is_valid():
        dajax.remove_css_class('#my_form input', 'error')
        dajax.alert("Form is_valid(), your username is: %s" % form.cleaned_data.get('username'))
    else:
        dajax.remove_css_class('#my_form input', 'error')
        for error in form.errors:
            dajax.add_css_class('#id_%s' % error, 'error')

    return dajax.json()
示例#40
0
class FiltroReportesAjaxHelper(FiltroAjaxHelper):
    
    def __init__(self, request):
        self.dajax = Dajax()
        self.request = request
        
    def process_filter_general(self, form):
        try:
            form = er_forms.FrmFiltroRepGen(deserialize_form(form))
            if form.is_valid():
                helper = FiltroReportesHelper(self.request, form)
                suma = helper.process(self.get_ruc_empresa())
                if suma:
                    html = render_to_string('webparts/reportes/reporte_general_item.html', {'suma_facturas': suma})
                    self.dajax.assign('#reporte_general_content', 'innerHTML', html)
                else:
                    self.dajax.assign('#reporte_general_content', 'innerHTML', 'No se encontraron resultados con esos terminos de busqueda')
            else:
                print form.errors
        except Exception as e:
            traceback.print_exc()
            self.dajax.assign('#pleaseWaitDialog-alert', 'innerHTML', 'Error: %s' % str(e))

        return self.return_ajax(self.dajax)
    
    def process_filter_individual(self, form):
        try:
            form = er_forms.FrmFiltroRepInv(deserialize_form(form))
            if form.is_valid():
                helper = FiltroReportesHelper(self.request, form)
                suma1, suma2, razon_social_receptor = helper.process(self.get_ruc_empresa(), True)
                if (suma1 or suma2) and razon_social_receptor:
                    suma_facturas_receptor = suma1 + suma2
                    print 'DATES', helper.fecha_desde, helper.fecha_hasta
                    html = render_to_string('webparts/reportes/reporte_individual_item.html', {'suma_facturas_innobee': suma1,
                                                                                          'suma_facturas_buzon':suma2,
                                                                                          'razon_social_receptor':razon_social_receptor,
                                                                                          'suma_facturas_receptor':suma_facturas_receptor,
                                                                                          'fecha_inicio':helper.fecha_desde,
                                                                                          'fecha_fin':helper.fecha_hasta })
                    self.dajax.assign('#reporte_individual_content', 'innerHTML', html)

                else:
                    self.dajax.assign('#reporte_individual_content', 'innerHTML', 'No se encontraron resultados con esos terminos de busqueda')
            else:
                self.dajax.alert('La IDENTIFICACION es requerida')
        except Exception as e:
            traceback.print_exc()
            self.dajax.assign('#pleaseWaitDialog-alert', 'innerHTML', 'Error: %s' % str(e))

        return self.return_ajax(self.dajax)
示例#41
0
def addcart(request, obj, num):
    dajax = Dajax()
    #logging.error("IN ADDCART product %s, num %s", obj, num)
    try:
        session = Session.objects.get(session_key=request.session.session_key)
        session_cart = Cart.objects.filter(session=session)
    except:
        return dajax.json()
    if len(session_cart) == 0:
        #logging.error("creo nuovo CARRELLO e cartobj")
        cartobj = CartObj()
        cartobj.session = session
        cartobj.product = Product.objects.get(name=obj)
        cartobj.num = num
        cartobj.save()
        cart = Cart()
        cart.session = session
        cart.save()
        cart.product = [cartobj]
    else:
        old_products = session_cart[0].product.all()
        #logging.error("modifico esistente %s", old_products)
        if obj in [p.product.name for p in old_products] and old_products.get(
                product__name=obj).session.session_key == session.session_key:
            cartobj = old_products.get(product__name=obj)
            #logging.error("PRESENTE, modifico la quantita'")
            cartobj.num += int(num)
            if cartobj.num > p.product.number:
                #logging.error("SFORATA QUANTITA MASSIMA %s carr %s numero max %s", obj, cartobj.num, p.product.number)
                dajax.alert("Quantita' massima prodotto raggiunta")
                cartobj.num = p.product.number
                cartobj.save()
                return dajax.json()
            else:
                cartobj.save()
        else:
            #logging.error("CREO NUOVO CARTOBJ perche' non presente")
            cartobj = CartObj()
            cartobj.session = session
            cartobj.product = Product.objects.get(name=obj)
            cartobj.num = num
            cartobj.save()
            new_prods = [cartobj]
            for i in old_products:
                #logging.error("UUU %s", i)
                new_prods.append(i)
            #logging.error(new_prods)
            session_cart[0].product = new_prods
            #logging.error(session_cart[0].product)
    return showcart(request)
示例#42
0
def survey_response_delete(request, id):
    """Method to delete responses"""
    dajax = Dajax()
    try:
        survey_response = SurveyResponse.objects.get(pk=int(id))
        key = survey_response.key
        keyvalue = survey_response.keyvalue
        survey_response.delete()
        #dajax.alert("(%s - %s) is successfully deleted !!" % (key, keyvalue))
    except:
        dajax.alert("%s is not exist !!" % (id))
        for error in form.errors:
            dajax.add_css_class('#id_%s' % error, 'error')
    return dajax.json()
示例#43
0
def send_form(request, form):
    from forms import ExampleForm

    dajax = Dajax()
    form = ExampleForm(form)

    if form.is_valid():
        dajax.remove_css_class('#my_form input', 'error')
        dajax.alert("This form is_valid(), your username is: %s" %
                    form.cleaned_data.get('username'))
    else:
        dajax.remove_css_class('#my_form input', 'error')
        for error in form.errors:
            dajax.add_css_class('#id_%s' % error, 'error')
    return dajax.json()
示例#44
0
def survey_question_delete(request, id):
    """Method to delete the question & its responses"""
    dajax = Dajax()
    try:
        survey_question = SurveyQuestion.objects.get(pk=int(id))
        que = survey_question.question
        survey_response_list = SurveyResponse.objects.filter(
            surveyquestion=survey_question)
        for survey_resp in survey_response_list:
            survey_resp.delete()
        survey_question.delete()
        #dajax.alert("(%s) is successfully deleted !!" % (que))
    except:
        dajax.alert("%s is not exist !!" % (id))
        for error in form.errors:
            dajax.add_css_class('#id_%s' % error, 'error')
    return dajax.json()
示例#45
0
def cancellinbocmd(request):

    dajax = Dajax()
    retval = -1

    dajax.alert('cancel linbo entered!')
    with open("/tmp/linbo.log", "a") as linbolog:
        try:
            arg = '/usr/bin/asroot /usr/bin/killall linbo_cmd'
            args = shlex.split(arg)
            subprocess.check_call(args, stdout=linbolog, stderr=linbolog)
            print "retval of killall = " + str(retval)
        except subprocess.CalledProcessError, e:
            print "calledprocesserror in cancellinbocmd"
            print e.cmd
            print e.returncode
            print e.output
        finally:
示例#46
0
def survey_question_add_update(request, id, data, form_type,
                               after_initial_save, record_id):
    """ Ajax method to update the question """
    dajax = Dajax()

    if form_type == 'old_form':
        form = SurveyQuestionForm(data)

        if after_initial_save == 1 and record_id:
            survey_question = SurveyQuestion.objects.get(pk=int(record_id))
        else:
            survey_question = SurveyQuestion.objects.get(pk=int(id))

        form = SurveyQuestionForm(data, instance=survey_question)

    if form_type == 'new_form':
        form = SurveyQuestionNewForm(request.user, data)

    if form.is_valid():
        if form_type == 'old_form':
            object = form.save(commit=False)
            audio_message = form.cleaned_data.get('audio_message')
            object.message_type = audio_msg_type(audio_message)
            object.save()

        if form_type == 'new_form':
            obj = form.save(commit=False)
            obj.user = User.objects.get(username=request.user)
            obj.surveyapp = form.cleaned_data.get('surveyapp')
            audio_message = form.cleaned_data.get('audio_message')
            obj.message_type = audio_msg_type(audio_message)
            obj.save()
            dajax.assign('#id', 'value', obj.id)
        #dajax.alert("%s is successfully saved !!" % form.cleaned_data.get('question'))
    else:
        if form_type == 'new_form':
            dajax.remove_css_class('#new_survey_que_form_' + id + ' input',
                                   'error')
        if form_type == 'old_form':
            dajax.remove_css_class('#que_form_' + id + ' input', 'error')
        dajax.alert("error")
    return dajax.json()
示例#47
0
def displayclienteditor(request):
  
    print "inside ajaxx"
    dajax = Dajax()
    render=''
    dajax.alert('inside');


    clientFormset = modelformset_factory(client,
                                         form=clientForm,
                                         extra=1)

    clients = clientFormset()

    render = render_to_string('client_div.html', 
                              { 'formset_clientAdmin':clients,
                                'clientAdminVisible':'1'})

    dajax.assign('#editor','innerHTML',render)
    # dajax.script('reload();')
    return dajax.json()
示例#48
0
def push_revision(request, code):
    """
    code: from code editor on review interface
    """
    dajax = Dajax()
    revision = TextbookCompanionRevision.objects.using('scilab').get(
        id=request.session['revision_id'])

    print('pushing to repo')
    utils.update_file(revision.example_file.filepath,
                      revision.commit_message,
                      base64.b64encode(code),
                      [revision.committer_name, revision.committer_email],
                      branch='master',
                      main_repo=True)

    print('update push_status')
    revision.push_status = True
    revision.save()

    dajax.alert('pushed successfully!')
    dajax.script('location.reload()')

    return dajax.json()
示例#49
0
def save_user_time(request):
    dajax = Dajax()

    year = datetime.date.today().year
    month = datetime.date.today().month
    day = datetime.date.today().day
    tdate = "%d-%02d-%02d" % (year, month, day)

    try:
        uid = request.session['uid']

        status = utils.save_user_time(request, int(uid))
        last_diff = status[1]

        if status[0]:
            user_info = '<form method="post"> <input type="button" name="user_time" id="user_time" onclick="Dajaxice.timecard.save_user_time(Dajax.process);" class="onoffbutton_in"/> </form>'
            dajax.script('$("#counter_form").show();')
            if utils.check_duty(tdate, int(uid)):
                dajax.alert(
                    'You are on duty today! Please keep the kitchen clean :)')
        else:
            user_info = '<form method="post"> <input type="button" name="user_time" id="user_time" onclick="Dajaxice.timecard.save_user_time(Dajax.process);" class="onoffbutton_out"/> </form>'
            dajax.script('$("#counter_form").hide();')
            if utils.check_duty(tdate, int(uid)):
                dajax.alert(
                    'You are on duty today! Please check our kitchen before leaving the office! :) Thanks!'
                )

        dajax.assign('#user_time_block', 'innerHTML', user_info)

        dajax.script('$("#user_time").hide();')

        if last_diff > 0:
            animated_time_info = '<b style="color: red; font-size: 40px;">+%s</b>' % (
                last_diff)
            dajax.assign('#animated_time', 'innerHTML', animated_time_info)
            dajax.script('$("#animated_time").show();')
            dajax.script(
                '$("#animated_time").animate({ opacity: 0, top: "-=150"}, 2000, function() { $(this).hide(); $(this).css({"top" : "350", "opacity":"100", "display": "none"}); });'
            )

        dajax.script('$("#user_time").show();')
        nowtime = utils.get_unix_datetime()
        localtime = utils.convert_unix_date("time", nowtime)

        dajax.assign('#user_time_area', 'innerHTML', localtime)
    except:
        dajax.alert('Please refresh the page and try again.')

    return dajax.json()
示例#50
0
def bug_form_submit(request, form, cat_id, book_id, chapter_id, ex_id):
    dajax = Dajax()
    form = BugForm(deserialize_form(form))
    if form.is_valid():
        dajax.remove_css_class('#bug-form input', 'error')
        dajax.remove_css_class('#bug-form select', 'error')
        dajax.remove_css_class('#bug-form textarea', 'error')
        dajax.remove('.error-message')
        comment = form.cleaned_data['description']
        error = form.cleaned_data['issue']
        email = form.cleaned_data['email']
        print(comment)
        comment_data = TextbookCompanionPreference.objects.db_manager('scilab')\
                .raw(dedent("""\
                SELECT 1 as id, tcp.book as book, tcp.author as author,
                tcp.publisher as publisher, tcp.year as year,
                tcp.category as category, tce.chapter_id,
                tcc.number AS chapter_no, tcc.name AS chapter_name,
                tce.number AS example_no, tce.caption AS example_caption
                FROM textbook_companion_preference tcp
                LEFT JOIN textbook_companion_chapter tcc ON
                tcp.id = tcc.preference_id LEFT JOIN textbook_companion_example
                tce ON tce.chapter_id = tcc.id WHERE tce.id = %s"""), [ex_id])
        book_name = comment_data[0].book
        book_author = comment_data[0].author
        book_publisher = comment_data[0].publisher
        chapter_number = comment_data[0].chapter_no
        chapter_name = comment_data[0].chapter_name
        example_number = comment_data[0].example_no
        example_caption = comment_data[0].example_caption
        all_cat = False
        category = catg(comment_data[0].category, all_cat)
        subcategory = 0
        error_int = int(error)
        error = issues[error_int][1]
        context = {
            'category': category,
            'subcategory': subcategory,
            'error': error,
            'book': book_name,
            'author': book_author,
            'publisher': book_publisher,
            'chapter_name': chapter_name,
            'chapter_no': chapter_number,
            'example_id': ex_id,
            'example_caption': example_caption,
            'example_no': example_number,
            'comment': comment,
        }
        scilab_comment = ScilabCloudComment()
        scilab_comment.type = error_int
        scilab_comment.comment = comment
        scilab_comment.email = email
        scilab_comment.category = comment_data[0].category
        scilab_comment.books = book_id
        scilab_comment.chapter = chapter_id
        scilab_comment.example = ex_id
        scilab_comment.save(using='scilab')
        subject = "New Cloud Comment"
        message = render_to_string('website/templates/email.html', context)
        from_email = FROM_EMAIL
        to_email = TO_EMAIL
        cc_email = CC_EMAIL
        bcc_email = BCC_EMAIL
        # Send Emails to, cc, bcc
        msg = EmailMultiAlternatives(subject,
                                     message,
                                     from_email, [to_email],
                                     bcc=[bcc_email],
                                     cc=[cc_email])
        msg.content_subtype = "html"
        msg.send()
        dajax.alert("Thank you for your feedback")
        dajax.redirect('/index?eid=' + ex_id, delay=1000)

    else:
        dajax.remove_css_class('#bug-form input', 'error')
        dajax.remove_css_class('#bug-form select', 'error')
        dajax.remove_css_class('#bug-form textarea', 'error')
        dajax.remove('.error-message')
        for error in form.errors:
            dajax.add_css_class('#id_{0}'.format(error), 'error')
        for field in form:
            for error in field.errors:
                message = '<div class="error-message">* {0}</div>'.format(
                    error)
                dajax.append('#id_{0}_wrapper'.format(field.name), 'innerHTML',\
                message)
        # non field errors
        if form.non_field_errors():
            message = '<div class="error-message"><small>{0}</small></div>'\
                        .format(form.non_field_errors())
            dajax.append('#non-field-errors', 'innerHTML', message)
    return dajax.json()
示例#51
0
def say_hello(request, pk):
    dajax = Dajax()
    dajax.assign('#idUser', 'innerHTML', nap.user)
    dajax.assign('#idInfant', 'innerHTML', nap.infant)
    dajax.alert("Hello World!")
    return dajax.json()
示例#52
0
def shell(request, command, osname):

    dajax = Dajax()
    cmdstring = ""
    global last_linbo_action
    last_linbo_action = 'linbo_cmd is running...'

    mastermode = checkmastermode()

    if ((command == 'start') or (command == 'startvm') or
        (command == 'manage') or (command == 'syncstart') or
        (command == 'quicksync')) and (mastermode == 1):
        dajax.alert("Not allowed in master mode")
        return dajax.json()

    if command == 'start':
        with open("/tmp/linbo.log", "a") as linbolog:
            try:
                linbolog.write(
                    "<p style=\"color:#8C001A\">Executing /usr/bin/linbo_cmd start "
                    + osname.strip() + "</p>")
                linbolog.flush()
                call(["/usr/bin/linbo_cmd", "start",
                      osname.strip()],
                     stdout=linbolog,
                     stderr=linbolog)
            finally:
                linbolog.close()

    if command == 'startvm':
        with open("/tmp/linbo.log", "a") as linbolog:
            try:
                linbolog.write(
                    "<p style=\"color:#8C001A\">Executing /usr/bin/linbo_cmd startvm "
                    + osname.strip() + "</p>")
                linbolog.flush()
                call(["/usr/bin/linbo_cmd", "startvm",
                      osname.strip()],
                     stdout=linbolog,
                     stderr=linbolog)
            finally:
                linbolog.close()

    if command == 'manage':
        with open("/tmp/linbo.log", "a") as linbolog:
            try:
                linbolog.write(
                    "<p style=\"color:#8C001A\">Executing /usr/bin/linbo_cmd modifyvm "
                    + osname.strip() + "</p>")
                linbolog.flush()
                call(["/usr/bin/linbo_cmd", "modifyvm",
                      osname.strip()],
                     stdout=linbolog,
                     stderr=linbolog)
            finally:
                linbolog.close()

    if command == 'upload':
        with open("/tmp/linbo.log", "a") as linbolog:
            try:
                uname = request.session.get('username', 'invalid')
                pw = request.session.get('password', 'invalid')

                if uname != 'invalid' and pw != 'invalid':
                    linbolog.write(
                        "<p style=\"color:#8C001A\">Executing /usr/bin/linbo_cmd upload_images "
                        + osname.strip() + "</p>")
                    linbolog.flush()
                    call([
                        "/usr/bin/linbo_cmd", "upload_images", uname, pw,
                        osname.strip()
                    ],
                         stdout=linbolog,
                         stderr=linbolog)
                else:
                    linbolog.write(
                        "<p style=\"color:#8C001A\">Login credentials invalid</p>"
                    )
            finally:
                linbolog.close()

    if command == 'create':
        with open("/tmp/linbo.log", "a") as linbolog:
            try:
                linbolog.write(
                    "<p style=\"color:#8C001A\">Executing /usr/bin/linbo_cmd create "
                    + osname.strip() + "</p>")
                linbolog.flush()
                call(["/usr/bin/linbo_cmd", "create",
                      osname.strip()],
                     stdout=linbolog,
                     stderr=linbolog)
            finally:
                linbolog.close()

    if command == 'syncstart':
        with open("/tmp/linbo.log", "a") as linbolog:
            try:
                linbolog.write(
                    "<p style=\"color:#8C001A\">Executing /usr/bin/linbo_cmd syncstart "
                    + osname.strip() + " fullsync</p>")
                linbolog.flush()
                call([
                    "/usr/bin/linbo_cmd", "syncstart",
                    osname.strip(), "fullsync"
                ],
                     stdout=linbolog,
                     stderr=linbolog)
            finally:
                linbolog.close()

    if command == 'quicksync':
        with open("/tmp/linbo.log", "a") as linbolog:
            try:
                linbolog.write(
                    "<p style=\"color:#8C001A\">Executing /usr/bin/linbo_cmd syncstart "
                    + osname.strip() + "</p>")
                linbolog.flush()
                call(["/usr/bin/linbo_cmd", "syncstart",
                      osname.strip()],
                     stdout=linbolog,
                     stderr=linbolog)
            finally:
                linbolog.close()

    if command == 'console':
        cmdstring = "DISPLAY=:0 /usr/bin/uxterm &"
        os.system(cmdstring)

    if command == 'gparted':
        # gparted needs udevadm which is in /sbin
        cmdstring = "PATH=$PATH:/sbin DISPLAY=:0 /usr/bin/asroot /usr/sbin/gparted &"
        os.system(cmdstring)

    if command == 'linbo-smbmount':
        cmdstring = "DISPLAY=:0 /usr/bin/asroot /usr/bin/linbo-smbmount &"
        os.system(cmdstring)

    if command == 'initcache':
        with open("/tmp/linbo.log", "a") as linbolog:
            try:
                linbolog.write(
                    "<p style=\"color:#8C001A\">Executing /usr/bin/linbo_cmd initcache</p>"
                )
                linbolog.flush()
                call(["/usr/bin/linbo_cmd", "initcache"],
                     stdout=linbolog,
                     stderr=linbolog)
            finally:
                linbolog.close()

    if command == 'update_startconf':
        with open("/tmp/linbo.log", "a") as linbolog:
            try:
                linbolog.write(
                    "<p style=\"color:#8C001A\">Executing /usr/bin/linbo_cmd update_startconf</p>"
                )
                linbolog.flush()
                call(["/usr/bin/linbo_cmd", "update_startconf"],
                     stdout=linbolog,
                     stderr=linbolog)
            finally:
                linbolog.close()

    if command == 'update_linbo':
        with open("/tmp/linbo.log", "a") as linbolog:
            try:
                linbolog.write(
                    "<p style=\"color:#8C001A\">Executing /usr/bin/linbo_cmd update_linbo</p>"
                )
                linbolog.flush()
                call(["/usr/bin/linbo_cmd", "update_linbo"],
                     stdout=linbolog,
                     stderr=linbolog)
            finally:
                linbolog.close()

    if command == 'reboot':
        cmdstring = "/usr/bin/asroot /sbin/reboot"
        os.system(cmdstring)

    if command == 'shutdown':
        cmdstring = "/usr/bin/asroot /sbin/halt"
        os.system(cmdstring)

    # dajax.script('reload();')
    return dajax.json()
示例#53
0
文件: ajax.py 项目: andsild/IDIOpen
def ajaxalert(request):
    user = request.user
    dajax = Dajax()
    dajax.alert('Test')
    #s dajax.alert(user.get_full_name())
    return dajax.json()
示例#54
0
def loadinfodiv(request):

    dajax = Dajax()
    info = ''
    adminbuttons = ''
    cmdstring = ''

    uname = request.session.get('username', 'invalid')

    if uname == 'invalid':
        # no user is logged in, show warning
        info += '<p>Login required</p>'
        dajax.assign('#infodiv', 'innerHTML', info)
        dajax.assign('#adminbuttons_main', 'innerHTML', info)
        dajax.redirect('http://localhost/linboclient/', delay=0)
        return dajax.json()

    # first, gather information from our system
    with open("/tmp/linbo.log", "a") as linbolog:
        try:
            cmd1 = "awk '{print \"/dev/\"$4\" \"$3}' < /proc/partitions"
            p1 = subprocess.Popen(cmd1,
                                  stderr=linbolog,
                                  stdout=subprocess.PIPE,
                                  shell=True)

            cmd2 = "grep -E '/dev/[shx]v?d[a-z][0-9]+'"

            p2 = subprocess.Popen(cmd2,
                                  stdin=p1.stdout,
                                  stdout=subprocess.PIPE,
                                  stderr=linbolog,
                                  shell=True)
            p1.stdout.close()
            r2 = p2.communicate()[0]
            print "Result= %s" % r2
            print "Result.split() = %s" % r2.split()

            a2 = r2.split()

            # the r2 is now formatted as device size, let's gather the
            # remaining data

            info += '<div class="row">'
            info += '<div class="columns large-7 text-align:center">'
            info += '<h5>Partition Layout</h5>'
            info += '<table>'
            info += '<tr><th>Device</th><th>Size</th><th>Filesystem Type</th><th>Select</th><th>ImageName</th></tr>'
            for i in range(0, len(a2) / 2):
                print 2 * i, a2[(2 * i)]
                print 2 * i + 1, a2[(2 * i + 1)]

                cmd3 = "asroot /sbin/blkid " + a2[(2 * i)] + " -o export"
                print cmd3
                p3 = subprocess.Popen(cmd3,
                                      stderr=linbolog,
                                      stdout=subprocess.PIPE,
                                      shell=True)

                cmd4 = "grep '^TYPE'"
                p4 = subprocess.Popen(cmd4,
                                      stdin=p3.stdout,
                                      stdout=subprocess.PIPE,
                                      stderr=linbolog,
                                      shell=True)
                p3.stdout.close()
                r4 = p4.communicate()[0]
                if r4 != '':
                    r4 = r4.split("=")[1]

                    print r4
                    info += '<tr><td>' + a2[(2 * i)] + '</td>'
                    info += '    <td>' + a2[(2 * i + 1)] + '</td>'
                    info += '    <td>' + r4 + '</td>'
                    info += '    <td><input type="radio" id="partitioncheckbox" name="partitionradio" value="' + a2[
                        (2 * i)] + '"></td>'
                    info += '    <td><input type="text" id="label-' + a2[
                        (2 * i)] + '"></td></tr>'

            info += '</table>'
            info += '</div>'
            info += '<div class="columns large-2 left">'
            info += '<button type="button" onclick="Dajaxice.linboweb.linboclient.loadinfodiv(Dajax.process);" class="button radius tiny">Recalculate Partition Layout</button>'
            info += '<button type="button"  onclick="linbocmd(\'linbo-smbmount\',\'null\');" class="button radius tiny">Mount SMB Share</button>'
            info += '<button type="button"  onclick="imageSelectedPartitions();" class="button radius tiny">Image Selected Partition</button>'
            info += '<button type="button"  onclick="uploadSelectedPartitions();" class="button radius tiny">Upload Selected Partition</button>'
            info += '</div>'
            info += '</div>'

            dajax.assign('#infodiv', 'innerHTML', info)

        except:
            dajax.alert('Processing info div failed')
        finally:
            linbolog.close()
            dajax.assign('#infodiv', 'innerHTML', info)

        # gather linbo information
        linboversion = ''
        ip = ''
        mac = ''

        with open("/tmp/linbo.log", "a") as linbolog:
            try:
                arg = 'linbo_cmd version'
                args = shlex.split(arg)

                # we really need the output here, not the return value of linbo_cmd
                retval = subprocess.check_output(args, stderr=linbolog)
                linboversion = retval.strip('\n')

            except subprocess.CalledProcessError, e:
                print "calledprocesserror in loadinfodiv"
                print e.cmd
                print e.returncode
                print e.output
                linboversion = 'error'
            finally:
示例#55
0
def say_hello(request):
    print "asdasd"
    dajax = Dajax()
    dajax.alert("Hello World!")
    return dajax.json()
示例#56
0
def alert_test(request):
    dajax = Dajax()
    dajax.alert('Alert Test Works!!')
    dajax.append('#console', 'innerHTML', "dajax.alert('Alert Test Works!!')<br/>")
    return dajax.json()
示例#57
0
def survey_response_add_update(request, id, que_id, data, form_type,
                               new_response_id):
    """ Ajax method to update the response """
    dajax = Dajax()

    # 1st check survey question id
    if int(que_id) != 0:
        try:
            SurveyQuestion.objects.get(pk=que_id)
        except:
            #dajax.alert("error : First Save your survey question !!")
            return dajax.json()

    if int(que_id) == 0:
        #dajax.alert("error : First Save your survey question !!")
        return dajax.json()

    if form_type == 'old_form':
        form = SurveyResponseForm(data)
        survey_response = SurveyResponse.objects.get(pk=int(id))
        form = SurveyResponseForm(data, instance=survey_response)

    if form_type == 'new_form':
        form = SurveyResponseForm(data)

        if int(new_response_id) != 0:
            survey_response = SurveyResponse.objects.get(
                pk=int(new_response_id))
            form = SurveyResponseForm(data, instance=survey_response)

    if form.is_valid():
        key = form.cleaned_data.get("key")
        keyvalue = form.cleaned_data.get('keyvalue')

        duplicate_count = 0
        # start checking of duplicate key
        if form_type == 'old_form':
            resp_obj = SurveyResponse.objects.get(pk=id)
            if resp_obj.key != key:
                duplicate_count = SurveyResponse.objects.filter(
                    key=key, surveyquestion=resp_obj.surveyquestion).count()

        if form_type == 'new_form':
            if que_id == 0:  # without que id
                # get last inserted record
                surveyquestion = SurveyQuestion.objects.all().order_by(
                    '-id')[0]
            else:  # with que id
                surveyquestion = SurveyQuestion.objects.get(pk=que_id)
            duplicate_count = SurveyResponse.objects.filter(
                key=key, surveyquestion=surveyquestion).count()

        if duplicate_count >= 1 and form_type == 'old_form':
            #dajax.alert("error : (%s) duplicate record key & previous key (%s) is not changed!" % (key,
            #                                                                                       resp_obj.key))
            return dajax.json()

        if duplicate_count >= 1 and form_type == 'new_form' and int(
                new_response_id) == 0:
            #dajax.alert("error : (%s) duplicate record key !" % (key))
            return dajax.json()

        # end checking of duplicate key

        if form_type == 'old_form':
            form.save()
        if form_type == 'new_form':
            obj = form.save(commit=False)
            obj.surveyquestion = surveyquestion
            obj.save()
            dajax.assign('#new_response_id', 'value', obj.id)

        #dajax.alert("(%s - %s) is successfully saved !!" % (form.cleaned_data.get('key'),
        #                                                   form.cleaned_data.get('keyvalue')))
    else:
        if form_type == 'new_form':
            dajax.remove_css_class('#new_survey_que_form_' + id + ' input',
                                   'error')
        if form_type == 'old_form':
            dajax.remove_css_class('#que_form_' + id + ' input', 'error')
        dajax.alert("error")
        for error in form.errors:
            dajax.add_css_class('#id_%s' % error, 'error')

    return dajax.json()
示例#58
0
def param_test(request, what):
    dajax = Dajax()
    dajax.alert("You search = %s" % what)
    dajax.append('#console', 'innerHTML', "dajax.alert(\'You search = %s\' % what)<br/>")
    return dajax.json()