def export_subscriptions(self, request): subscriptions = self.model.objects.all() rows = [",".join([s.name, s.email]) for s in subscriptions] response = HttpResponse("\r\n".join(rows)) response.mimetype = "text/csv" response["Content‐Disposition"] = "attachment; filename=inscricoes.csv" return response
def __call__( self, request, *args, **kwargs ): """ Redirects to one of the CRUD methods depending on the HTTP method of the request. Checks whether the requested method is allowed for this resource. """ # Check permission if not self.authentication.is_authenticated(request): response = HttpResponse(_('Authorization Required'), mimetype=self.mimetype) challenge_headers = self.authentication.challenge_headers() for (k, v) in challenge_headers.items(): response[k] = v response.status_code = 401 return response try: return self.dispatch(request, self, *args, **kwargs) except HttpMethodNotAllowed: response = HttpResponseNotAllowed(self.permitted_methods) response.mimetype = self.mimetype return response
def export_subscriptions(self, request): subscriptions = self.model.objects.all() rows = [','.join([s.name, s.email]) for s in subscriptions] response = HttpResponse('\r\n'.join(rows)) response.mimetype = "text/csv" #response['Content-Disposition'] = 'attachment; filename=inscricoes.csv' return response
def export_subscriptions(self, request): """Metodo usado para exportar inscricoes, deve ser registrado no get_urls""" subscriptions = self.model.objects.all() rows = [','.join([s.name, s.email]) for s in subscriptions] response = HttpResponse('\r\n'.join(rows)) response.mimetype = "text/csv" response['content-Disposition'] = 'atachement; filename=inscricoes.csv' return response
def export_subscriptions(self, request): subscriptions = self.model.objects.all() rows = [','.join([s.name, s.email]) for s in subscriptions] response = HttpResponse('\r\n'.join(rows)) response.mimetype = "text/csv" response['Content-Disposition'] = 'attachment; filename=inscricoes.csv' return response
def export_subscriptions(self, request): ''' View para exportar inscritos em arquivo formato csv ''' subscriptions = self.model.objects.all() # list comprehension para contenar nome com email, separados por (,) rows = [','.join([s.name, (s.email or s.phone)]) for s in subscriptions] # prepara o response com mimetype response = HttpResponse('\r\n'.join(rows)) response.mimetype = 'text/csv' response['Content-Disposition'] = 'attachment; filename=inscricoes.csv' return response
def getScatterdata(request): year_ = datetime.datetime.now().year record_data = Land_record.objects.all() dictionary_data = [x for x in record_data.values()] frame = change_panda(dictionary_data) start = datetime.date(year_, 1, 1) end = datetime.date(year_, 12, 31) frame = frame[(frame.index >= start) & (frame.index <= end)] fig = Figure() axis = fig.add_subplot(1, 1, 1) frame.payment_remaining = frame.payment_remaining.apply(lambda x: 200 if x else 600) color = [x for x in frame.payment_remaining] axis.scatter(frame.index, frame.total_price, s=frame.payment_remaining, c=color, cmap="RdYlGn", alpha=0.8) data_set = set(zip(frame.index, frame.total_price)) data_counts = frame.index.value_counts().to_dict() for xy in data_set: axis.annotate(data_counts[xy[0]], xy=xy, fontsize=15, color="black", va="bottom", ha="center") for tick in axis.get_xticklabels(): tick.set_rotation(90) axis.xaxis.set_major_formatter(mpl.dates.DateFormatter('%b-%d')) fig.autofmt_xdate() axis.set_xlabel("Dates " + str(year_)) axis.set_ylabel("Remaining Payment Amounts") axis.set_title("Payment History Of Landload " + str(year_)) axis.tick_params(axis='x', colors='green') axis.tick_params(axis='y', colors='green') axis.legend([Circle( (0, 0), fc='r'), Circle((0, 0), fc='g')], ["Payment Remaining", "Payment Done"], loc='upper right') canvas = FigureCanvas(fig) output = io.BytesIO() canvas.print_png(output) response = HttpResponse(output.getvalue()) response.mimetype = "img/png" return response
def export(request): if request.method == "GET": filename = u"主机硬件信息" filename = filename.encode('gbk') response = HttpResponse() response['Content-Disposition'] = 'attachment; filename=' + filename + '.csv' response.mimetype = 'text/csv' # 直接拼装一个csv字符串 # 行中以","分隔, 每行以"\n" 分隔 res = [] line1 = [] # machine line1.extend([u'生产厂商', u'型号', u'序列号']) # os line1.extend([u'OS类型', u'OS位数', u'OS版本']) # ip line1.extend([u'管理IP', u'内网IP', u'外网IP',u'是否Bond',u'DNS服务器']) # cpu line1.extend([u'生产厂商', u'型号', u'内核数',u'数量']) # mem line1.extend([u'生产厂商', u'型号', u'容量(G)',u'数量']) res.append(','.join(line1)) item_list = export_hardware_info() for item in item_list: temp = [] temp.extend([item.machine_mf, item.machine_model, item.machine_sn]) temp.extend([item.os_type, item.os_bit, item.os_version]) temp.extend([item.manage_ip, item.private_ip, item.public_ip, str(item.is_bond), item.nameserver]) temp.extend([item.processor_mf, item.processor_model, item.processor_cores, item.processor_number]) mem_info = item.mem_list[0] temp.extend([mem_info.mem_mf, mem_info.mem_model, str(float(mem_info.mem_size)/1024), mem_info.mem_number]) res.append(','.join(temp)) content = '\n'.join(res) response.content = content.encode('gbk') return response else: return HttpResponseBadRequest(u"错误请求")
def __call__(self, request, *args, **kwargs): """ Redirects to one of the CRUD methods depending on the HTTP method of the request. Checks whether the requested method is allowed for this resource. """ # Check permission if not self.authentication.is_authenticated(request): response = HttpResponse(_('Authorization Required'), mimetype=self.mimetype) challenge_headers = self.authentication.challenge_headers() response._headers.update(challenge_headers) response.status_code = 401 return response try: return self.dispatch(request, self, *args, **kwargs) except HttpMethodNotAllowed: response = HttpResponseNotAllowed(self.permitted_methods) response.mimetype = self.mimetype return response
def getHistdata(request): record_data = Land_record.objects.all() dictionary_data = [x for x in record_data.values()] frame = change_panda(dictionary_data) date_frame = frame.index.value_counts().sort_index() year_ = datetime.datetime.now().year date = [] range_ = [] for info in date_frame.iteritems(): if info[0].year == year_: date.append(info[0]) range_.append(info[1]) fig = Figure() print(date) axis = fig.add_subplot(1, 1, 1) axis.plot(date, range_) #axis.xaxis.set_ticks(frame.index) axis.xaxis.set_major_formatter(mpl.dates.DateFormatter('%b-%d')) for tick in axis.get_xticklabels(): tick.set_rotation(90) x_lab = "Dates For " + str(year_) title = "User's Use history " + str(year_) axis.set_xlabel(x_lab) axis.set_ylabel("Number Of Users") axis.set_title(title) fig.autofmt_xdate() axis.tick_params(axis='x', colors='green') axis.tick_params(axis='y', colors='green') canvas = FigureCanvas(fig) output = io.BytesIO() canvas.print_png(output) response = HttpResponse(output.getvalue()) response.mimetype = "img/png" return response
def ajax_popup(request, popup_id='', url='/'): "Handles pop up forms and requests, by extracting only the required content from response content" view, args, kwargs = resolve(url) if not request.user.username: return HttpResponseRedirect('/accounts/login') modules = Module.objects.all() active = None for module in modules: try: import_name = module.name + "." + settings.HARDTREE_MODULE_IDENTIFIER hmodule = __import__(import_name, fromlist=[str(module.name)]) urls = hmodule.URL_PATTERNS for regexp in urls: if re.match(regexp, url): active = module except ImportError: pass except AttributeError: pass response = None if active: if not request.user.get_profile().has_permission(active): response = user_denied(request, "You do not have access to the %s module" % unicode(active), response_format='ajax') if not response: if view == ajax_popup: raise Http404("OMG, I see myself!") kwargs['request'] = request kwargs['response_format'] = 'ajax' response = view(*args, **kwargs) response = csrf().process_response(request, response) module_inner = "" regexp = r"<!-- module_content_inner -->(?P<module_inner>.*?)<!-- /module_content_inner -->" blocks = re.finditer(regexp, response.content, re.DOTALL) for block in blocks: module_inner += block.group('module_inner').strip() title = "" regexp = r"<div class=\\\"title\\\">(?P<title>.*?)</div>" blocks = re.finditer(regexp, response.content, re.DOTALL) for block in blocks: title += block.group('title').replace('\\n', '').strip() if not title: blocks = re.finditer(r"<title>(?P<title>.*?)</title>", response.content, re.DOTALL) for block in blocks: title += block.group('title').replace('\\n', '').strip() subtitle = "" regexp = r"<div class=\\\"subtitle-block\\\">(?P<subtitle>.*?)</div>" blocks = re.finditer(regexp, response.content, re.DOTALL) for block in blocks: subtitle += block.group('subtitle').replace('\\n', '').strip() context = {'content': module_inner, 'title': title, 'subtitle': subtitle} context['popup_id'] = popup_id context['url'] = request.path if settings.HARDTREE_RESPONSE_FORMATS['json'] in response.get('Content-Type', 'text/html'): new_response = render_to_response('core/ajax_popup', context, context_instance=RequestContext(request), response_format='json') else: new_response = HttpResponse(json.dumps({'popup': context})) new_response.mimetype = settings.HARDTREE_RESPONSE_FORMATS['json'] try: jsonresponse = json.loads(response.content) if 'redirect' in jsonresponse: new_response.status_code = 302 except Exception: new_response.status_code = response.status_code return new_response
def dataset_view(request, siloname, id): if not granary.issilo(siloname): raise Http404 rdfsilo = granary.get_rdf_silo(siloname) if not rdfsilo.exists(id): raise Http404 c = Context() silo = siloname #tmpl_context variables needed: c.silo_name, c.zipfiles, c.ident, c.id, c.path c.silo_name = siloname c.id = id ident = request.user c.ident = ident.username dataset = rdfsilo.get_item(id) creator = None if dataset.manifest and dataset.manifest.state and 'metadata' in dataset.manifest.state and dataset.manifest.state['metadata'] and \ 'createdby' in dataset.manifest.state['metadata'] and dataset.manifest.state['metadata']['createdby']: creator = dataset.manifest.state['metadata']['createdby'] http_method = request.method if http_method == "GET": c.editor = False if settings.METADATA_EMBARGOED: if not ident: return HttpResponse("Not Authorised", status=401) silos = authz(ident) if silo not in silos: return HttpResponseForbidden("Forbidden") silos_admin = authz(ident, permission='administrator') silos_manager = authz(ident, permission='manager') if c.ident == creator or silo in silos_admin or silo in silos_manager: c.editor = True elif ident: silos = authz(ident) if silo in silos: silos_admin = authz(ident, permission='administrator') silos_manager = authz(ident, permission='manager') if ident['repoze.who.userid'] == creator or silo in silos_admin or silo in silos_manager: c.editor = True else: #identity management of item if not ident: return HttpResponse("Not Authorised", status=401) silos = authz(ident) if silo not in silos: return HttpResponseForbidden("Forbidden") silos_admin = authz(ident, permission='administrator') silos_manager = authz(ident, permission='manager') if not (c.ident == creator or silo in silos_admin or silo in silos_manager): return HttpResponseForbidden("Forbidden") if http_method == "GET": c.zipfiles = get_zipfiles_in_dataset(dataset) # conneg return accept_list = None if 'HTTP_ACCEPT' in request.META: try: accept_list = conneg_parse(request.META['HTTP_ACCEPT']) except: accept_list= [MT("text", "html")] if not accept_list: accept_list= [MT("text", "html")] mimetype = accept_list.pop(0) while(mimetype): if str(mimetype).lower() in ["text/html", "text/xhtml"]: return render_to_response("/list_of_zipfiles.html", {'c':c,}) elif str(mimetype).lower() in ["text/plain", "application/json"]: return HttpResponse(json.dumps(list(c.zipfiles.keys())), mimetype = 'application/json; charset="UTF-8"') try: mimetype = accept_list.pop(0) except IndexError: mimetype = None #Whoops nothing satisfies - return text/html return render_to_response("/list_of_zipfiles.html", {'c':c,}) elif http_method == "POST": params = request.POST if not (params.has_key("filename") and params['filename']): return HttpResponse("You must supply a filename to unpack", status=400) item_real_filepath = dataset.to_dirpath() target_filepath = "%s/%s"%(item_real_filepath, params['filename']) if not os.path.isfile(target_filepath): return HttpResponse("File to unpack not found", status=404) if not check_file_mimetype(target_filepath, 'application/zip'): return HttpResponse("File is not of type application/zip", status=415) if params.has_key("id") and params['id']: target_dataset_name = params['id'] else: target_dataset_name = id #step 1: Create / initialize target dataset if not rdfsilo.exists(target_dataset_name): if not allowable_id2(target_dataset_name): return HttpResponse("Data package name can contain only the following characters - %s and has to be more than 1 character"%ag.naming_rule_humanized, status=400, mimetype="text/plain") target_dataset = create_new(rdfsilo, target_dataset_name, c.ident) hr = HttpResponse("Created", status=201, mimetype="text/plain") hr["Content-Location"] = reverse("dataset_view", kwargs={'siloname': siloname, 'id': target_dataset_name}) else: hr = HttpResponse("204 Updated", status=204, mimetype="text/plain") target_dataset = rdfsilo.get_item(target_dataset_name) #step 2: Unpack zip item try: unpack_zip_item(target_dataset, dataset, params['filename'], rdfsilo, c.ident) except BadZipfile: return HttpResponse("BadZipfile: Couldn't unpack zipfile", status=400, mimetype="text/plain") # FIXME: err.. wat is this?! target_dataset.sync() target_dataset.sync() target_dataset.sync() if hr.status == 201: try: b.creation(silo, id, ident=c.ident) except: pass else: try: b.change(silo, id, ident=c.ident) except: pass # conneg return accept_list = None if 'HTTP_ACCEPT' in request.META: try: accept_list = conneg_parse(request.META['HTTP_ACCEPT']) except: accept_list= [MT("text", "html")] if not accept_list: accept_list= [MT("text", "html")] mimetype = accept_list.pop(0) while(mimetype): if str(mimetype).lower() in ["text/html", "text/xhtml"]: return redirect(reverse("dataset_view", kwargs={'silo': silo, 'id': id})) elif str(mimetype).lower() in ["text/plain", "application/json"]: hr.mimetype = "text/plain" return hr try: mimetype = accept_list.pop(0) except IndexError: mimetype = None # Whoops - nothing satisfies - return text/plain hr.mimetype = "text/plain" return hr
def ajax_popup(request, popup_id='', url='/'): "Handles pop up forms and requests, by extracting only the required content from response content" view, args, kwargs = resolve(url) if not request.user.username: return HttpResponseRedirect('/accounts/login') modules = Module.objects.all() active = None for module in modules: try: import_name = module.name + "." + \ settings.ANAF_MODULE_IDENTIFIER hmodule = __import__(import_name, fromlist=[str(module.name)]) urls = hmodule.URL_PATTERNS for regexp in urls: if re.match(regexp, url): active = module except ImportError: pass except AttributeError: pass response = None if active and not request.user.profile.has_permission(active): response = user_denied(request, "You do not have access to the {0!s} module".format(unicode(active)), response_format='ajax') if not response: if view == ajax_popup: raise Http404("OMG, I see myself!") kwargs['request'] = request kwargs['response_format'] = 'ajax' response = view(*args, **kwargs) # response = csrf().process_response(request, response) module_inner = "" regexp = r"<!-- module_content_inner -->(?P<module_inner>.*?)<!-- /module_content_inner -->" blocks = re.finditer(regexp, response.content, re.DOTALL) for block in blocks: module_inner += block.group('module_inner').strip() title = "" regexp = r"<div class=\\\"title\\\">(?P<title>.*?)</div>" blocks = re.finditer(regexp, response.content, re.DOTALL) for block in blocks: title += block.group('title').replace('\\n', '').strip() if not title: blocks = re.finditer( r"<title>(?P<title>.*?)</title>", response.content, re.DOTALL) for block in blocks: title += block.group('title').replace('\\n', '').strip() subtitle = "" regexp = r"<div class=\\\"subtitle-block\\\">(?P<subtitle>.*?)</div>" blocks = re.finditer(regexp, response.content, re.DOTALL) for block in blocks: subtitle += block.group('subtitle').replace('\\n', '').strip() context = {'content': module_inner, 'title': title, 'subtitle': subtitle, 'popup_id': popup_id, 'url': request.path} if settings.ANAF_RESPONSE_FORMATS['json'] in response.get('Content-Type', 'text/html'): new_response = render_to_response('core/ajax_popup', context, context_instance=RequestContext(request), response_format='json') else: new_response = HttpResponse(json.dumps({'popup': context})) new_response.mimetype = settings.ANAF_RESPONSE_FORMATS['json'] try: jsonresponse = json.loads(response.content) if 'redirect' in jsonresponse: new_response.status_code = 302 except Exception: new_response.status_code = response.status_code return new_response
def dataset_view(request, siloname, id): if not granary.issilo(siloname): raise Http404 rdfsilo = granary.get_rdf_silo(siloname) if not rdfsilo.exists(id): raise Http404 c = Context() silo = siloname #tmpl_context variables needed: c.silo_name, c.zipfiles, c.ident, c.id, c.path c.silo_name = siloname c.id = id ident = request.user c.ident = ident.username dataset = rdfsilo.get_item(id) creator = None if dataset.manifest and dataset.manifest.state and 'metadata' in dataset.manifest.state and dataset.manifest.state['metadata'] and \ 'createdby' in dataset.manifest.state['metadata'] and dataset.manifest.state['metadata']['createdby']: creator = dataset.manifest.state['metadata']['createdby'] http_method = request.method if http_method == "GET": c.editor = False if settings.METADATA_EMBARGOED: if not ident: return HttpResponse("Not Authorised", status=401) silos = authz(ident) if silo not in silos: return HttpResponseForbidden("Forbidden") silos_admin = authz(ident, permission='administrator') silos_manager = authz(ident, permission='manager') if c.ident == creator or silo in silos_admin or silo in silos_manager: c.editor = True elif ident: silos = authz(ident) if silo in silos: silos_admin = authz(ident, permission='administrator') silos_manager = authz(ident, permission='manager') if ident[ 'repoze.who.userid'] == creator or silo in silos_admin or silo in silos_manager: c.editor = True else: #identity management of item if not ident: return HttpResponse("Not Authorised", status=401) silos = authz(ident) if silo not in silos: return HttpResponseForbidden("Forbidden") silos_admin = authz(ident, permission='administrator') silos_manager = authz(ident, permission='manager') if not (c.ident == creator or silo in silos_admin or silo in silos_manager): return HttpResponseForbidden("Forbidden") if http_method == "GET": c.zipfiles = get_zipfiles_in_dataset(dataset) # conneg return accept_list = None if 'HTTP_ACCEPT' in request.META: try: accept_list = conneg_parse(request.META['HTTP_ACCEPT']) except: accept_list = [MT("text", "html")] if not accept_list: accept_list = [MT("text", "html")] mimetype = accept_list.pop(0) while (mimetype): if str(mimetype).lower() in ["text/html", "text/xhtml"]: return render_to_response("/list_of_zipfiles.html", { 'c': c, }) elif str(mimetype).lower() in ["text/plain", "application/json"]: return HttpResponse( json.dumps(list(c.zipfiles.keys())), mimetype='application/json; charset="UTF-8"') try: mimetype = accept_list.pop(0) except IndexError: mimetype = None #Whoops nothing satisfies - return text/html return render_to_response("/list_of_zipfiles.html", { 'c': c, }) elif http_method == "POST": params = request.POST if not (params.has_key("filename") and params['filename']): return HttpResponse("You must supply a filename to unpack", status=400) item_real_filepath = dataset.to_dirpath() target_filepath = "%s/%s" % (item_real_filepath, params['filename']) if not os.path.isfile(target_filepath): return HttpResponse("File to unpack not found", status=404) if not check_file_mimetype(target_filepath, 'application/zip'): return HttpResponse("File is not of type application/zip", status=415) if params.has_key("id") and params['id']: target_dataset_name = params['id'] else: target_dataset_name = id #step 1: Create / initialize target dataset if not rdfsilo.exists(target_dataset_name): if not allowable_id2(target_dataset_name): return HttpResponse( "Data package name can contain only the following characters - %s and has to be more than 1 character" % ag.naming_rule_humanized, status=400, mimetype="text/plain") target_dataset = create_new(rdfsilo, target_dataset_name, c.ident) hr = HttpResponse("Created", status=201, mimetype="text/plain") hr["Content-Location"] = reverse("dataset_view", kwargs={ 'siloname': siloname, 'id': target_dataset_name }) else: hr = HttpResponse("204 Updated", status=204, mimetype="text/plain") target_dataset = rdfsilo.get_item(target_dataset_name) #step 2: Unpack zip item try: unpack_zip_item(target_dataset, dataset, params['filename'], rdfsilo, c.ident) except BadZipfile: return HttpResponse("BadZipfile: Couldn't unpack zipfile", status=400, mimetype="text/plain") # FIXME: err.. wat is this?! target_dataset.sync() target_dataset.sync() target_dataset.sync() if hr.status == 201: try: b.creation(silo, id, ident=c.ident) except: pass else: try: b.change(silo, id, ident=c.ident) except: pass # conneg return accept_list = None if 'HTTP_ACCEPT' in request.META: try: accept_list = conneg_parse(request.META['HTTP_ACCEPT']) except: accept_list = [MT("text", "html")] if not accept_list: accept_list = [MT("text", "html")] mimetype = accept_list.pop(0) while (mimetype): if str(mimetype).lower() in ["text/html", "text/xhtml"]: return redirect( reverse("dataset_view", kwargs={ 'silo': silo, 'id': id })) elif str(mimetype).lower() in ["text/plain", "application/json"]: hr.mimetype = "text/plain" return hr try: mimetype = accept_list.pop(0) except IndexError: mimetype = None # Whoops - nothing satisfies - return text/plain hr.mimetype = "text/plain" return hr