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)
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)
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)
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)
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)
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", }, )