예제 #1
0
def ajax_get_fatlinks_by_year(request: WSGIRequest,
                              year: int = None) -> JsonResponse:
    """
    ajax call :: get all FAT links for a given year
    :param request:
    :type request:
    :param year:
    :type year:
    :return:
    :rtype:
    """

    if year is None:
        year = datetime.now().year

    fatlinks = AFatLink.objects.filter(
        afattime__year=year).order_by("-afattime")

    fatlink_rows = [
        convert_fatlinks_to_dict(
            request=request,
            fatlink=fatlink,
            close_esi_redirect=reverse("afat:fatlinks_overview"),
        ) for fatlink in fatlinks
    ]

    return JsonResponse(fatlink_rows, safe=False)
예제 #2
0
def dashboard_links_data(request: WSGIRequest) -> JsonResponse:
    """
    ajax call
    get recent fat links for the dashboard datatable
    :param request:
    """

    fatlinks = AFatLink.objects.order_by("-afattime").annotate(
        number_of_fats=Count("afat", filter=Q(afat__deleted_at__isnull=True))
    )[:10]

    fatlink_rows = [
        convert_fatlinks_to_dict(request=request, fatlink=fatlink)
        for fatlink in fatlinks
    ]

    return JsonResponse(fatlink_rows, safe=False)
예제 #3
0
def ajax_get_recent_fatlinks(request: WSGIRequest) -> JsonResponse:
    """
    Ajax call :: get recent fat links for the dashboard datatable
    :param request:
    :type request:
    :return:
    :rtype:
    """

    fatlinks = (AFatLink.objects.select_related_default().annotate_afats_count(
    ).order_by("-afattime")[:10])

    fatlink_rows = [
        convert_fatlinks_to_dict(
            request=request,
            fatlink=fatlink,
            close_esi_redirect=reverse("afat:dashboard"),
        ) for fatlink in fatlinks
    ]

    return JsonResponse(fatlink_rows, safe=False)
예제 #4
0
def links_data(request: WSGIRequest, year: int = None) -> JsonResponse:
    """
    fatlinks view
    :param year:
    :param request:
    :return:
    """

    if year is None:
        year = datetime.now().year

    fatlinks = (
        AFatLink.objects.filter(afattime__year=year)
        .order_by("-afattime")
        .annotate(number_of_fats=Count("afat", filter=Q(afat__deleted_at__isnull=True)))
    )

    fatlink_rows = [
        convert_fatlinks_to_dict(request=request, fatlink=fatlink)
        for fatlink in fatlinks
    ]

    return JsonResponse(fatlink_rows, safe=False)
예제 #5
0
def ajax_get_fatlinks_by_year(request: WSGIRequest, year: int) -> JsonResponse:
    """
    Ajax call :: get all FAT links for a given year
    :param request:
    :type request:
    :param year:
    :type year:
    :return:
    :rtype:
    """

    fatlinks = (AFatLink.objects.select_related_default().filter(
        afattime__year=year).annotate_afats_count())

    fatlink_rows = [
        convert_fatlinks_to_dict(
            request=request,
            fatlink=fatlink,
            close_esi_redirect=reverse("afat:fatlinks_overview"),
        ) for fatlink in fatlinks
    ]

    return JsonResponse(fatlink_rows, safe=False)
