def ajax_recent_get_fats_by_character(
    request: WSGIRequest, charid: int
) -> JsonResponse:
    """
    ajax call :: get all FATs for a given character
    :param request:
    :type request:
    :param charid:
    :type charid:
    :return:
    :rtype:
    """

    character = EveCharacter.objects.get(character_id=charid)

    fats = (
        AFat.objects.filter(character=character)
        .order_by("afatlink__afattime")
        .reverse()[:10]
    )

    character_fat_rows = [
        convert_fats_to_dict(request=request, fat=fat) for fat in fats
    ]

    return JsonResponse(character_fat_rows, safe=False)
def link_edit_fat_data(request: WSGIRequest, fatlink_hash):
    """
    ajax call
    fat list in link edit view
    :param request:
    :param fatlink_hash:
    """

    fats = AFat.objects.filter(afatlink__hash=fatlink_hash)

    fat_rows = [convert_fats_to_dict(request=request, fat=fat) for fat in fats]

    return JsonResponse(fat_rows, safe=False)
def ajax_get_fats_by_fatlink(request: WSGIRequest,
                             fatlink_hash) -> JsonResponse:
    """
    ajax call :: get all FATs for a given FAT link hash
    :param request:
    :type request:
    :param fatlink_hash:
    :type fatlink_hash:
    :return:
    :rtype:
    """

    fats = AFat.objects.filter(afatlink__hash=fatlink_hash)

    fat_rows = [convert_fats_to_dict(request=request, fat=fat) for fat in fats]

    return JsonResponse(fat_rows, safe=False)
Exemple #4
0
def dashboard_fats_data(request: WSGIRequest, charid: int) -> JsonResponse:
    """
    ajax call
    get fats for dashboard view
    :param request:
    :param charid:
    """

    character = EveCharacter.objects.get(character_id=charid)

    fats = (
        AFat.objects.filter(character=character)
        .order_by("afatlink__afattime")
        .reverse()[:10]
    )

    character_fat_rows = [
        convert_fats_to_dict(request=request, fat=fat) for fat in fats
    ]

    return JsonResponse(character_fat_rows, safe=False)
    def test_helper_convert_fats_to_dict(self):
        # given
        self.client.force_login(self.user_with_manage_afat)
        request = self.factory.get(reverse("afat:dashboard"))
        request.user = self.user_with_manage_afat

        fatlink_hash = get_hash_on_save()
        fatlink_type_cta = AFatLinkType.objects.create(name="CTA")
        fatlink_created = AFatLink.objects.create(
            afattime=timezone.now(),
            fleet="April Fleet 1",
            creator=self.user_with_manage_afat,
            character=self.character_1001,
            hash=fatlink_hash,
            is_esilink=True,
            is_registered_on_esi=True,
            esi_fleet_id="3726458287",
            link_type=fatlink_type_cta,
        )
        fat = AFat.objects.create(character=self.character_1101,
                                  afatlink=fatlink_created,
                                  shiptype="Omen")

        # when
        result = convert_fats_to_dict(request=request, fat=fat)

        esi_marker = (
            '<span class="label label-default afat-label afat-label-via-esi '
            'afat-label-active-esi-fleet">via ESI</span>')
        fleet_time = fat.afatlink.afattime
        fleet_time_timestamp = fleet_time.timestamp()

        button_delete_fat = reverse("afat:fatlinks_delete_fat",
                                    args=[fat.afatlink.hash, fat.id])
        button_delete_text = "Delete"
        modal_body_text = (
            "<p>Are you sure you want to remove "
            f"{fat.character.character_name} from this FAT link?</p>")

        # then
        self.assertDictEqual(
            result,
            {
                "system":
                fat.system,
                "ship_type":
                fat.shiptype,
                "character_name":
                fat.character.character_name,
                "fleet_name":
                fat.afatlink.fleet + esi_marker,
                "fleet_time": {
                    "time": fleet_time,
                    "timestamp": fleet_time_timestamp
                },
                "fleet_type":
                "CTA",
                "via_esi":
                "Yes",
                "actions": ('<a class="btn btn-danger btn-sm" '
                            'data-toggle="modal" '
                            'data-target="#deleteFatModal" '
                            f'data-url="{button_delete_fat}" '
                            f'data-confirm-text="{button_delete_text}"'
                            f'data-body-text="{modal_body_text}">'
                            '<span class="glyphicon glyphicon-trash"></span>'
                            "</a>"),
            },
        )