def get_context_data(self, **kwargs): all_drops = get_drop_querysets(self.get_queryset()) recent_drops = { 'items': all_drops['items'].values( 'item', name=F('item__name'), icon=F('item__icon'), ).annotate( count=Sum('quantity') ).order_by('-count') if 'items' in all_drops else [], 'monsters': replace_value_with_choice( list(all_drops['monsters'].values( name=F('monster__name'), icon=F('monster__image_filename'), element=F('monster__element'), stars=F('grade'), is_awakened=F('monster__is_awakened'), can_awaken=F('monster__can_awaken'), ).annotate( count=Count('pk') ).order_by('-count')), {'element': Monster.ELEMENT_CHOICES}) if 'monsters' in all_drops else [], 'runes': replace_value_with_choice( list(all_drops['runes'].values( 'type', 'quality', 'stars', ).annotate( count=Count('pk') ).order_by('-count') if 'runes' in all_drops else []), { 'type': RuneInstance.TYPE_CHOICES, 'quality': RuneInstance.QUALITY_CHOICES, } ), } if self.get_log_count(): bin_width = 50000 damage_stats = self.get_queryset().aggregate(min=Min('damage'), max=Max('damage')) bin_start = floor_to_nearest(damage_stats['min'], bin_width) bin_end = ceil_to_nearest(damage_stats['max'], bin_width) damage_histogram = { 'type': 'histogram', 'width': bin_width, 'data': histogram(self.get_queryset(), 'damage', range(bin_start, bin_end, bin_width)), } else: damage_histogram = None context = { 'dashboard': { 'recent_drops': recent_drops, }, 'report': drop_report(self.get_queryset(), min_count=0), 'damage_histogram': damage_histogram } context.update(kwargs) return super().get_context_data(**context)
def get_context_data(self, **kwargs): if self.get_log_count(): contribution_histogram = { 'type': 'histogram', 'width': 1, 'data': histogram(self.get_queryset(), 'contribution_amount', range(0, 100)), } else: contribution_histogram = None context = { 'dungeon': self.get_dungeon(), 'level': self.get_level(), 'report': drop_report( self.get_queryset(), min_count=0, include_currency=True, exclude_social_points=True, owner_only=True, ), 'contribution_histogram': contribution_histogram } context.update(kwargs) return super().get_context_data(**context)
def get_context_data(self, **kwargs): if self.get_log_count(): bin_width = 50000 damage_stats = self.get_queryset().aggregate( min=Min('total_damage'), max=Max('total_damage')) bin_start = floor_to_nearest(damage_stats['min'], bin_width) bin_end = ceil_to_nearest(damage_stats['max'], bin_width) damage_histogram = { 'type': 'histogram', 'width': bin_width, 'data': histogram(self.get_queryset(), 'total_damage', range(bin_start, bin_end, bin_width)), } else: damage_histogram = None context = { 'dungeon': self.get_dungeon(), 'level': self.get_level(), 'report': drop_report(self.get_queryset(), min_count=0), 'damage_histogram': damage_histogram } context.update(kwargs) return super().get_context_data(**context)
def get_context_data(self, **kwargs): context = { 'dungeon': self.get_dungeon(), 'level': self.get_level(), 'report': drop_report(self.get_queryset(), min_count=0), } context.update(kwargs) return super().get_context_data(**context)
def get_context_data(self, **kwargs): context = { 'report': drop_report(self.get_queryset(), min_count=0, include_currency=True) } context.update(kwargs) return super().get_context_data(**context)