def countries(request): context = RequestContext(request) countries = Country.objects.all() countries_disbursement_values = [] countries_execution_values = [] for country in countries: countries_disbursement_values.append({ 'name': str(country.name), 'url_ongoing': reverse('countries_ongoing', args=[country.slug, 'disbursement']) }) countries_execution_values.append({ 'name': str(country.name), 'url_ongoing': reverse('countries_ongoing', args=[country.slug, 'execution']) }) context.update({'countries_disbursement': countries_disbursement_values, 'countries_execution': countries_execution_values}) if context.get('user').is_anonymous(): countries_user = Country.objects.all() context.update({'user': {'is_anonymous': True}}) else: countries = context.get('user').dashboarduser.countries.all() context.update({'user': context.get('user')}) context.update({'countries': countries}) return render_to_response("countries.html", context)
def life_save(request): context = RequestContext(request) user = context.get('user') if user.dashboarduser.have_database_access is False: return redirect('index') countries = context.get('user').dashboarduser.countries.all() context.update({'countries': countries}) return render_to_response("life_save.html", context)
def handle_pdf(self, request, queryset): if "pdf" not in formats: raise ImportError, "The site is not configured to handle pdf." # this is again some quick and dirty sample code elements = [] styles = getSampleStyleSheet() styles["Title"].alignment = TA_LEFT styles["Title"].fontName = styles["Heading2"].fontName = "Helvetica" styles["Normal"].fontName = "Helvetica" filename = mkstemp(".pdf")[-1] doc = SimpleDocTemplate(filename) doc.pagesize = pagesizes.landscape(pagesizes.LETTER) request = WSGIRequest({"REQUEST_METHOD": "GET"}) site = RequestContext(request).get("site") if site and site.get("title"): elements.append(Paragraph(site.get("title"), styles["Title"])) elements.append(Paragraph("%s List" % self.model.__name__, styles["Heading2"])) data = [] header = False for row in queryset: if not header: data.append([f["name"] for f in self.fields]) header = True ctx = Context({"object": row}) values = [Template(h["bit"]).render(ctx) for h in self.fields] data.append(values) table = PDFTable(data) table.setStyle( TableStyle( [ ("ALIGNMENT", (0, 0), (-1, -1), "LEFT"), ("LINEBELOW", (0, 0), (-1, -0), 2, colors.black), ("LINEBELOW", (0, 1), (-1, -1), 0.8, colors.lightgrey), ("FONT", (0, 0), (-1, -1), "Helvetica"), ("ROWBACKGROUNDS", (0, 0), (-1, -1), [colors.whitesmoke, colors.white]), ] ) ) elements.append(table) elements.append(Paragraph("Created: %s" % datetime.now().strftime("%d/%m/%Y"), styles["Normal"])) doc.build(elements) response = HttpResponse(mimetype="application/pdf") response["Content-Disposition"] = "attachment; filename=report.pdf" response.write(open(filename).read()) os.remove(filename) return response
def test_render_context_processor_get(self): """ Context preprocessor GET """ path = '/page/1' query = {'foo': 'bar'} request = RequestFactory().get(path, query) context = RequestContext(request, [context_processors.render_ctx]) location = context.get('location') self.assertEqual(location.scheme, 'http') self.assertEqual(location.netloc, 'testserver:80') self.assertEqual(location.path, path) self.assertEqual('foo=bar', context.get('query').urlencode()) self.assertEqual('', context.get('post').urlencode())
def render_oembed(self, oembed_resource, original_url, template_dir=None, context=None): """ Render the oembed resource and return as a string. Template directory will always fall back to 'oembed/[type].html', but a custom template dir can be passed in using the kwargs. Templates are given two context variables: - response: an OEmbedResource - original_url: the url that was passed to the consumer """ provided_context = context or Context() context = RequestContext(context.get("request") or mock_request()) context.update(provided_context) # templates are named for the resources they display, i.e. video.html template_name = '%s.html' % oembed_resource.type # set up template finder to fall back to the link template templates = [os.path.join('oembed', template_name), 'oembed/link.html'] # if there's a custom template dir, look there first if template_dir: templates.insert(0, os.path.join('oembed', template_dir, template_name)) template = select_template(templates) context.push() context['response'] = oembed_resource context['original_url'] = original_url rendered = template.render(context) context.pop() return rendered.strip() # rendering template may add whitespace
def get(self, request): request_args = dict(getattr(settings, 'BROWSERID_REQUEST_ARGS', {})) # Only pass an email to the JavaScript if the current user was # authed with our auth backend. backend_name = self.request.session.get(auth.BACKEND_SESSION_KEY) backend = auth.load_backend(backend_name) if backend_name else None if isinstance(backend, BrowserIDBackend): email = getattr(request.user, 'email', '') else: email = '' # Different CSRF libraries (namely session_csrf) store the CSRF # token in different places. The only way to retrieve the token # that works with both the built-in CSRF and session_csrf is to # pull it from the template context processors via # RequestContext. context = RequestContext(request) csrf_token = context.get('csrf_token', None) return JSONResponse({ 'userEmail': email, 'loginUrl': reverse('browserid.login'), 'logoutUrl': reverse('browserid.logout'), 'requestArgs': request_args, 'csrfToken': csrf_token, })
def register(request): request_context = RequestContext(request) if request.user.is_authenticated(): return HttpResponseRedirect("/login") next = request.REQUEST.get('next', '') if request.method == 'POST': form = NewUserForm(request.POST) if form.is_valid(): new_user = form.save() user = authenticate(email=form.cleaned_data['email'], password=form.cleaned_data['password1']) auth_login(request, user) p = UserProfile(id=user.id).assign_slug() p.settings["interface_language"] = request_context.get("interfaceLang") p.save() if "noredirect" in request.POST: return HttpResponse("ok") elif "new?assignment=" in request.POST.get("next",""): next = request.POST.get("next", "") return HttpResponseRedirect(next) else: next = request.POST.get("next", "/") + "?welcome=to-sefaria" return HttpResponseRedirect(next) else: form = NewUserForm() return render_to_response("registration/register.html", {'form' : form, 'next': next}, RequestContext(request))
def project_view(request, project_id=None): c = RequestContext(request) profile = request.user.profile client = AsanaClient(profile) if not request.session.get('workspace'): workspaces = client.get_workspaces() if len(workspaces) > 0: workspace = workspaces[0].get('id') request.session['workspace'] = workspace else: return redirect('/logout') if not request.session.get('user_projects'): request.session['user_projects'] = client.get_projects_for_user(workspace) c['user_projects'] = request.session['user_projects'] for project in c['user_projects']: if project.get('id') == int(project_id): c['default_user_project'] = project break if c.get('default_user_project') is None: return redirect('/logout') c['followers'] = c['default_user_project'].get('followers') #get tasks for the default user project c['tasks'] = client.get_tasks_for_project(c['user_projects'][0].get('id')) return render_to_response('logged_in_home.html', c)
def get_response(request, context, template_name): context.update({'user': request.user}) context_instance = RequestContext(request) csrf_token = context_instance.get('csrf_token') context.update({'csrf_token': csrf_token}) msg_response = render_to_string(template_name, context) return HttpResponse(msg_response)
def test_render_context_processor_post(self): """ Context preprocessor POST """ path = '/page/1' query = path + '?foo=bar' params = {'record_id': '420'} request = RequestFactory().post(query, params) context = RequestContext(request, [context_processors.render_ctx]) location = context.get('location') self.assertEqual(location.scheme, 'http') self.assertEqual(location.netloc, 'testserver:80') self.assertEqual(location.path, path) self.assertEqual('foo=bar', context.get('query').urlencode()) self.assertEqual('record_id=420', context.get('post').urlencode())
def generate_menu(request): request_context = RequestContext(request) active_url = request.path menu = request_context.get('menu', []) + [ { 'title': 'Home', 'url': determine_url('home'), # 'classes': '', }, { 'title': 'About', 'url': determine_url('about'), }, { 'title': 'Chat', 'url': determine_url('chat:chat-session'), }, ] for item in menu: if active_url == item['url']: item['active'] = 'active' return { 'menu': menu, 'authentication_installed': True, # 'authentication_installed': 'authentication' in settings.INSTALLED_APPS and not settings.DISABLE_AUTHENTICATION, }
def show_group_list(request, object_type='projects', identity=None, return_message=None): """ The landing page in the "profile" section of Local Ground, where the user gets to view the projects/views to which s/he is authorized. """ from localground.account.models import Project, View context = RequestContext(request) r = request.GET or request.POST object_list, object_name = None, None ModelClass = Form_LU.get(object_type).get('model_class') if request.POST: return_message = _batch_update(request, ModelClass, identity) object_list = ModelClass.objects.get_objects_with_counts(identity, ordering='id') group_object = ModelClass() context.update({ 'username': identity.username if identity is not None else 'all', 'object_list': object_list, 'group_object': group_object, 'raw_url': '/profile/%s/' % object_type, #todo: deprecate 'url': '/profile/%s/' % object_type, 'url_raw': '/profile/%s/' % object_type, #todo: deprecate 'object_type': object_type }) if return_message is not None: context.update({ 'return_message': return_message }) if request.user.is_superuser or context.get('is_impersonation'): context.update({'users': Project.get_users()}) context.update(prep_paginator(request, object_list)) return render_to_response('groups.html', context)
def sm2015milestone(request): context = RequestContext(request) user = context.get('user') if user.dashboarduser.have_database_access is False: return redirect('index') dates = Sm2015Milestone.get_dates() context.update({'dates': dates}) return render_to_response("sm2015milestone.html", context)
def environment(request): logger.debug("Inside Context Processor constants") request_context = RequestContext(request) object = request_context.get("object",otherwise="NotSet") return { 'constants':constants, 'object':object }
def test_context_processor(self): """Test context_processors.django_settings """ processors = settings.TEMPLATE_CONTEXT_PROCESSORS self.assertIn('t42cc.context_processors.django_settings', processors) #check for availability of django_settings attribute in context context = RequestContext(HttpRequest()) self.assertTrue(context.get('django_settings') is not None)
def get(self, request): # Different CSRF libraries (namely session_csrf) store the CSRF # token in different places. The only way to retrieve the token # that works with both the built-in CSRF and session_csrf is to # pull it from the template context processors via # RequestContext. context = RequestContext(request) csrf_token = context.get('csrf_token', None) return HttpResponse(csrf_token)
def ajax_notifications(request): if request.user.is_authenticated(): context = RequestContext(request) count = 0 # TODO use reduce for h in context.get('header', [])(): count += h[0].get('count', 0) else: count = -1 return HttpResponse('{"count": %d}' % count)
def page(request, menu_slug=None, submenu_slug=None): """ This is, basically, a wrapper around the menu RequestContextProcessor, allowing us to capture URL's that have not been captured elsewhere in the URL space. Templates are looked for in several directories, making it easy to customize the looks of a particular part of the site: simplesite/page.html simplesite/<menu_current.slug>/page.html simplesite/<menu_current.slug>/<submenu_current.slug>/page.html In these menu, all the variables from the context_processor are fully available, as in other pages within the site. """ context = RequestContext(request) page = context.get('page_current') if not (page and page.publish): raise Http404 submenu = context.get('submenu_current') menu = context.get('menu_current') template_names = [] if submenu: template_names.append('simplesite/%s/%s/page.html' % \ (menu.slug, submenu.slug)) if menu: template_names.append('simplesite/%s/page.html' % menu.slug) template_names.append('simplesite/page.html') logger.debug('Searching for templates in %s' % template_names) return render_to_response(template_names, context)
def federation_view(request, federation_slug=None): if federation_slug: request.session['%s_process_done' % federation_slug] = False request.session['%s_num_entities' % federation_slug] = 0 request.session['%s_cur_entities' % federation_slug] = 0 request.session.save() federation = get_object_or_404(Federation, slug=federation_slug) entity_type = None if request.GET and 'entity_type' in request.GET: entity_type = request.GET['entity_type'] ob_entities = Entity.objects.filter(federations__id=federation.id).filter(types__xmlname=entity_type) else: ob_entities = Entity.objects.filter(federations__id=federation.id) ob_entities = ob_entities.prefetch_related('types', 'federations') pagination = _paginate_fed(ob_entities, request.GET.get('page')) entities = [] for entity in ob_entities: entities.append({ 'entityid': entity.entityid, 'name': entity.name, 'absolute_url': entity.get_absolute_url(), 'types': [unicode(item) for item in entity.types.all()], 'federations': [(unicode(item.name), item.get_absolute_url()) for item in entity.federations.all()], }) if 'format' in request.GET: return export_query_set(request.GET.get('format'), entities, 'entities_search_result', ('entityid', 'types', 'federations')) context = RequestContext(request) user = context.get('user', None) add_entity = user and user.has_perm('metadataparser.add_federation') pie_chart = fed_pie_chart(request, federation.id) return render_to_response('metadataparser/federation_view.html', {'settings': settings, 'federation': federation, 'entity_types': DESCRIPTOR_TYPES, 'entity_type': entity_type or 'All', 'fed_types': dict(FEDERATION_TYPES), 'entities': entities, 'show_filters': True, 'add_entity': add_entity, 'lang': request.GET.get('lang', 'en'), 'update_entities': request.GET.get('update', 'false'), 'statcharts': [pie_chart], 'pagination': pagination, }, context_instance=context)
def test_content_of_template_context_processor(self): """ Compare settings in template context processor with file settings.py(from django.conf import settings) """ rf = RequestFactory() request = rf.get(reverse('home')) request_context = RequestContext(request) django_settings = request_context.get('SETTINGS') self.assertEqual(django_settings.INSTALLED_APPS, settings.INSTALLED_APPS) request_context = RequestContext(request) django_settings = request_context.get('SETTINGS') self.assertEqual(django_settings.MIDDLEWARE_CLASSES, settings.MIDDLEWARE_CLASSES) request = rf.get(reverse('request')) request_context = RequestContext(request) django_settings = request_context.get('SETTINGS') self.assertEqual(django_settings.STATICFILES_DIRS, settings.STATICFILES_DIRS)
def milestonesResponder(request, activeMenuItem=None): from PManager.viewsExt import headers headerValues = headers.initGlobals(request) create_milestone_from_post(request, headerValues) user = request.user if not user.is_authenticated(): return HttpResponseRedirect('/') context = RequestContext(request) selected_project = context.get("CURRENT_PROJECT") if selected_project: mprojects = (selected_project, ) else: mprojects = context.get("projects") return render( request, 'milestones/index.html', { 'm_projects': mprojects, 'pageTitle': u'Цели', 'activeMenuItem': activeMenuItem })
def get(self, request): # Different CSRF libraries (namely session_csrf) store the CSRF # token in different places. The only way to retrieve the token # that works with both the built-in CSRF and session_csrf is to # pull it from the template context processors via # RequestContext. context = RequestContext(request) # csrf_token might be a lazy value that triggers side-effects, # so we need to force it to a string. csrf_token = six.text_type(context.get('csrf_token', '')) return HttpResponse(csrf_token)
def get_plugin_index_data(base_plugin, request): text_bits = [] instance, plugin_type = base_plugin.get_plugin_instance() if instance is None or instance.plugin_type in EXCLUDED_PLUGINS: # this is an empty plugin or excluded from search return text_bits search_fields = getattr(instance, 'search_fields', []) if hasattr(instance, 'search_fulltext'): # check if the plugin instance has search enabled search_contents = instance.search_fulltext elif hasattr(base_plugin, 'search_fulltext'): # now check in the base plugin instance (CMSPlugin) search_contents = base_plugin.search_fulltext elif hasattr(plugin_type, 'search_fulltext'): # last check in the plugin class (CMSPluginBase) search_contents = plugin_type.search_fulltext else: # disabled if there's search fields defined, # otherwise it's enabled. search_contents = not bool(search_fields) if search_contents: context = RequestContext(request) updates = {} engine = Engine.get_default() for processor in engine.template_context_processors: updates.update(processor(context.request)) context.dicts[context._processors_index] = updates try: # django-cms>=3.5 renderer = request.toolbar.content_renderer except AttributeError: # django-cms>=3.4 renderer = context.get('cms_content_renderer') plugin_contents = _render_plugin(instance, context, renderer) if plugin_contents: text_bits = get_cleaned_bits(plugin_contents) else: values = (get_field_value(instance, field) for field in search_fields) for value in values: cleaned_bits = get_cleaned_bits(value or '') text_bits.extend(cleaned_bits) return text_bits
def student_list(request): """Return student list as JSON for adding into the DOM dynamically.""" context = RequestContext(request) murl = context.get("MEDIA_URL") data = serializers.serialize('json',Student.objects.filter(user=request.user)) js = json.loads(data) # Fix the image fields, which for some reason are not properly referenced to settings.MEDIA_URL for student in js: if murl not in student['fields']['student_image']: student['fields']['student_image'] = murl + student['fields']['student_image'] data = json.dumps(js) return HttpResponse(data,content_type='application/json')
def decode_jinga_template(self, request, filename, context={},mimetype=''): template_dirs = settings.TEMPLATE_DIRS if mimetype == '': mimetype = settings.DEFAULT_CONTENT_TYPE env = Environment(loader=FileSystemLoader(template_dirs)) request_context = RequestContext(request, context) csrf = request_context.get('csrf_token') context['csrf_token'] = csrf template = env.get_template(filename) rendered = template.render(**context) return rendered
def decode_jinga_template(self, request, filename, context={}, mimetype=''): template_dirs = settings.TEMPLATE_DIRS if mimetype == '': mimetype = settings.DEFAULT_CONTENT_TYPE env = Environment(loader=FileSystemLoader(template_dirs), extensions=[CompressorExtension]) request_context = RequestContext(request, context) csrf = request_context.get('csrf_token') context['csrf_token'] = csrf template = env.get_template(filename) rendered = template.render(**context) return rendered
def account_form(request, id=None): ''' edit account info ''' if not has_elevated_perm(request, 'membership', 'add_account'): return HttpResponseRedirect(reverse('welcome')) context = RequestContext(request) if id: account = get_object_or_404(models.Account, id=id) context['edit'] = True old_values = copy.deepcopy(account.__dict__) else: account = models.Account() if request.method == 'POST': if 'cancel' in request.POST: if id: return HttpResponseRedirect(reverse('account', args=[id])) else: return HttpResponseRedirect(reverse('accounts')) if 'delete' in request.POST: account.delete() log(request, account, 'delete') return HttpResponseRedirect(reverse('accounts')) form = forms.AccountForm(request.POST, instance=account) related_member_formset = forms.RelatedMemberFormSet(request.POST, instance=account, prefix='related_member') if form.is_valid() and related_member_formset.is_valid(): if context.get('edit'): account = form.save() log(request, account, 'edit', old_values=old_values) else: account = form.save() log(request, account, 'add') _setattr_formset_save(request, related_member_formset, 'account', account) return HttpResponseRedirect(reverse('account', args=[account.id])) else: form = forms.AccountForm(instance=account) related_member_formset = forms.RelatedMemberFormSet(instance=account, prefix='related_member') context['account'] = account context['form'] = form context['formsets'] = [ (related_member_formset, 'Members'), ] template = get_template('membership/account_form.html') return HttpResponse(template.render(context))
def persona_csrf(request): """Fetch a CSRF token for the frontend JavaScript.""" # Bluntly stolen from django-browserid # Different CSRF libraries (namely session_csrf) store the CSRF # token in different places. The only way to retrieve the token # that works with both the built-in CSRF and session_csrf is to # pull it from the template context processors via # RequestContext. context = RequestContext(request) # csrf_token might be a lazy value that triggers side-effects, # so we need to force it to a string. csrf_token = unicode(context.get('csrf_token', '')) return HttpResponse(csrf_token)
def index(request): maps = Map.objects.filter(language__acronym=request.LANGUAGE_CODE) countries_map = [] for country_map in maps: try: table_avances = AvanceFisicoFinanciero.objects \ .filter(country=country_map.country, language__acronym= request.LANGUAGE_CODE).last() variation_physical = table_avances.avance_fisico_planificado - table_avances.avance_fisico_real variation_financial = table_avances.avance_financiero_planificado - table_avances.avance_financiero_actual if variation_physical <= 25 and variation_financial <= 25: pin_color = 'green' elif variation_physical >= 25 or variation_financial >= 25: pin_color = 'yellow' elif variation_physical >= 25 and variation_financial >= 25: pin_color = 'red' if country_map.more_info_link: link = country_map.more_info_link.strip().lstrip('/') infos_url = "/{0}".format(link) else: infos_url = "{0}?country={1}&country_slug={2}".format( reverse('country'), country_map.country.id, country_map.country.slug) country = { 'lat': str(country_map.country.latlng.split(',')[0]), 'lng': str(country_map.country.latlng.split(',')[1]), 'name': str(country_map.country.name), 'goal': str(country_map.goal), 'short_description': unicode(country_map.short_description), 'pin_color': pin_color, 'infos_url': infos_url } countries_map.append(country) except (AvanceFisicoFinanciero.DoesNotExist, IndexError, AttributeError): continue context = RequestContext(request) countries_user = context.get('user').dashboarduser.countries.all() context.update({'countries_map': json.dumps(countries_map)}) context.update({'countries_user': countries_user}) return render_to_response('index.html', context)
def index(request): maps = Map.objects.filter(language__acronym=request.LANGUAGE_CODE) countries_map = [] for country_map in maps: try: table_avances = AvanceFisicoFinanciero.objects \ .filter(country=country_map.country, language__acronym= request.LANGUAGE_CODE).last() variation_physical = table_avances.avance_fisico_planificado - table_avances.avance_fisico_real variation_financial = table_avances.avance_financiero_planificado - table_avances.avance_financiero_actual if variation_physical <= 25 and variation_financial <= 25: pin_color = 'green' elif variation_physical >= 25 or variation_financial >= 25: pin_color = 'yellow' elif variation_physical >= 25 and variation_financial >= 25: pin_color = 'red' if country_map.more_info_link: link = country_map.more_info_link.strip().lstrip('/') infos_url = "/{0}".format(link) else: infos_url = "{0}?country={1}&country_slug={2}".format(reverse('country'), country_map.country.id, country_map.country.slug) country = { 'lat': str(country_map.country.latlng.split(',')[0]), 'lng': str(country_map.country.latlng.split(',')[1]), 'name': str(country_map.country.name), 'goal': str(country_map.goal), 'short_description': unicode(country_map.short_description), 'pin_color': pin_color, 'infos_url': infos_url } countries_map.append(country) except (AvanceFisicoFinanciero.DoesNotExist, IndexError, AttributeError): continue context = RequestContext(request) countries_user = context.get('user').dashboarduser.countries.all() context.update({'countries_map': json.dumps(countries_map)}) context.update({'countries_user': countries_user}) return render_to_response('index.html', context)
def dashboard_login_external(request, language_code): context = RequestContext(request) if context.get('user').is_authenticated(): return redirect('index_external', language_code=language_code) if request.method == "POST": form_login = LoginForm(request.POST) if form_login.validate(): user = form_login.get_user() login(request, user) if request.POST.get('remember', None): request.session.set_expiry(0) return redirect('index') else: form_login = LoginForm() context.update({'form_login': form_login, 'language_code': language_code}) return render_to_response('login_external.html', context_instance=context)
def change_password(request): context = RequestContext(request) usuario = context.get('user') if request.method == "GET": change_password_form = ChangePasswordForm() else: change_password_form = ChangePasswordForm(request.POST) if change_password_form.validate(usuario): usuario.set_password(request.POST.get('new_password')) usuario.save() change_password_form.errors.update( {'success': u"Password changed!"}) context.update({'form': change_password_form}) return render_to_response('change_password.html', context_instance=context)
def change_password(request): context = RequestContext(request) usuario = context.get('user') if request.method == "GET": change_password_form = ChangePasswordForm() else: change_password_form = ChangePasswordForm(request.POST) if change_password_form.validate(usuario): usuario.set_password(request.POST.get('new_password')) usuario.save() change_password_form.errors.update({'success': u"Password changed!"}) context.update({'form': change_password_form}) return render_to_response('change_password.html', context_instance=context)
def get_objects(request, object_type, identity=None, project=None, return_message=None): context = RequestContext(request) r = request.GET or request.POST is_barcoded = (object_type == 'map-image' or object_type == 'attachment') objects = None class_name, template_name = _get_object_variables(object_type) if class_name is None: return HttpResponse('object_type "%s" is invalid' % (object_type)) #update form values, if form post: if request.POST: return_message = _batch_update(request, object_type, class_name, identity) ordering_field = None #'-id' if project is not None: objects = class_name.objects.by_project(project, ordering_field=ordering_field) else: objects = class_name.objects.get_all(ordering_field=ordering_field, user=identity) #if identity is not None: # objects = objects.filter(owner=identity) username = identity.username if identity is not None else 'all' projects = Project.objects.get_objects(identity) if request.user.is_superuser and username == 'all': projects = Project.objects.all().order_by('name') project_id = 'all' if project is not None: project_id = str(project.id) context.update({ 'username': username, 'url': '/profile/%s/?a=a' % object_type, #'project_url': '/profile/%s/?alias=%s' % (object_type, username), #'user_url': '/profile/%s/?project_id=%s' % (object_type, project_id), 'raw_url': '/profile/%s/' % (object_type), 'projects': projects, 'selected_project': project, 'selected_project_id': project_id, 'object_type': object_type.replace('-', ' ') }) if is_barcoded: context.update({ 'statuses': StatusCode.objects.all().order_by('id') }) if return_message is not None: context.update({ 'return_message': return_message }) if request.user.is_superuser or context.get('is_impersonation'): context.update({'users': Project.get_users()}) context.update(prep_paginator(request, objects)) return render_to_response(template_name, context)
def dashboard_login(request): context = RequestContext(request) if context.get('user').is_authenticated(): return redirect('index') if request.method == "POST": form_login = LoginForm(request.POST) if form_login.validate(): user = form_login.get_user() login(request, user) if request.POST.get('remember', None): request.session.set_expiry(0) return redirect('index') else: form_login = LoginForm() context.update({'form_login': form_login}) return render_to_response('login.html', context_instance=context)
def federation_edit(request, federation_slug=None): federation = get_object_or_404(Federation, slug=federation_slug) if federation_slug else None if request.method == 'POST': form = FederationForm(request.POST, request.FILES, instance=federation) if not form.is_valid(): messages.error(request, _('Please correct the errors indicated below')) else: return federation_edit_post(request, federation, form) else: form = FederationForm(instance=federation) context = RequestContext(request) user = context.get('user', None) delete_federation = user and user.has_perm('metadataparser.delete_federation') return render_to_response('metadataparser/federation_edit.html', {'settings': settings, 'form': form, 'delete_federation': delete_federation}, context_instance=RequestContext(request))
def render_to_response(self, request, filename, context={}, mimetype=''): #add recent items to context user = request.user context['user_searches'] = UserSearch.get_user_recent(user) context['INTERNAL_IPS'] = settings.INTERNAL_IPS context['ENABLE_GOOGLE_ANALYTICS'] = settings.ENABLE_GOOGLE_ANALYTICS template_dirs = settings.TEMPLATE_DIRS if mimetype == '': mimetype = settings.DEFAULT_CONTENT_TYPE env = Environment(loader=FileSystemLoader(template_dirs)) request_context = RequestContext(request, context) csrf = request_context.get('csrf_token') context['csrf_token'] = csrf context['request'] = request template = env.get_template(filename) rendered = template.render(**context) return HttpResponse(rendered, mimetype=mimetype)
def render_to_response(self, request, filename, context={},mimetype=''): #add recent items to context user = request.user context['user_searches'] = UserSearch.get_user_recent(user) context['INTERNAL_IPS'] = settings.INTERNAL_IPS context['ENABLE_GOOGLE_ANALYTICS'] = settings.ENABLE_GOOGLE_ANALYTICS template_dirs = settings.TEMPLATE_DIRS if mimetype == '': mimetype = settings.DEFAULT_CONTENT_TYPE env = Environment(loader=FileSystemLoader(template_dirs)) request_context = RequestContext(request, context) csrf = request_context.get('csrf_token') context['csrf_token'] = csrf context['request'] = request template = env.get_template(filename) rendered = template.render(**context) return HttpResponse(rendered,mimetype=mimetype)
def countries(request): context = RequestContext(request) countries = Country.objects.all() countries_disbursement_values = [] countries_execution_values = [] for country in countries: countries_disbursement_values.append({ 'name': str(country.name), 'url_ongoing': reverse('countries_ongoing', args=[country.slug, 'disbursement']) }) countries_execution_values.append({ 'name': str(country.name), 'url_ongoing': reverse('countries_ongoing', args=[country.slug, 'execution']) }) context.update({'countries_disbursement': countries_disbursement_values, 'countries_execution': countries_execution_values}) countries = context.get('user').dashboarduser.countries.all() context.update({'countries': countries}) return render_to_response("countries.html", context)
def decode_jinga_template(self, request, filename, context={}, mimetype=''): template_dirs = settings.TEMPLATE_DIRS if mimetype == '': mimetype = settings.DEFAULT_CONTENT_TYPE env = Environment(loader=FileSystemLoader(template_dirs)) context['INTERNAL_IPS'] = settings.INTERNAL_IPS context['ENABLE_GOOGLE_ANALYTICS'] = settings.ENABLE_GOOGLE_ANALYTICS request_context = RequestContext(request, context) csrf = request_context.get('csrf_token') context['csrf_token'] = csrf context['request'] = request template = env.get_template(filename) rendered = template.render(**context) return rendered
def render_oembed(self, oembed_resource, original_url, template_dir=None, context=None): """ Render the oembed resource and return as a string. Template directory will always fall back to 'oembed/[type].html', but a custom template dir can be passed in using the kwargs. Templates are given two context variables: - response: an OEmbedResource - original_url: the url that was passed to the consumer """ provided_context = context or Context() context = RequestContext(context.get("request") or mock_request()) context.update(provided_context) # templates are named for the resources they display, i.e. video.html template_name = '%s.html' % oembed_resource.type # set up template finder to fall back to the link template templates = [os.path.join('oembed', template_name), 'oembed/link.html'] # if there's a custom template dir, look there first if template_dir: templates.insert( 0, os.path.join('oembed', template_dir, template_name)) template = select_template(templates) context.push() context['response'] = oembed_resource context['original_url'] = original_url rendered = template.render(context) context.pop() return rendered.strip() # rendering template may add whitespace
def country_operation(request): context = RequestContext(request) user = context.get('user') if user.dashboarduser.have_database_access is False: return redirect('index') return render_to_response("country_operation.html", context)
def test_context_processor(self): f = RequestFactory() c = RequestContext(f.request()) self.assertTrue(c.get('settings') is settings)
def render_export_hitos_and_avances(request, country_slug): context = RequestContext(request) root_dir_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) hitos = Hito.objects.filter(country__slug=country_slug) estados_actuais = EstadoActual.objects.all() country = Country.objects.get(slug=country_slug) options_estados_actuais = {} triangle_path, triangle_file_name = TriangleGraph.export_graph( country=country, lang=request.LANGUAGE_CODE) operation = Operation.objects.get(country=country) for estado in estados_actuais: options_estados_actuais.update( {"{id}".format(id=estado.id): str(estado.name)}) avances = AvanceFisicoFinanciero.objects.filter(country=country) # DOCX document_font = 'Times New Roman' document = Docx() logo_salud = Image( "{root}/tables/files/logo_saludmesoam.png".format(root=root_dir_path), document=document, width="70%", height="70%") logo_bid = Image( "{root}/tables/files/logo-del-BID.jpg".format(root=root_dir_path), document=document, width="70%", height="70%") table_logos = Table(width="100%") table_logos.add_row( [Cell(logo_salud, width="50%"), Cell(logo_bid, width="50%")]) document.append(table_logos) document.append(Break()) # Heading date_today_str = date.today().strftime("%d de {MONTH} de %Y").lstrip("0") month_translated = _(date.today().strftime("%B")) date_today_str = date_today_str.replace("{MONTH}", month_translated) heading = Block([ InlineText(u"División de Protección Social y Salud, SCL/SPH", bold=True, font=document_font), Break(), InlineText(u"Iniciativa Salud Mesoamérica 2015, SM2015", bold=True, font=document_font), Break(), InlineText(u"Conclusiones de la reunión realizada el: {0}".format( date_today_str), bold=True, font=document_font), Break(), Break(), InlineText(u"Operación: ", bold=True, font=document_font), InlineText(operation.name, font=document_font), Break(), InlineText(u"Tipo de Reunión: ", bold=True, font=document_font), InlineText(u"Seguimiento Mensual de la Ejecución", font=document_font), Break(), InlineText(u"Participantes: ", bold=True, font=document_font), InlineText(u"{0}, Ferdinando Regalia, Emma Iriarte".format( context.get('user').get_full_name()), font=document_font) ]) document.append(heading) document.append(Break()) # Avances if avances: avance = avances[0] document.append( Block(InlineText("AVANCE FISICO Y FINANCIERO", size=12, font=document_font, bold=True), align='center')) if avance.fecha_de_actualizacion: fecha_de_actualization_str = avance.fecha_de_actualizacion.strftime( "%d de {MONTH} de %Y").lstrip("0") month_translated = _(avance.fecha_de_actualizacion.strftime("%B")) fecha_de_actualization_str = fecha_de_actualization_str.replace( "{MONTH}", month_translated) else: fecha_de_actualization_str = '' row1 = [ Cell( BlockText( u'¿Cuándo fue la última vez que actualizó los datos?', bold=True, font=document_font, size=10)), Cell( BlockText(u'Avances Fisicos Planificados (Meta Ejecución)', bold=True, font=document_font, size=10)), Cell( BlockText( u'Avances Físicos Reales (Avance en la ejecución real)', bold=True, font=document_font, size=10)), Cell( BlockText( u'Avances Financieros Planificados (Ejecución financiera planificados)', bold=True, font=document_font, size=10)), Cell( BlockText( u'Avances Financieros Actuales (Ejecución financiera real)', bold=True, font=document_font, size=10)), Cell( BlockText(u'Monto Desembolsado', bold=True, font=document_font, size=10)) ] row2 = [ Cell( BlockText(fecha_de_actualization_str, size=10, font=document_font)), Cell( BlockText("{0}%".format(avance.avance_fisico_planificado), size=10, font=document_font)), Cell( BlockText("{0}%".format(avance.avance_fisico_real), size=10, font=document_font)), Cell( BlockText("{0}%".format(avance.avance_financiero_planificado), size=10, font=document_font)), Cell( BlockText("{0}%".format(avance.avance_financiero_actual), size=10, font=document_font)), Cell( BlockText(avance.monto_desembolsado, size=10, font=document_font)) ] table_avances = Table(width="100%", padding='3pt', border={ 'top': { 'color': '#000000', 'size': '1pt', 'style': 'solid' }, 'right': { 'color': '#000000', 'size': '1pt', 'style': 'solid' }, 'bottom': { 'color': '#000000', 'size': '1pt', 'style': 'solid' }, 'left': { 'color': '#000000', 'size': '1pt', 'style': 'solid' } }) table_avances.add_row(row1) table_avances.add_row(row2) document.append(table_avances) document.append(Break()) # Add Triangle Graph document.append( Block(InlineText(u"Gráficos del Tablero de Control", size=12, font=document_font, bold=True), align='center')) document.append( Image("{0}".format(triangle_path), document=document, align='center')) document.append(Break()) # ALERTS, RECOMENDATIONS AND UPCOMING... FROM AVANCES row1 = [ Cell(BlockText(u'Alertas Temprana en General', color='#6F7B8A', font=document_font), bgcolor='#ECF0F2', width='7cm', valign='center'), Cell(BlockText(avance.alerta, size=10, font=document_font), valign='center') ] row2 = [ Cell(BlockText(u'Recomendaciones', color='#6F7B8A', font=document_font), bgcolor='#ECF0F2', width='7cm', valign='center'), Cell(BlockText(avance.recomendacion, size=10, font=document_font), valign='center') ] row3 = [ Cell(BlockText(u'Upcoming Policy Dialogue Events', color='#6F7B8A', font=document_font), bgcolor='#ECF0F2', width='7cm', valign='center'), Cell(BlockText(avance.upcoming_policy_dialogue_events, size=10, font=document_font), valign='center') ] table_avances2 = Table(width="100%", padding='3pt') table_avances2.add_row(row1) table_avances2.add_row(row2) table_avances2.add_row(row3) document.append(table_avances2) document.append(Break()) # HITOS is_avaliable_hito = False table_hitos = Table(width="100%", padding='3pt') table_hitos.add_row([ Cell( Block(InlineText(u'Indicador de Pago', bold=True, font=document_font, size=10), align='center')), Cell( Block(InlineText(u'Hito', bold=True, font=document_font, size=10), align='center')), Cell( Block(InlineText(u'Trimestre', bold=True, font=document_font, size=10), align='center')), Cell( Block(InlineText(u'Audiencia', bold=True, font=document_font, size=10), align='center')), Cell( Block(InlineText(u'Estado Actual', bold=True, font=document_font, size=10), align='center')), Cell( Block(InlineText(u'Alerta/Notas', bold=True, font=document_font, size=10), align='center')), Cell( Block(InlineText(u'Recomendación', bold=True, font=document_font, size=10), align='center')), Cell( Block(InlineText(u'Acuerdo', bold=True, font=document_font, size=10), align='center')) ]) for hito in hitos: if hito.recomendacion \ or hito.alerta_notas \ or (hito.estado_actual and hito.estado_actual.name in ['Retrasado', 'En proceso']): is_avaliable_hito = True audiencias = [] for audiencia in hito.audiencia.all(): audiencias.append(audiencia.name) bg_estado = '#FFFFFF' if hito.estado_actual: if hito.estado_actual.name == 'Cumplido': bg_estado = '#77FF77' elif hito.estado_actual.name == 'Retrasado': bg_estado = '#FF8888' elif hito.estado_actual.name == 'En proceso': bg_estado = '#FEFF00' estado_actual_name = hito.estado_actual.name else: estado_actual_name = '' table_hitos.add_row([ Cell( BlockText(hito.indicador_de_pago, font=document_font, size=10)), Cell(BlockText(hito.hito, font=document_font, size=10)), Cell(BlockText(hito.quarter.name, font=document_font, size=10)), Cell( BlockText(", ".join(audiencias), font=document_font, size=10)), Cell(BlockText(estado_actual_name, font=document_font, size=10), bgcolor=bg_estado), Cell( BlockText(hito.alerta_notas or '', font=document_font, size=10)), Cell( BlockText(hito.recomendacion or '', font=document_font, size=10)), Cell(BlockText(hito.acuerdo or '', font=document_font, size=10)) ]) if is_avaliable_hito: document.append( Block(InlineText(u"ALERTAS TEMPRANAS Y ESTADO DE LOS HITOS", size=12, font=document_font, bold=True), align='center')) document.append(table_hitos) document.append(Break()) document.append(BlockText("")) # EMPTY TABLE TO BE FILLED OUT DURING THE MEETING border_cell = { 'left': { 'color': '#000000', 'size': '1pt', 'style': 'solid' }, 'bottom': { 'color': '#000000', 'size': '1pt', 'style': 'solid' }, 'top': { 'color': '#000000', 'size': '1pt', 'style': 'solid' }, 'right': { 'color': '#000000', 'size': '1pt', 'style': 'solid' } } table_empty = Table(width="100%", padding='3pt') table_empty.add_row([ Cell(Block(InlineText(u'DISCUSION CON EL JEFE DE DIVISION Y UC', font=document_font), align="center"), valign='center', border=border_cell) ]) table_empty.add_row( [Cell(BlockText(""), valign='center', border=border_cell)]) table_empty.add_row([ Cell(Block(InlineText(u'AVANCES PARA EL INFORME TRIMESTRAL', font=document_font), align="center"), valign='center', border=border_cell) ]) table_empty.add_row( [Cell(BlockText(""), valign='center', border=border_cell)]) table_empty.add_row([ Cell(Block(InlineText( u'ACUERDOS CON EL JEFE DE DIVISION Y LA UNIDAD COORDINADORA', font=document_font), align="center"), valign='center', border=border_cell) ]) table_empty.add_row( [Cell(BlockText(""), valign='center', border=border_cell)]) document.append(table_empty) # Save our document path = "{root}/tables/files/{country_slug}_hitos_y_avances.docx".format( country_slug=country_slug, root=root_dir_path) document.save(path) file_docx = open(path, 'r') response = HttpResponse(mimetype='text/html') response[ 'Content-Disposition'] = 'attachment; filename={country_slug}_hitos_y_avances.docx'.format( country_slug=country_slug) response['Content-Encoding'] = 'UTF-8' response['Content-type'] = 'text/html; charset=UTF-8' response.write(file_docx.read()) file_docx.close() return response
def grants_finances_editable(request): context = RequestContext(request) user = context.get('user') if user.dashboarduser.have_database_access is False: return redirect('index') return render_to_response("grants_finances_editable.html", context)
def getCurrentUser(request): context = RequestContext(request) return context.get('user')