def inputFormDisplay(request, template='upload.html'): """Displays input form that takes fasta and ids files.""" if request.method == 'POST': form = InputForm(request.POST, request.FILES) if form.is_valid(): # create UID sym_task = symTyperTask.objects.create() sym_task.UID = str(sym_task.id) + '.' + str(time.time()) sym_task.params = form.yamlfyParams() sym_task.save() parentDir = os.path.join(settings.SYMTYPER_HOME, sym_task.UID) os.makedirs(parentDir) os.system("""chmod 775 %s"""%(parentDir)) fasta = os.path.join(parentDir, "input.fasta") samples = os.path.join(parentDir, "samples.ids") writeFile(request.FILES['fasta_File'], fasta) writeFile(request.FILES['sample_File'], samples) task = handleForm.delay(fasta, samples, "test", sym_task.UID) return HttpResponseRedirect(reverse("index", args=[sym_task.UID])) else: form = InputForm() context = {'form': form,} return render(request, template, context)
def get_session(request): form = InputForm(request.GET) if not form.is_valid(): error_msg = "" for k, v in form.errors.items(): error_msg += "%s: %s\n" % (k, ", ".join(v)) return HttpResponse(json.dumps({ 'success': False, 'msg': error_msg }), content_type="application/json") subscriber_id = form.cleaned_data['userName'] transaction_id = form.cleaned_data['transactionId'] logger.debug("Getting session for user (%s), transaction id: (%s)", subscriber_id, transaction_id) pcrf_client = PCRFClient() result = pcrf_client.query_session(subscriber_id=subscriber_id) response = { 'success': result['action_result'], 'msg': result.get('action_error_message'), 'session': result.get('session') } log_action(inspect.stack()[0][3], request, response, transaction_id=transaction_id) return HttpResponse(json.dumps(response), content_type="application/json")
def get_profile(request): form = InputForm(request.GET) if not form.is_valid(): error_msg = "" for k, v in form.errors.items(): error_msg += "%s: %s\n" % (k, ", ".join(v)) return HttpResponse(json.dumps({ 'success': False, 'msg': error_msg }), content_type="application/json") subscriber_id = form.cleaned_data['userName'] transaction_id = form.cleaned_data['transactionId'] free_quota = form.cleaned_data['freeQuota'] pcrf_client = PCRFClient() profile_result = pcrf_client.get_profile(subscriber_id=subscriber_id, free_quota=free_quota) logger.debug("Getting profile for user (%s), transaction id: (%s)", subscriber_id, transaction_id) if not profile_result['action_result']: response = { 'success': True if profile_result.get('action_error_message').endswith( "does not exist") else profile_result['action_result'], 'msg': profile_result.get('action_error_message'), } if 'not_exist' in profile_result: response['not_exist'] = profile_result['not_exist'] log_action(inspect.stack()[0][3], request, response, transaction_id=transaction_id) return HttpResponse(json.dumps(response), content_type="application/json") topups_result = pcrf_client.get_services(subscriber_id, service_type='topup', free_quota=free_quota) response = { 'success': True if topups_result.get('action_error_message', '').endswith("does not exist") else topups_result['action_result'], 'msg': topups_result.get('action_error_message'), 'profile': profile_result.get('profile'), 'topups': topups_result.get('services') } log_action(inspect.stack()[0][3], request, response, transaction_id=transaction_id) return HttpResponse(json.dumps(response), content_type="application/json")
def index(request): result = "" grid = "" if request.method == 'POST': form = InputForm(request.POST) if form.is_valid(): if form.cleaned_data.get('grid'): data = form.cleaned_data.get('grid') grid = eval(data) result = best_path.grid_search(grid) else: form = InputForm(initial={'text': 'text here'}) return render(request, 'index.html', {'grid': grid, 'result': result, 'form': form})
def get_dpi_usage(request): form = InputForm(request.GET) if not form.is_valid(): error_msg = "" for k, v in form.errors.items(): error_msg += "%s: %s\n" % (k, ", ".join(v)) return HttpResponse(json.dumps({ 'success': False, 'msg': error_msg }), content_type="application/json") subscriber_id = form.cleaned_data['subscriber_id'] start_date = form.cleaned_data['start_date'] end_date = form.cleaned_data['end_date'] logger.debug( "Getting Subscriber ID: (%s) , start date: (%s), end date: (%s)", subscriber_id, start_date, end_date) data = DPI_XML_REQUEST % { 'subscriber_id': subscriber_id, 'start_date': start_date, 'end_date': end_date } headers = {'Content-Type': 'text/xml'} req = urllib2.Request(DPI_URL, data, headers) response = urllib2.urlopen(req) xml = response.read() #[email protected] res = re.findall( "@example.jaxws.sun.com>\r\nContent-Type: application/x-gzip\r\nContent-Transfer-Encoding: binary\r\n\r\n(.*)\r\n--uuid", xml, re.DOTALL) if res and not res[ 0] == "\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00": # gets the gzip binary data into an object to extract .gz file to plain text fio = StringIO.StringIO(res[0]) final = gzip.GzipFile(fileobj=fio) results = [] for line in final.readlines(): line = line.split(',') results.append([line[1], line[2].replace("\n", "")]) response = {"error": False, "errorMessage": "", "results": results} return HttpResponse(json.dumps(response), content_type="application/json") response = { "error": True, "type": "warning", "errorMessage": "Subscriber not found." } return HttpResponse(json.dumps(response), content_type="application/json")
def tan(request): t = None # initial value of result if request.method == 'POST': form = InputForm(request.POST) if form.is_valid(): form = form.save(commit=False) radianos = form.radianos t = calculate_tan(radianos) else: form = InputForm() return render_to_response('tan.html', {'form': form, 't': '%.5f' % t if isinstance(t, float) else '' }, context_instance=RequestContext(request))
def tan(request): t = None # initial value of result if request.method == 'POST': form = InputForm(request.POST) if form.is_valid(): form = form.save(commit=False) radianos = form.radianos t = calculate_tan(radianos) else: form = InputForm() return render_to_response('tan.html', { 'form': form, 't': '%.5f' % t if isinstance(t, float) else '' }, context_instance=RequestContext(request))
def get_dpi_usage(request): form = InputForm(request.GET) if not form.is_valid(): error_msg = "" for k, v in form.errors.items(): error_msg += "%s: %s\n" % (k, ", ".join(v)) return HttpResponse(json.dumps({'success': False, 'msg': error_msg}), content_type="application/json") subscriber_id = form.cleaned_data['subscriber_id'] start_date = form.cleaned_data['start_date'] end_date = form.cleaned_data['end_date'] logger.debug("Getting Subscriber ID: (%s) , start date: (%s), end date: (%s)", subscriber_id, start_date, end_date) data = DPI_XML_REQUEST % {'subscriber_id': subscriber_id, 'start_date': start_date, 'end_date': end_date} headers = {'Content-Type': 'text/xml'} req = urllib2.Request(DPI_URL, data, headers) response = urllib2.urlopen(req) xml = response.read()
def initiate(request): """Request user's phone number. This would ordinarily be provided by the mobile operator; we need it to correctly simulate interaction .""" data = {} data.update(csrf(request)) if request.method == 'POST': form = InputForm(request.POST) if form.is_valid(): request.session['phone_number'] = form.cleaned_data['input'] return HttpResponseRedirect(reverse('interact')) else: form = InputForm() data['form'] = form return render_to_response('initiate.html', data, context_instance=RequestContext(request))
def interact(request): """Accept input from user and display menus from the application""" if 'phone_number' not in request.session: return HttpResponseRedirect(reverse('initiate')) data = {} data.update(csrf(request)) user_input = INITIAL_INPUT if request.method == 'POST': form = InputForm(request.POST) if form.is_valid(): user_input = form.cleaned_data['input'] # Always create a new unbound form (so that previous inputs don't # show up in current form fields) form = InputForm() args = { 'EXTRA': request.session.get('extra', ''), 'LEVEL': request.session.get('level', INITIAL_LEVEL), 'MSISDN': request.session['phone_number'], 'SESSIONID': '1', 'INPUT': user_input } base_url = 'http://wezatele.webfactional.com/maji/maji.php' # base_url = request.build_absolute_uri(reverse('dispatch')) url = '%s?%s' % (base_url, urlencode(args)) response = urlopen(url).read() data['response'] = response level, data['message'], status, extra = response.split('^') request.session['level'] = level request.session['extra'] = extra data['form'] = form data['status'] = status return render_to_response('interact.html', data, context_instance=RequestContext(request))
def create_edit_input(request, input_id=None): if request.method == 'POST': if input_id != None: thisinput = InputSubstance.objects.get(id=input_id) form = InputForm(request.POST, instance=thisinput) if form.is_valid(): form.save() messages.success(request, "Input updated") admin = User.objects.get(username=ADMIN_USERNAME) addMessage = InternalMessage( sender=admin, title=request.user.first_name + ' made some changes to ' + form.cleaned_data['name'] + '...', body=request.user.first_name + ' made changes to ' + form.cleaned_data['name'] + '\n\nYou should probably take a look...') addMessage.save() addMessage.recipient.add(admin) addMessage.save() print 'New input message sent....' else: messages.add_message(request, settings.DISALLOWED_MESSAGE, "Hold on, somethings not right there...") return render(request, 'create_edit_input.html', { 'form': form, 'input': thisinput }) return HttpResponseRedirect('/data/input/all') else: form = InputForm(request.POST) if form.is_valid(): new_input = form.save() messages.success(request, "Input added") admin = User.objects.get(username=ADMIN_USERNAME) addMessage = InternalMessage( sender=admin, title=request.user.first_name + ' added an Input', body=request.user.first_name + ' added an Input called ' + form.cleaned_data['name'] + '\n\nYou should look at it and add the emission factor and SimaPro ID...' ) addMessage.save() addMessage.recipient.add(admin) addMessage.save() print 'New input message sent....' else: messages.add_message(request, settings.DISALLOWED_MESSAGE, "Hold on, somethings not right there...") return render(request, 'create_edit_input.html', {'form': form}) return HttpResponseRedirect('/data/input/all/') else: args = {} args.update(csrf(request)) if input_id is None: form = InputForm() else: input_instance = InputSubstance.objects.get(id=input_id) args['input'] = input_instance form = InputForm(instance=input_instance) args['form'] = form try: args['dismissMessage'] = Content.objects.get( name='InputsOutputsMessage') except: pass return render(request, 'create_edit_input.html', args)