Esempio n. 1
0
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]
Esempio n. 2
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>'
Esempio n. 3
0
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>'
Esempio n. 4
0
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>'
Esempio n. 5
0
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>'
Esempio n. 6
0
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]
Esempio n. 7
0
    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
Esempio n. 8
0
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
Esempio n. 9
0
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
Esempio n. 10
0
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)
Esempio n. 11
0
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())
Esempio n. 12
0
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>'
Esempio n. 13
0
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>'
Esempio n. 14
0
 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
Esempio n. 15
0
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
Esempio n. 16
0
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>'
Esempio n. 17
0
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
Esempio n. 18
0
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
Esempio n. 19
0
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')
Esempio n. 20
0
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
Esempio n. 21
0
 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)
                 }
Esempio n. 22
0
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
    ]
Esempio n. 23
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
Esempio n. 24
0
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',
        })
Esempio n. 25
0
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
Esempio n. 26
0
    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)
Esempio n. 27
0
 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,
         }
Esempio n. 28
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
Esempio n. 29
0
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',
        })
Esempio n. 30
0
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
Esempio n. 31
0
 def get_cells_dict(self):
     cells_dict = OrderedDict()
     for cell in self.cells:
         cells_dict[cell.name] = cell.value
     return cells_dict
Esempio n. 32
0
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
    ]
Esempio n. 33
0
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
Esempio n. 34
0
    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')}),
    )
Esempio n. 35
0
        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:
Esempio n. 36
0
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)),
     ])
Esempio n. 38
0
        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',)}),
    )