def get_menu_entry_categories(request): menu_categories = OrderedDict() menu_category_icons = {} for identifier, category_name, icon in MENU_CATEGORIES: menu_categories[identifier] = _MenuCategory(category_name, icon) menu_category_icons[identifier] = icon modules = list(get_modules()) for module in modules: menu_category_icons.update( (force_text(key), force_text(value)) for (key, value) in module.get_menu_category_icons().items() if key not in menu_category_icons ) for module in modules: if get_missing_permissions(request.user, module.get_required_permissions()): continue for entry in (module.get_menu_entries(request=request) or ()): category_identifier = entry.category category = menu_categories.get(category_identifier) if category_identifier else None if not category: category_identifier = force_text(category_identifier or module.name) category = menu_categories.get(category_identifier) if not category: menu_categories[category_identifier] = category = _MenuCategory( name=category_identifier, icon=menu_category_icons.get(category_identifier, "fa fa-circle") ) category.entries.append(entry) return [c for identifier, c in six.iteritems(menu_categories) if len(c.entries) > 0]
def show_trips(value): if not value: return '' intervention = PCA.objects.get(id=int(value)) trips = Trip.objects.filter(pcas__in=[intervention]) data = tablib.Dataset() trip_summary = [] for trip in trips: row = SortedDict() row['Ref'] = '<a href="{}">{}</a>'.format( trip.get_admin_url(), trip.reference() ) row['Status'] = trip.status row['Traveller'] = trip.owner row['Trip Type'] = trip.travel_type row['Purpose'] = trip.purpose_of_travel row['From'] = trip.from_date row['To'] = trip.to_date trip_summary.append(row) if trip_summary: data.headers = trip_summary[0].keys() for row in trip_summary: data.append(row.values()) return data.html return '<p>No trips</p>'
def show_government_funding(value): if not value: return '' # intervention = GovernmentIntervention.objects.get(id=int(value)) # outputs = list(intervention.results.values_list('result__wbs', flat=True)) # commitments = FundingCommitment.objects.filter(wbs__in=outputs) data = tablib.Dataset() fc_summary = [] # for commit in commitments: row = SortedDict() row['Output'] = '' row['FC No.'] = '' row['FC Amount'] = '' row['Actual'] = '' row['Outstanding'] = '' fc_summary.append(row) if fc_summary: data.headers = fc_summary[0].keys() for row in fc_summary: data.append(row.values()) return data.html return '<p>No FCs Found</p>'
def show_dct(value): if not value: return '' data = tablib.Dataset() dct_summary = [] row = SortedDict() row['FC Ref'] = '' row['Amount'] = '' row['Liquidation Amount'] = '' row['Outstanding Amount'] = '' row['Amount Less than 3 Months'] = '' row['Amount 3 to 6 Months'] = '' row['Amount 6 to 9 Months'] = '' row['Amount More than 9 Months'] = '' dct_summary.append(row) if dct_summary: data.headers = dct_summary[0].keys() for row in dct_summary: data.append(row.values()) return data.html return '<p>No FR Set</p>'
def show_fr_fc(value): if not value: return '' intervention = PCA.objects.get(id=int(value)) commitments = FundingCommitment.objects.filter(intervention=intervention) data = tablib.Dataset() fr_fc_summary = [] for commit in commitments: row = SortedDict() row['Grant'] = commit.grant.__unicode__() row['FR Number'] = commit.fr_number row['WBS'] = commit.wbs row['FC Type'] = commit.fc_type row['FC Ref'] = commit.fc_ref row['Agreement Amount'] = commit.agreement_amount row['Commitment Amount'] = commit.commitment_amount row['Expenditure Amount'] = commit.expenditure_amount fr_fc_summary.append(row) if fr_fc_summary: data.headers = fr_fc_summary[0].keys() for row in fr_fc_summary: data.append(row.values()) return data.html return '<p>No FR Set</p>'
def get_menu_entry_categories(request): menu_categories = OrderedDict() menu_children = OrderedDict() menu_category_icons = {} for menu_item in MAIN_MENU: identifier = menu_item["identifier"] icon = menu_item["icon"] menu_categories[identifier] = _MenuCategory( identifier=identifier, name=menu_item["title"], icon=icon, ) for child in menu_item["children"]: child_identifier = "%s:%s" % (identifier, child["identifier"]) child_category = _MenuCategory(child["identifier"], child["title"], None) menu_children[child_identifier] = child_category menu_categories[identifier].children.append(child_category) menu_category_icons[identifier] = icon modules = list(get_modules()) for module in modules: menu_category_icons.update( (force_text(key), force_text(value)) for (key, value) in module.get_menu_category_icons().items() if key not in menu_category_icons ) all_categories = set() for module in modules: if get_missing_permissions(request.user, module.get_required_permissions()): continue for entry in (module.get_menu_entries(request=request) or ()): category_identifier = entry.category subcategory = entry.subcategory entry_identifier = "%s:%s" % (category_identifier, subcategory) if subcategory else category_identifier menu_items = menu_children if subcategory else menu_categories category = menu_items.get(entry_identifier) if not category: category_identifier = force_text(category_identifier or module.name) category = menu_items.get(category_identifier) if not category: menu_items[category_identifier] = category = _MenuCategory( identifier=category_identifier, name=category_identifier, icon=menu_category_icons.get(category_identifier, "fa fa-circle") ) category.entries.append(entry) if subcategory: parent = menu_categories.get(category_identifier) all_categories.add(parent) else: all_categories.add(category) return [c for menu_identifier, c in six.iteritems(menu_categories) if c in all_categories]
def get_dgrid_json(self, total_page, current_page, all_data_count, aggregation=False): json_dict = OrderedDict({ "total": total_page, "page": current_page, "recordsTotal": all_data_count, "recordsFiltered": all_data_count }) json_rows = [] for row in self.rows: row_fields = row.get_cells_dict() row_fields.update({'DT_RowId': row_fields.get('id')}) json_rows.append(row_fields) json_dict['data'] = json_rows footer_row = {} i = 0 for cell in self.header: footer_row[cell.name] = self.header.sums[i] i += 1 footer_row.update({self.header.cells[1].name: u"مجموع:"}) if aggregation: json_dict["userdata"] = footer_row res = json.dumps(json_dict) return res
def get_quicklinks(request): quicklinks = OrderedDict() for block in QUICKLINK_ORDER: quicklinks[block] = [] for module in get_modules(): if get_missing_permissions(request.user, module.get_required_permissions()): continue for help_block in module.get_help_blocks(request, kind="quicklink"): quicklinks[help_block.category].append(help_block) links = quicklinks.copy() for block, data in six.iteritems(links): if not quicklinks[block]: quicklinks.pop(block) return quicklinks
def projects(request, project_id=None): if project_id: project = get_object_or_404(Project, id=project_id) identity_items = OrderedDict({ u'Gérant': project.contact_name, u'Personnel': project.workers, u'Année de création': project.creation_date, u'Structure': project.structure }) if Event.objects.filter(project=project).exists(): events = Event.objects.filter(project=project) else: events = [] return render( request, 'presentation/project.html', { u'project': project, u'identity_items': identity_items, u'events_glan': events }) else: projects = serializers.serialize("json", Project.objects.all()) return JsonResponse(projects, safe=False)
def activity_setting(request, template='game/activity_setting.html'): server_id = int(request.REQUEST.get('server_id', '') or 0) is_read = request.REQUEST.get('is_read', '') model = get_activity_model(request) default_params = model.get_activity_protocol_class().get_default_msg() charge_dict = DictDefine.get_dict_for_key("recharge_type") charge_dict = OrderedDict( sorted(charge_dict.items(), key=lambda t: int(t[0]))) return render_to_response(template, locals())
def show_work_plan(value): if not value: return '' intervention = PCA.objects.get(id=int(value)) results = intervention.results.all() data = tablib.Dataset() work_plan = SortedDict() if results: try: tf_cols = next(x.disaggregation for x in results if x.result_type.name == 'Activity').keys() except: tf_cols = [] for num, result in enumerate(results): row = SortedDict() row['Code'] = result.indicator.code if result.indicator else result.result.code row['Details'] = result.indicator.name if result.indicator else result.result.name row['Targets'] = result.target if result.target else '' if result.result_type.name == 'Activity' and result.disaggregation: row.update(result.disaggregation) else: row.update(dict.fromkeys(tf_cols, '')) row['Total'] = result.total if result.total else '' row['CSO'] = result.partner_contribution if result.partner_contribution else '' row['UNICEF Cash'] = result.unicef_cash if result.unicef_cash else '' row['UNICEF Supplies'] = result.in_kind_amount if result.in_kind_amount else '' work_plan[num] = row if work_plan: for row in work_plan.values(): if not data.headers or len(data.headers) < len(row.values()): data.headers = row.keys() data.append(row.values()) return data.html return '<p>No results</p>'
def near(self, *args, **kwargs): queryset = super(HaversineLocationManager, self).near(*args, **kwargs) lat, lon, dis = self._format_params(kwargs.get('latitude', 0), kwargs.get('longitude', 0), kwargs.get('distance_range', 0)) queryset = queryset.extra( select=OrderedDict([('distance', 'geodistance(%s, %s, geo_latitude, geo_longitude)')]), select_params=(lat, lon), where=('geodistance(%s, %s, geo_latitude, geo_longitude) <= %s',), params=(lat, lon, dis) ) return queryset
def get_service_handler(base_url, proxy_base=None, service_type=enumerations.AUTO): """Return the appropriate remote service handler for the input URL. If the service type is not explicitly passed in it will be guessed from """ handlers = OrderedDict({ enumerations.WMS: {"OWS": True, "handler": WmsServiceHandler}, enumerations.GN_WMS: {"OWS": True, "handler": GeoNodeServiceHandler}, # enumerations.WFS: {"OWS": True, "handler": ServiceHandlerBase}, # enumerations.TMS: {"OWS": False, "handler": ServiceHandlerBase}, enumerations.REST_MAP: {"OWS": False, "handler": ArcMapServiceHandler}, enumerations.REST_IMG: {"OWS": False, "handler": ArcImageServiceHandler}, # enumerations.CSW: {"OWS": False, "handler": ServiceHandlerBase}, # enumerations.HGL: {"OWS": True, "handler": ServiceHandlerBase}, # TODO: verify this # enumerations.OGP: {"OWS": False, "handler": ServiceHandlerBase}, # TODO: verify this }) if service_type in (enumerations.AUTO, enumerations.OWS): if service_type == enumerations.AUTO: to_check = handlers.keys() else: to_check = [k for k, v in handlers.items() if v["OWS"]] for type_ in to_check: logger.debug("Checking {}...".format(type_)) try: service = get_service_handler(base_url, type_) except Exception: pass # move on to the next service type else: break else: raise RuntimeError("Could not parse service {!r} with any of the " "available service handlers".format(base_url)) else: handler = handlers.get(service_type, {}).get("handler") try: service = handler(base_url) except Exception: logger.exception( msg="Could not parse service {!r}".format(base_url)) raise return service
def show_government_funding(value): if not value: return '' intervention = GovernmentIntervention.objects.get(id=int(value)) outputs = [ r.result for r in intervention.results.prefetch_related( 'result', 'result__result_type').all() ] outputs_wbs = [o.wbs for o in outputs] commitments = FundingCommitment.objects.filter(wbs__in=outputs_wbs).all() #map all commitments (c.wbs) to int_outputs(io.wbs) for out in outputs: commits = [c for c in commitments if out.wbs == c.wbs] setattr(out, 'commitments', commits) data = tablib.Dataset() fc_summary = [] for out in outputs: for commit in out.commitments: row = SortedDict() row['Output'] = out row['FC No.'] = commit.fc_ref row['FC Commit Amt'] = commit.commitment_amount row['FC Agreement Amt'] = commit.agreement_amount row['FC Exp Amt'] = commit.expenditure_amount fc_summary.append(row) if fc_summary: data.headers = fc_summary[0].keys() for row in fc_summary: data.append(row.values()) return data.html return '<p>No FCs Found</p>'
def get_service_handler(base_url, service_type=enumerations.AUTO): """Return the appropriate remote service handler for the input URL. If the service type is not explicitly passed in it will be guessed from """ handlers = OrderedDict({ enumerations.WMS: {"OWS": True, "handler": WmsServiceHandler}, # enumerations.WFS: {"OWS": True, "handler": ServiceHandlerBase}, # enumerations.TMS: {"OWS": False, "handler": ServiceHandlerBase}, # enumerations.REST: {"OWS": False, "handler": ServiceHandlerBase}, # enumerations.CSW: {"OWS": False, "handler": ServiceHandlerBase}, # enumerations.HGL: {"OWS": True, "handler": ServiceHandlerBase}, # TODO: verify this # enumerations.OGP: {"OWS": False, "handler": ServiceHandlerBase}, # TODO: verify this }) if service_type in (enumerations.AUTO, enumerations.OWS): if service_type == enumerations.AUTO: to_check = handlers.keys() else: to_check = [k for k, v in handlers.items() if v["OWS"]] for type_ in to_check: logger.info("Checking {}...".format(type_)) try: service = get_service_handler(base_url, type_) except Exception: pass # move on to the next service type else: break else: raise RuntimeError("Could not parse service {!r} with any of the " "available service handlers".format(base_url)) else: handler = handlers.get(service_type, {}).get("handler") try: service = handler(base_url) except Exception: logger.exception( msg="Could not parse service {!r}".format(base_url)) raise return service
def listsort2(value): if isinstance(value, dict): new_dict = OrderedDict() key_list = sorted(value.keys()) for key in key_list: new_dict[key] = value[key] return new_dict elif isinstance(value, list): return sorted(value) else: return value listsort.is_safe = True
def delete(request, server): stats = server.stats conn = server.connection database_details = OrderedDict() if stats['status'] == 'UP': if 'key' in request.GET: key = request.GET['key'] db = request.GET.get('db', 0) return _delete_key(request, conn, db, key) else: messages.error(request, f'Server is down') return redirect('admin:redisboard_redisserver_changelist')
def get_service_handler(base_url, proxy_base=None, service_type=enumerations.AUTO): """Return the appropriate remote service handler for the input URL. If the service type is not explicitly passed in it will be guessed from """ handlers = OrderedDict({ enumerations.WMS: {"OWS": True, "handler": WmsServiceHandler}, enumerations.GN_WMS: {"OWS": True, "handler": GeoNodeServiceHandler}, # enumerations.WFS: {"OWS": True, "handler": ServiceHandlerBase}, # enumerations.TMS: {"OWS": False, "handler": ServiceHandlerBase}, enumerations.REST_MAP: {"OWS": False, "handler": ArcMapServiceHandler}, enumerations.REST_IMG: {"OWS": False, "handler": ArcImageServiceHandler}, # enumerations.CSW: {"OWS": False, "handler": ServiceHandlerBase}, # enumerations.HGL: {"OWS": True, "handler": ServiceHandlerBase}, # TODO: verify this # enumerations.OGP: {"OWS": False, "handler": ServiceHandlerBase}, # TODO: verify this }) if service_type in (enumerations.AUTO, enumerations.OWS): if service_type == enumerations.AUTO: to_check = handlers.keys() else: to_check = (k for k, v in handlers.items() if v["OWS"]) for type_ in to_check: logger.debug(f"Checking {type_}...") try: service = get_service_handler(base_url, type_) except Exception: pass # move on to the next service type else: break else: raise RuntimeError(f"Could not parse service {base_url} with any of the " "available service handlers") else: handler = handlers.get(service_type, {}).get("handler") try: service = handler(base_url) except Exception: logger.exception( msg=f"Could not parse service {base_url}") raise return service
def process_children(self, request, parameters, arguments, include=[]): """ TODO: docstring """ children = {} report = arguments['report'] children_parameters = {} if 'children' in parameters and parameters['children'] is not None: children_parameters = OrderedDict(parameters['children']) for child, value in children_parameters.items(): if not include or child in include: children[child] = { 'state': 'ok', 'text': question_loader.process_questions( request, report.report.pk, value, view_type=self.view_type, reportbyproj=report) }
def get_menu_entry_categories(request): menu_categories = OrderedDict() menu_category_icons = {} for identifier, category_name, icon in MENU_CATEGORIES: menu_categories[identifier] = _MenuCategory(identifier, category_name, icon) menu_category_icons[identifier] = icon modules = list(get_modules()) for module in modules: menu_category_icons.update( (force_text(key), force_text(value)) for (key, value) in module.get_menu_category_icons().items() if key not in menu_category_icons) for module in modules: if get_missing_permissions(request.user, module.get_required_permissions()): continue for entry in (module.get_menu_entries(request=request) or ()): category_identifier = entry.category category = menu_categories.get( category_identifier) if category_identifier else None if not category: category_identifier = force_text(category_identifier or module.name) category = menu_categories.get(category_identifier) if not category: menu_categories[ category_identifier] = category = _MenuCategory( identifier=category_identifier, name=category_identifier, icon=menu_category_icons.get( category_identifier, "fa fa-circle")) category.entries.append(entry) return [ c for identifier, c in six.iteritems(menu_categories) if len(c.entries) > 0 ]
def _parse_zpool_status(zpool_status): x = zpool_status.strip().splitlines() pool = x[0].replace('pool: ', '').strip() data = OrderedDict() go = False group = pool subgroup = '' for line in x: if go: if not (line and line.startswith('\t')): break indent = __get_indentation(line.replace('\t', '', 1)) item = line.split()[0] if indent: if item in ('replacing', 'spare'): continue elif re.match(r'^c[0-9]', item): if subgroup not in data[group]: data[group][subgroup] = [] data[group][subgroup].append(item) else: subgroup = item else: group = item subgroup = '' data[group] = OrderedDict() elif line.strip().split() == [ 'NAME', 'STATE', 'READ', 'WRITE', 'CKSUM' ]: go = True return pool, data
def inspect(request, server): stats = server.stats conn = server.connection database_details = OrderedDict() key_details = None if stats['status'] == 'UP': if 'key' in request.GET: key = request.GET['key'] # request key parameter is of type str like: "b'asgi::group:users'" # change it by bytes type: b''asgi::group:users' if isinstance(key, str) and key.startswith("b'") and key.endswith("'"): key = str.encode(key[2:-1]) db = request.GET.get('db', 0) page = request.GET.get('page', 1) key_details = _get_key_details(conn, db, key, page) else: databases = sorted(name[2:] for name in conn.info() if name.startswith('db')) total_size = 0 for db in databases: database_details[db] = summary = _get_db_summary(server, db) total_size += summary['size'] if total_size < server.sampling_threshold: for db in databases: database_details[db].update( _get_db_details(server, db), active=True, ) elif 'db' in request.GET: db = request.GET['db'] if db in database_details: database_details[db].update( _get_db_details(server, db), active=True, ) else: return HttpResponseNotFound("Unknown database.") return render( request, "redisboard/inspect.html", { 'databases': database_details, 'key_details': key_details, 'original': server, 'stats': stats, 'app_label': 'redisboard', })
def _replace_username_with_first_last(form): form.fields.pop("username") fields = OrderedDict() fields["first_name"] = forms.CharField(min_length=2, label=_(u"First name")) fields["last_name"] = forms.CharField(min_length=2, label=_(u"Last name")) for key, value in form.fields.iteritems(): fields[key] = value terms_url = "http://ihp-wins-dev.geo-solutions.it/terms-of-use" agreement_message = _( "I have read and agree with the " "<a href={!r} target='_blank' rel='noopener noreferrer'>" "IHP-WINS Terms of use" "<a>".format(terms_url)) fields["terms_agreement"] = forms.BooleanField(label=agreement_message) form.fields = fields
def __new__(cls, name, bases, attrs): class StaticProp(object): def __init__(self, value): self.value = value def __get__(self, obj, objtype): return self.value fields = {} labels = Labels() values = {} choices = [] # Get all the fields from parent classes. parents = [b for b in bases if isinstance(b, DjangoChoicesMeta)] for kls in parents: for field_name in kls._fields: fields[field_name] = kls._fields[field_name] # Get all the fields from this class. for field_name in attrs: val = attrs[field_name] if isinstance(val, ChoiceItem): fields[field_name] = val fields = OrderedDict(sorted(fields.items(), key=lambda x: x[1].order)) for field_name in fields: val = fields[field_name] if isinstance(val, ChoiceItem): if not val.label is None: label = val.label else: label = cls.name_clean.sub(" ", field_name) choices.append((val.value, label)) attrs[field_name] = StaticProp(val.value) setattr(labels, field_name, label) values[val.value] = label else: choices.append((field_name, val.choices)) attrs["choices"] = StaticProp(tuple(choices)) attrs["labels"] = labels attrs["values"] = values attrs["_fields"] = fields return super(DjangoChoicesMeta, cls).__new__(cls, name, bases, attrs)
def stats(self): try: conn = self.connection info = conn.info() slowlog = conn.slowlog_get() slowlog_len = conn.slowlog_len() return { 'status': 'UP', 'details': info, 'memory': "%s (peak: %s)" % (info['used_memory_human'], info.get('used_memory_peak_human', 'n/a')), 'clients': info['connected_clients'], 'brief_details': OrderedDict( prettify(k, v) for name in REDISBOARD_DETAIL_FILTERS for k, v in (info.items() if PY3 else info.iteritems()) if name.match(k)), 'slowlog': slowlog, 'slowlog_len': slowlog_len, } except redis.exceptions.ConnectionError: return { 'status': 'DOWN', 'clients': 'n/a', 'memory': 'n/a', 'details': {}, 'brief_details': {}, 'slowlog': [], 'slowlog_len': 0, } except redis.exceptions.ResponseError as exc: return { 'status': 'ERROR: %s' % exc.args, 'clients': 'n/a', 'memory': 'n/a', 'details': {}, 'brief_details': {}, 'slowlog': [], 'slowlog_len': 0, }
def _read_data(self, coverage, subset, rangesubset): range_type = coverage.range_type # Open file filename = connect(coverage.data_items.all()[0]) root = etree.parse(filename).getroot() output_data = OrderedDict() # Read data band = range_type[0] if not rangesubset or band in rangesubset: data = map(float, root.xpath("data/value/text()")) print data, root data = data[int(subset.low):int(subset.high)] output_data[band.identifier] = data return output_data
def inspect(request, server): stats = server.stats conn = server.connection database_details = OrderedDict() key_details = None if stats['status'] == 'UP': if 'key' in request.GET: key = request.GET['key'] db = request.GET.get('db', 0) page = request.GET.get('page', 1) key_details = _get_key_details(conn, db, key, page) else: databases = sorted(name[2:] for name in conn.info() if name.startswith('db')) total_size = 0 for db in databases: database_details[db] = summary = _get_db_summary(server, db) total_size += summary['size'] if total_size < server.sampling_threshold: for db in databases: database_details[db].update( _get_db_details(server, db), active=True, ) elif 'db' in request.GET: db = request.GET['db'] if db in database_details: database_details[db].update( _get_db_details(server, db), active=True, ) else: return HttpResponseNotFound("Unknown database.") return render( request, "redisboard/inspect.html", { 'databases': database_details, 'key_details': key_details, 'original': server, 'stats': stats, 'app_label': 'redisboard', })
def _replace_username_with_first_last(form): form.fields.pop("username") fields = OrderedDict() fields["first_name"] = forms.CharField(min_length=2, label=_(u"First name")) fields["last_name"] = forms.CharField(min_length=2, label=_(u"Last name")) for key, value in form.fields.iteritems(): fields[key] = value fields["recommendation"] = forms.CharField( min_length=2, max_length=50, required=False, label=_(u"Who recommended you IHP-WINS?"), widget=forms.TextInput(attrs={'placeholder': _("Name of the person")})) terms_url = "%s/terms-of-use" % settings.SITEURL terms_href = "<a href={!r} target='_blank' rel='noopener noreferrer'>".format( terms_url) terms_href = "%s%s%s" % (terms_href, _("IHP-WINS Terms of use"), "<a>") agreement_message = "%s %s" % (_("I have read and agree with the "), terms_href) fields["terms_agreement"] = forms.BooleanField(label=agreement_message) form.fields = fields
def get_cells_dict(self): cells_dict = OrderedDict() for cell in self.cells: cells_dict[cell.name] = cell.value return cells_dict
def get_menu_entry_categories(request): menu_categories = OrderedDict() menu_children = OrderedDict() # Update main menu from provides main_menu = extend_main_menu(MAIN_MENU) menu_category_icons = {} for menu_item in main_menu: identifier = menu_item["identifier"] icon = menu_item["icon"] menu_categories[identifier] = _MenuCategory( identifier=identifier, name=menu_item["title"], icon=icon, ) for child in menu_item["children"]: child_identifier = "%s:%s" % (identifier, child["identifier"]) child_category = _MenuCategory(child["identifier"], child["title"], None) menu_children[child_identifier] = child_category menu_categories[identifier].children.append(child_category) menu_category_icons[identifier] = icon modules = list(get_modules()) for module in modules: menu_category_icons.update( (force_text(key), force_text(value)) for (key, value) in module.get_menu_category_icons().items() if key not in menu_category_icons) all_categories = set() for module in modules: if get_missing_permissions(request.user, module.get_required_permissions()): continue for entry in (module.get_menu_entries(request=request) or ()): category_identifier = entry.category subcategory = entry.subcategory entry_identifier = "%s:%s" % ( category_identifier, subcategory) if subcategory else category_identifier menu_items = menu_children if subcategory else menu_categories category = menu_items.get(entry_identifier) if not category: category_identifier = force_text(category_identifier or module.name) category = menu_items.get(category_identifier) if not category: menu_items[category_identifier] = category = _MenuCategory( identifier=category_identifier, name=category_identifier, icon=menu_category_icons.get(category_identifier, "fa fa-circle")) category.entries.append(entry) if subcategory: parent = menu_categories.get(category_identifier) all_categories.add(parent) else: all_categories.add(category) return [ c for menu_identifier, c in six.iteritems(menu_categories) if c in all_categories ]
def get_service_handler(base_url, service_type=enumerations.AUTO, headers=None): """Return the appropriate remote service handler for the input URL. If the service type is not explicitly passed in it will be guessed from """ handlers = OrderedDict({ enumerations.WMS: { "OWS": True, "handler": ExchangeWmsServiceHandler }, # enumerations.WFS: {"OWS": True, "handler": ServiceHandlerBase}, # enumerations.TMS: {"OWS": False, "handler": ServiceHandlerBase}, enumerations.REST: { "OWS": False, "handler": ExchangeMapserverServiceHandler }, # enumerations.CSW: {"OWS": False, "handler": ServiceHandlerBase}, # enumerations.HGL: {"OWS": True, "handler": ServiceHandlerBase}, # enumerations.OGP: {"OWS": False, "handler": ServiceHandlerBase}, }) if service_type in (enumerations.AUTO, enumerations.OWS): if service_type == enumerations.AUTO: to_check = handlers.keys() else: to_check = [k for k, v in handlers.items() if v["OWS"]] for type_ in to_check: logger.info("Checking {}...".format(type_)) try: service = get_service_handler(base_url, type_, headers=(headers or None)) except Exception: pass # move on to the next service type else: break else: raise RuntimeError("Could not parse service {!r} with any of the " "available service handlers".format(base_url)) else: handler = handlers.get(service_type, {}).get("handler") if (base_url.lower().startswith('https') and (callable(has_ssl_config) and has_ssl_config(base_url, via_query=True))): # has_ssl_config needs to query db, as call may be from task # worker, whose hostnameport_pattern_cache may be out of sync base_url = pki_route(base_url) logger.debug('Rewritten URL for pki proxy: {0}'.format(base_url)) bearer_header = { 'Authorization': "Bearer {0}".format(get_bearer_token(valid_time=30)) } logger.debug('Add bearer_header: {0}'.format(repr(bearer_header))) if headers and isinstance(headers, dict): headers.update(bearer_header) else: headers = bearer_header # Pass service type to pki_request view, for workarounds headers['PKI_SERVICE_TYPE'] = "{0}".format(service_type) try: service = handler(base_url, headers=headers) except Exception as e: logger.exception( msg="Could not parse service {!r}".format(base_url)) raise e return service
for model, model_admin in admin.site._registry.items(): if capfirst(model._meta.verbose_name_plural) == name: return count else: count += 1 return count def index_decorator(func): def inner(*args, **kwargs): templateresponse = func(*args, **kwargs) for app in templateresponse.context_data['app_list']: app['models'].sort(key=lambda x: find_model_index(x['name'])) return templateresponse return inner registry = OrderedDict() registry.update(admin.site._registry) admin.site._registry = registry admin.site.index = index_decorator(admin.site.index) admin.site.app_index = index_decorator(admin.site.app_index) # 用户管理类 class UserProfileAdmin(UserAdmin): fieldsets = ( (None, {'fields': ('username', 'password')}), ('Personal info', {'fields': ('first_name', 'last_name', 'email')}), ('Permissions', {'fields': ('is_active', 'is_staff', 'is_superuser', 'groups', 'user_permissions','valid_email')}), ('Important dates', {'fields': ('last_login',)}), ('Avatar',{'fields':('avatar_url','avatar_middle_thumbnall','avatar_small_thumbnall')}), )
return render_to_response( 'error.html', UTDirectContext( request, {'exception_msg': exception_msg}, defaults=defaults, document_title='Broker Error', )) # **************************************************************************** # # Display # **************************************************************************** # context = {} # this is all used for debug pda_send_dict = OrderedDict() pda_recv_dict = OrderedDict() for field in nrdpmnmn.send: pda_send_dict[field] = getattr(nrdpmnmn.send, field) for field in nrdpmnmn.recv: pda_recv_dict[field] = getattr(nrdpmnmn.recv, field) context['pda_send_dict'] = pda_send_dict context['pda_recv_dict'] = pda_recv_dict context['pda_meta_dict'] = {'envo': request.META['HTTP_SERVICE']} context['recv'] = nrdpmnmn.recv context['send'] = nrdpmnmn.send if nrdpmnmn.recv.auth_to_change == 'X': defaults = PROJECT_UTD_DEFAULTS_AUTH else:
def get_service_handler(base_url, service_type=enumerations.AUTO, headers=None): """Return the appropriate remote service handler for the input URL. If the service type is not explicitly passed in it will be guessed from """ handlers = OrderedDict({ enumerations.WMS: {"OWS": True, "handler": ExchangeWmsServiceHandler}, # enumerations.WFS: {"OWS": True, "handler": ServiceHandlerBase}, # enumerations.TMS: {"OWS": False, "handler": ServiceHandlerBase}, enumerations.REST: {"OWS": False, "handler": ExchangeMapserverServiceHandler}, # enumerations.CSW: {"OWS": False, "handler": ServiceHandlerBase}, # enumerations.HGL: {"OWS": True, "handler": ServiceHandlerBase}, # enumerations.OGP: {"OWS": False, "handler": ServiceHandlerBase}, }) if service_type in (enumerations.AUTO, enumerations.OWS): if service_type == enumerations.AUTO: to_check = handlers.keys() else: to_check = [k for k, v in handlers.items() if v["OWS"]] for type_ in to_check: logger.info("Checking {}...".format(type_)) try: service = get_service_handler(base_url, type_, headers=(headers or None)) except Exception: pass # move on to the next service type else: break else: raise RuntimeError("Could not parse service {!r} with any of the " "available service handlers".format(base_url)) else: handler = handlers.get(service_type, {}).get("handler") if (base_url.lower().startswith('https') and (callable(has_ssl_config) and has_ssl_config(base_url, via_query=True))): # has_ssl_config needs to query db, as call may be from task # worker, whose hostnameport_pattern_cache may be out of sync base_url = pki_route(base_url) logger.debug('Rewritten URL for pki proxy: {0}'.format(base_url)) bearer_header = {'Authorization': "Bearer {0}".format( get_bearer_token(valid_time=30))} logger.debug('Add bearer_header: {0}'.format(repr(bearer_header))) if headers and isinstance(headers, dict): headers.update(bearer_header) else: headers = bearer_header # Pass service type to pki_request view, for workarounds headers['PKI_SERVICE_TYPE'] = "{0}".format(service_type) try: service = handler(base_url, headers=headers) except Exception as e: logger.exception( msg="Could not parse service {!r}".format(base_url)) raise e return service
def safe_summary(self, encoded): algorithm, iterations, salt, hash = encoded.split('$', 3) return OrderedDict([ (_('algorithm'), 'md5'), (_('hash'), mask_hash(hash)), ])
else: count += 1 return count def index_decorator(func): def inner(*args, **kwargs): templateresponse = func(*args, **kwargs) for app in templateresponse.context_data['app_list']: app['models'].sort(key=lambda x: find_model_index(x['name'])) return templateresponse return inner registry = OrderedDict() registry.update(admin.site._registry) admin.site._registry = registry admin.site.index = index_decorator(admin.site.index) admin.site.app_index = index_decorator(admin.site.app_index) # 用户管理类 class UserProfileAdmin(UserAdmin): fieldsets = ( (None, {'fields': ('username', 'password')}), ('Personal info', {'fields': ('first_name', 'last_name', 'email')}), ('Permissions', {'fields': ('is_active', 'is_staff', 'is_superuser', 'groups', 'user_permissions')}), ('Important dates', {'fields': ('last_login',)}), )