
    .iC                        d dl mZmZmZ d dlmZmZmZmZm	Z	 d dl
mZ d dlmZmZmZ d dlmZ d dlmZmZmZ d dlmZmZ d dlmZmZ d d	lmZ d d
lmZ d dl m!Z! d dl"m#Z# d dl$m%Z% d dl&m'Z'm(Z( d dl)m*Z* d dl+m,Z, d dl-m.Z.m/Z/m0Z0m1Z1  G d dee      Z2 G d dee      Z3d dl mZ d dl4m5Z5 e5d        Z6e5d        Z7e5d        Z8y)    )renderredirectget_object_or_404)ViewListViewTemplateView
DetailView
CreateView)LoginRequiredMixin)authenticateloginlogout)messages)JsonResponseHttpResponseHttp404)reversereverse_lazy)CountQ)timezone)ContentFile)csrf_exempt)require_POST)DBHelper)get_team_metricsget_player_metrics)PermissionChecker)SportsDataService)MatchTeamPlayerDivisionc                       e Zd ZdZdZd Zy)dashBoardViewzdashboard/dashboard.html/c           
      2   t        |j                        }t        |      }|j                  d      }|j	                         }|j                  d      }d }|j                  d      r	 t        || j                  |||||j                  j                  d      S )N
   limit      )testeomatchesteamsdatametricsplayerhas_full_access)
r   userr   get_accessible_matchesget_accessible_teamscan_view_teamcan_view_playerr   template_nameis_superuser)selfrequestcheckerservicer.   r/   r-   r0   s           9/var/www/app.tikistats.com/public_html/dashboard/views.pygetzdashBoardView.get   s    #GLL1#G, 00r0: ,,.&&q) !""2& gt11!2&||884
  	    N)__name__
__module____qualname__r7   	login_urlr>    r?   r=   r%   r%      s    .MIr?   r%   c                   *     e Zd ZdZdZdZ fdZ xZS )DivisionViewu,   Vista para mostrar una división específicazdivision.htmlr&   c                     t        |   di |}| j                  j                  d      }t	        | j
                  j                        }t        |      }|j                  dd      j                         |d<   ||d<   |S )Nslug- division_namedivision_slugrD   )
superget_context_datakwargsr>   r   r:   r2   r   replacetitle)r9   rO   contextrL   r;   r<   	__class__s         r=   rN   zDivisionView.get_context_data<   sx    '*4V4/ $DLL$5$56#G, $1#8#8c#B#H#H#J #0 r?   )r@   rA   rB   __doc__r7   rC   rN   __classcell__)rS   s   @r=   rF   rF   7   s    6#MI r?   rF   )r   )login_requiredc           
      J   t        | j                        }t        |      }	 t        j                  j                  d      j                  d      }|j                  }|j                  |      st        d      |j                  d|      }|j                         }|?t        j                  j                  d      j                  |d	
      j                         }no|r@t        j                  j                  d      j                  ||d	      j                         }n-t        j                  j                  d      j!                         }|||j#                         |j#                         dd||dd d}t%        | d|      S # t        j                  $ r t        d      w xY w)u   Vista para la división Sub17tikistats_internalzSub-17)name__icontainsu   División Sub-17 no encontradaz#Division not found or access denied   )r*   division_idNactive)1team_division_players__team_division__division_idteam_division_players__state)1team_division_players__team_division__team_id__inr]   r^   C   *   r(   )r[   divisiontotal_playersmatches_playedwin_rategoals_scoredrecent_matchesplayerszdashboard/sub17.html)r   r2   r   r#   objectsusingr>   idDoesNotExistr   can_view_divisionr3   get_allowed_teamsr"   filterdistinctnonecountr   )	r:   r;   r<   rb   r[   rg   allowed_team_idsrh   rR   s	            r=   
sub17_viewrt   T   s   
  -G(G8##))*>?CCT\C]kk
 $$[1;<< 33!3UN 002..&&';<CC>I)1 D 
 (* 	 
..&&';<CC>N>I)1 D 
 (*	 	 ..&&';<AAC # (..0(3B<	G '17;;Q    86778s   ;F F"c                    t        | j                        }t        |      }|j                  |      st	        d      |j                  |      }|st	        d      |j                  |d      }d}|r	 ||||d}t        | d|      S )u9   Vista para mostrar estadísticas detalladas de un partidoz Match not found or access deniedzMatch not foundhistoricdepthN)r[   matchcan_view_historicmatch_statszdashboard/matchs.html)r   r2   r   can_view_matchr   	get_matchr   )	r:   r[   match_idr;   r<   ry   rz   r{   rR   s	            r=   matchs_viewr      s    
  -G(G !!(+899 h'E'((  ..xz.J K #."	G '2G<<r?   c                 x   t        | j                        }t        |      }|j                  |d      st	        d      |j                  |      }|st	        d      |j                  |d      }|j                  |      }d}|j                  |d      r|j                  |      }||||dd	}t        | d
|      S )z'Vista para mostrar detalle de un equiporv   rw   zTeam not found or access deniedzTeam not foundr(   r)   NT)teamrg   rh   
team_statsrz   zdashboard/team_detail.html)
r   r2   r   r5   r   get_teamget_matches_by_teamget_players_by_teamget_team_statsr   )	r:   team_idr;   r<   r   rg   rh   r   rR   s	            r=   team_detailr      s    
  -G(G   
 ;788 G$D&'' 000CN ))'2G JWJ7++G4
 ( !G '7AAr?   N)9django.shortcutsr   r   r   django.views.genericr   r   r   r	   r
   django.contrib.auth.mixinsr   django.contrib.authr   r   r   django.contribr   django.httpr   r   r   django.urlsr   r   django.db.modelsr   r   django.utilsr   django.core.files.baser   django.views.decorators.csrfr   django.views.decorators.httpr   dashboard.db_helperr   router_analytics.servicesr   r   clients.permissionsr   router_sports.servicesr   router_sports.modelsr    r!   r"   r#   r%   rF   django.contrib.auth.decoratorsrV   rt   r   r   rD   r?   r=   <module>r      s    @ @ U U 9 ; ; # ; ; - % ! . 4 5 ( J 1 4 > >& B%| 4 $ 93< 3<j != !=F $B $Br?   