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()
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()
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()
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()
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> ' % ( 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()
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> %s</td><td> %s</td><td> %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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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
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()
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()
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()
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()
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()
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()
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()
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()
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) )
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()
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()
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()
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()
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()
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)
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)
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()
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()
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()
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:
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()
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()
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()
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()
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()
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()
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()
def ajaxalert(request): user = request.user dajax = Dajax() dajax.alert('Test') #s dajax.alert(user.get_full_name()) return dajax.json()
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:
def say_hello(request): print "asdasd" dajax = Dajax() dajax.alert("Hello World!") return dajax.json()
def alert_test(request): dajax = Dajax() dajax.alert('Alert Test Works!!') dajax.append('#console', 'innerHTML', "dajax.alert('Alert Test Works!!')<br/>") return dajax.json()
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()
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()