예제 #6
0
    def test_helper_convert_fatlinks_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_fleet_1 = get_hash_on_save()
        fatlink_1_created = AFatLink.objects.create(
            afattime=timezone.now(),
            fleet="April Fleet 1",
            creator=self.user_with_manage_afat,
            character=self.character_1001,
            hash=fatlink_hash_fleet_1,
            is_esilink=True,
            is_registered_on_esi=True,
            esi_fleet_id="3726458287",
        )
        AFat.objects.create(character=self.character_1101,
                            afatlink=fatlink_1_created,
                            shiptype="Omen")

        fatlink_type_cta = AFatLinkType.objects.create(name="CTA")
        fatlink_hash_fleet_2 = get_hash_on_save()
        fatlink_2_created = AFatLink.objects.create(
            afattime=timezone.now(),
            fleet="April Fleet 2",
            creator=self.user_with_add_fatlink,
            character=self.character_1101,
            hash=fatlink_hash_fleet_2,
            link_type=fatlink_type_cta,
        )
        AFat.objects.create(character=self.character_1001,
                            afatlink=fatlink_2_created,
                            shiptype="Omen")

        # when
        fatlink_1 = (AFatLink.objects.select_related_default().
                     annotate_afats_count().get(hash=fatlink_hash_fleet_1))
        close_esi_tracking_url = reverse("afat:fatlinks_close_esi_fatlink",
                                         args=[fatlink_1.hash])
        edit_url_1 = reverse("afat:fatlinks_details_fatlink",
                             args=[fatlink_1.hash])
        delete_url_1 = reverse("afat:fatlinks_delete_fatlink",
                               args=[fatlink_1.hash])

        fatlink_2 = (AFatLink.objects.select_related_default().
                     annotate_afats_count().get(hash=fatlink_hash_fleet_2))
        edit_url_2 = reverse("afat:fatlinks_details_fatlink",
                             args=[fatlink_2.hash])
        delete_url_2 = reverse("afat:fatlinks_delete_fatlink",
                               args=[fatlink_2.hash])

        result_1 = convert_fatlinks_to_dict(request=request, fatlink=fatlink_1)
        result_2 = convert_fatlinks_to_dict(request=request, fatlink=fatlink_2)

        # then
        fleet_time_1 = fatlink_1.afattime
        fleet_time_timestamp_1 = fleet_time_1.timestamp()
        creator_main_character_1 = get_main_character_from_user(
            user=fatlink_1.creator)
        self.assertDictEqual(
            result_1,
            {
                "pk":
                fatlink_1.pk,
                "fleet_name": ('April Fleet 1<span class="label label-default '
                               "afat-label afat-label-via-esi "
                               'afat-label-active-esi-fleet">via ESI</span>'),
                "creator_name":
                creator_main_character_1,
                "fleet_type":
                "",
                "fleet_time": {
                    "time": fleet_time_1,
                    "timestamp": fleet_time_timestamp_1,
                },
                "fats_number":
                fatlink_1.afats_count,
                "hash":
                fatlink_1.hash,
                "is_esilink":
                True,
                "esi_fleet_id":
                3726458287,
                "is_registered_on_esi":
                True,
                "actions":
                (f'<a class="btn btn-afat-action btn-primary btn-sm" '
                 f'style="margin-left: 0.25rem;" title="Clicking here will '
                 f"stop the automatic tracking through ESI for this fleet "
                 f'and close the associated FAT link." data-toggle="modal" '
                 f'data-target="#cancelEsiFleetModal" '
                 f'data-url="{close_esi_tracking_url}" '
                 f'data-body-text="<p>Are you sure you want to close ESI '
                 f'fleet with ID 3726458287 from Bruce Wayne?</p>" '
                 f'data-confirm-text="Stop Tracking"><i class="fas '
                 f'fa-times"></i></a><a class="btn btn-afat-action btn-info '
                 f'btn-sm" href="{edit_url_1}"><span class="fas '
                 f'fa-eye"></span></a><a class="btn btn-afat-action '
                 f'btn-danger btn-sm" data-toggle="modal" '
                 f'data-target="#deleteFatLinkModal" '
                 f'data-url="{delete_url_1}" '
                 f'data-confirm-text="Delete"data-body-text="<p>Are you '
                 f"sure you want to delete FAT link April Fleet "
                 f'1?</p>"><span class="glyphicon '
                 f'glyphicon-trash"></span></a>'),
                "via_esi":
                "Yes",
            },
        )

        fleet_time_2 = fatlink_2.afattime
        fleet_time_timestamp_2 = fleet_time_2.timestamp()
        creator_main_character_2 = get_main_character_from_user(
            user=fatlink_2.creator)
        self.assertDictEqual(
            result_2,
            {
                "pk":
                fatlink_2.pk,
                "fleet_name":
                "April Fleet 2",
                "creator_name":
                creator_main_character_2,
                "fleet_type":
                "CTA",
                "fleet_time": {
                    "time": fleet_time_2,
                    "timestamp": fleet_time_timestamp_2,
                },
                "fats_number":
                fatlink_2.afats_count,
                "hash":
                fatlink_2.hash,
                "is_esilink":
                False,
                "esi_fleet_id":
                None,
                "is_registered_on_esi":
                False,
                "actions":
                (f'<a class="btn btn-afat-action btn-info btn-sm" '
                 f'href="{edit_url_2}"><span class="fas '
                 f'fa-eye"></span></a><a class="btn btn-afat-action '
                 f'btn-danger btn-sm" data-toggle="modal" '
                 f'data-target="#deleteFatLinkModal" '
                 f'data-url="{delete_url_2}" '
                 f'data-confirm-text="Delete"data-body-text="<p>Are you '
                 f"sure you want to delete FAT link April Fleet "
                 f'2?</p>"><span class="glyphicon '
                 f'glyphicon-trash"></span></a>'),
                "via_esi":
                "No",
            },
        )