a
    }h=                     @   sh  d dl Z d dlmZ d dlmZmZ d dlmZmZm	Z	 d dl
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ d dl m!Z! G dd dej"Z#G d	d
 d
ej$Z%G dd dej"Z&G dd dej"Z'G dd dej"Z(G dd dej"Z)G dd dej"Z*G dd dej"Z+G dd dej"Z,G dd dej"Z-G dd dej$Z.G dd dej"Z/G dd  d ej"Z0G d!d" d"ej"Z1G d#d$ d$ej"Z2G d%d& d&ej"Z3G d'd( d(ej"Z4G d)d* d*ej"Z5G d+d, d,ej"Z6G d-d. d.ej"Z7G d/d0 d0ej"Z8G d1d2 d2ej"Z9G d3d4 d4ej"Z:ej;<ee# ej;<ee& ej;<ee' ej;<ee( ej;<ee) ej;<ee* ej;<ee+ ej;<ee, ej;<ee- ej;<ee/ ej;<ee0 ej;<ee1 ej;<ee2 ej;<ee3 ej;<ee4 ej;<ee5 ej;<ee6 ej;<ee7 ej;<ee8 ej;<ee9 ej;<ee: dS )5    N)forms)adminmessages)WhenCaseSum)SBCType	SBCTarget	SBCWorker
SBCProcessSBCProcessTargetSBCOrderSBCTargetFilterAccountCheckHealthyWorkerAccountCheckHealthyOrder SBCSolverServerSideHandlerWorkerAccountSBCNeedPlayerSBCTargetFilterClubMovesSBCTargetFilterNationMovesSBCTargetFilterLeagueMovesRareFlagSBCSolvationModelSBCSolvationModelPlayersSBCSolvationModelWorkerHourlyAccountSBCDoneHistorySBCFileWorkTimeSBCFileWorkLog)	new_printc                       sr   e Zd Zg dZddgZdgZdgZdgZg dZg dZ	 fd	d
Z
ejdddd Zdd Zdd Z  ZS )SBCTypeAdmin)idname
sbc_numberpriorityshort_sbc_link	sbc_price	must_donesbc_actual_pricefather_numberconsole_can_usefilters_pricer   r    
update_sbcchecker_accountr%   )r    r'   r!   r"   sbc_linksbc_special_linkr%   r$   r&   r(   can_passcan_pass_on_errorteam_min_rate
repeatablemax_try_repeats_per_workersolvation_typeexpire_time
open_packsconsole_cant_use
submit_sbcneed_recheckneed_recheck_timer+   updating_priceupdate_time)r6   r7   r8   r9   r+   r:   r;   c                    s   t  |jtddS )NZ'sbctarget__target_filter__buy_now_priceZsum_filters_price)superget_querysetannotater   )selfrequest	__class__ <C:\Users\Administrator\Downloads\futplus_django\sbc\admin.pyr>   !   s    zSBCTypeAdmin.get_querysetz
Update SBCdescriptionc           
      C   s8  ddl m} tj }|j}|D ]}||j|j|j|j|j	ddd}|
  ztjj|jdjdd}t|dkrtj|tjd	|j d
d |j|dd}	|	dkrtj|tjd| d|j d|	 d|j d n tj|tjd|j d|	 d W q    t|jdt  tj|tjd|j d Y q 0 q d S )Nr   FutbinToolsFZuse_public_moves)r!      )r%      #duplicate sbc type with sbc number  , will update lastlevelmessage)Zmust_changeupdatedupdating sbc :  with number  	, log in error in sbc check  , zexception in update sbc 2 : )sbc.futbin_toolsrI   r
   objectsfirstfifa_accountr   	user_namepasswordplatform#set_this_staff_to_pass_logout_loginr   filterr!   excludelenr   add_messageINFOZupdate_sbc_from_futbinr   	traceback
format_excERROR
r@   rA   querysetrI   workerr\   itemZ
sbc_solverZduplicate_sbc_typesresultrD   rD   rE   r*   &   s@    



zSBCTypeAdmin.update_sbcc                 C   s   |j S )Nr<   r@   objrD   rD   rE   r)   D   s    zSBCTypeAdmin.filters_pricec                 C   s   |j r|j d d S |j S )N
   )r,   rn   rD   rD   rE   r#   R   s    zSBCTypeAdmin.short_sbc_link)__name__
__module____qualname__list_displaysearch_fieldsactionsautocomplete_fieldslist_filterfieldsreadonly_fieldsr>   r   actionr*   r)   r#   __classcell__rD   rD   rB   rE   r      s   

r   c                       s6   e Zd ZG dd dZ fddZ fddZ  ZS )SBCSolvationModelFormc                   @   s   e Zd ZeZdZdS )zSBCSolvationModelForm.Meta__all__N)rq   rr   rs   r   modelry   rD   rD   rD   rE   MetaY   s   r   c                    sZ   t   }|d}|d}|du r:|du r:| dd |du rV|du rV| dd d S )Nuse_preferred_positionuse_alternate_positionsFzEboth use_preferred_position and use_alternate_positions cant be FalseTzDboth use_preferred_position and use_alternate_positions cant be Truer=   cleanget	add_error)r@   cleaned_datar   r   rB   rD   rE   r   ]   s    


zSBCSolvationModelForm.cleanc                    sB   t  j|i | |ds>tjjddtjjddg| jd< d S NinstancezTEAM OF THE WEEK)r    zTEAM OF THE SEASONexcluded_rarity_idsr=   __init__r   r   rZ   initialr@   argskwargsrB   rD   rE   r   h   s
    
zSBCSolvationModelForm.__init__rq   rr   rs   r   r   r   r|   rD   rD   rB   rE   r}   X   s   r}   c                   @   sH   e Zd ZdgZddgZddgZg dZeZdgZ	e
jddd	d
 ZdS )SBCSolvationModelAdminsbc_typer   Zsbc_type__namer   )/r   update_link	formationnum_playerscountrynum_countrymax_num_countrymin_num_countrynum_unique_countryleague
num_leaguemax_num_leaguemin_num_leaguenum_unique_leagueclubnum_clubmax_num_clubmin_num_clubnum_unique_clubrarity_1num_rarity_1rarity_2num_rarity_2group_raritynum_group_raritymin_overallnum_min_overallsquad_rating	chemistrychem_per_playermin_rating_playersmax_rating_playersr   tradable_type
buy_playerbuy_player_linksplayers_in_positionfix_playersremove_playersminimize_max_costmaximize_total_costr   r   use_all_duplicatesuse_at_least_half_duplicatesuse_at_least_one_duplicateconsider_as_rareupdate_solvationzUpdate SolvationrF   c           
      C   s4  ddl m} tj }|j}|D ]}||j|j|j|j|j	ddd}|
  ztjj|jd}t|dkrtj|tjd|j dd	 ||j||}	|	d
krtj|tjd| d|jj d|	 d|j d	 n tj|tjd|j d|	 d	 W q    t|jdt  tj|tjd|j d	 Y q 0 q d S )Nr   rH   FrJ   )r   rL   rM   rN   rO   rR   rS   rT   rU   rV   rW   rX   zexception in update sbc : )rY   rI   r
   rZ   r[   r\   r   r]   r^   r_   r`   r   ra   r   rc   r   rd   re   Z!update_solvation_from_futbin_linkr   r!   r   rf   rg   rh   ri   rD   rD   rE   r      s@    



z'SBCSolvationModelAdmin.update_solvationN)rq   rr   rs   rt   ru   rw   ry   r}   formrv   r   r{   r   rD   rD   rD   rE   r   q   s   
r   c                   @   s,   e Zd Zg dZddgZddgZdd ZdS )	SBCSolvationModelPlayersAdmin)r   r\   asset_idratingrareindex_compositionr   Z.sbc_worker__fifa_account__user_name__icontains
sbc_workerr   c                 C   s   |j r|j jS dS )Nz--)r   r\   rn   rD   rD   rE   r\      s    z*SBCSolvationModelPlayersAdmin.fifa_accountN)rq   rr   rs   rt   ru   rw   r\   rD   rD   rD   rE   r      s   r   c                   @   s$   e Zd Zg dZddgZddgZdS )SBCSolvationModelWorkerAdmin)create_timer\   solvation_modelis_complete	has_errorr\   r   "fifa_account__user_name__icontainsZ*solvation_model__sbc_type__name__icontainsN)rq   rr   rs   rt   rw   ru   rD   rD   rD   rE   r      s   r   c                   @   s*   e Zd Zg dZdgZddgZg dZdS )SBCTargetAdmin)r   positionteamr   priceposplayertarget_filterr   r   r    )r   r   r   N)rq   rr   rs   rt   rx   ru   rw   rD   rD   rD   rE   r      s   r   c                   @   sD   e Zd Zg dZg dZdgZddgZdgZej	ddd	d
 Z
dS )SBCWorkerAdmin)
start_timer\   is_donelast_run_timer   complete_numberfirst_xitask_id)r   r   r%   make_is_done#fifa_account__console__name__iexactr   r\   Set is done = 1rF   c                 C   s   |j dd d S NT)r   updater@   rA   rj   rD   rD   rE   r      s    zSBCWorkerAdmin.make_is_doneN)rq   rr   rs   rt   rx   rv   ru   rw   r   r{   r   rD   rD   rD   rE   r      s   
r   c                   @   sD   e Zd ZddgZg dZddgZdgZdgZej	dd	d
d Z
dS )SBCProcessAdminrk   r   )rk   r   r   r   r   Z*worker__fifa_account__user_name__icontainsr   r   r   rF   c                 C   s   |j dd d S r   r   r   rD   rD   rE   r      s    zSBCProcessAdmin.make_is_doneN)rq   rr   rs   rw   rt   ru   rx   rv   r   r{   r   rD   rD   rD   rE   r      s   
r   c                   @   s   e Zd ZdgZg dZdS )SBCProcessTargetAdminsbc_process)r   club_idr   N)rq   rr   rs   rw   rt   rD   rD   rD   rE   r      s   r   c                   @   s   e Zd Zg dZdS )SBCOrderAdmin)creatorr   	file_namestatusNrq   rr   rs   rt   rD   rD   rD   rE   r      s   r   c                       s6   e Zd ZG dd dZ fddZ fddZ  ZS )SBCTargetFilterFormc                   @   s   e Zd ZeZdZdS )zSBCTargetFilterForm.Metar~   N)rq   rr   rs   r   r   ry   rD   rD   rD   rE   r      s   r   c                    sB   t   }|dpd}|dp$d}|r>||k r>| dd d S )N
min_ratingr   
max_ratingz-Max rating should be greater than min rating.r   )r@   r   r   r   rB   rD   rE   r      s
    
zSBCTargetFilterForm.cleanc                    sB   t  j|i | |ds>tjjddtjjddg| jd< d S r   r   r   rB   rD   rE   r      s
    
zSBCTargetFilterForm.__init__r   rD   rD   rB   rE   r      s   r   c                   @   s$   e Zd Zg dZdgZdgZeZdS )SBCTargetFilterAdmin)
r   rP   
rarity_idsr   nationr   r   buy_now_pricer   r   r   r   N)rq   rr   rs   rt   rw   ru   r   r   rD   rD   rD   rE   r      s   r   c                   @   s   e Zd Zg dZdS )SBCTargetFilterNationMovesAdmin)r   
move_right	move_downmove_r1Nr   rD   rD   rD   rE   r     s   r   c                   @   s   e Zd Zg dZdS )SBCTargetFilterLeagueMovesAdmin)r   r   r   r   Nr   rD   rD   rD   rE   r     s   r   c                   @   s   e Zd Zg dZdS )SBCTargetFilterClubMovesAdmin)r   r   r   r   r   Nr   rD   rD   rD   rE   r   
  s   r   c                   @   s   e Zd Zg dZdS )AccountCheckHealthyOrderAdmin)r   r   r   Nr   rD   rD   rD   rE   r     s   r   c                   @   s"   e Zd Zg dZdgZddgZdS )AccountCheckHealthyWorkerAdmin)	r   r\   r   r   current_coinsopen_preview_gold_pack
sell_itemsr5   create_clubfifa_account__user_namer\   r   Nrq   rr   rs   rt   ru   rw   rD   rD   rD   rE   r     s   r   c                   @   s"   e Zd Zg dZdgZddgZdS )%SBCSolverServerSideHandlerWorkerAdmin)r\   r   r   r   r   r   r\   r   Nr   rD   rD   rD   rE   r     s   r   c                   @   s"   e Zd ZddgZdgZddgZdS )AccountSBCNeedPlayerAdminr\   
sbc_targetr   Nr   rD   rD   rD   rE   r    s   r  c                   @   s   e Zd ZddgZdgZdS )RareFlagAdminr    rare_idname__icontainsN)rq   rr   rs   rt   ru   rD   rD   rD   rE   r  %  s   r  c                   @   s&   e Zd ZdgZg dZdgZdgZdS )SBCFileWorkTimeAdminconsole__name__iexact)consoler   end_timer  r   N)rq   rr   rs   ru   rt   rw   rx   rD   rD   rD   rE   r  *  s   r  c                   @   s   e Zd ZddgZdS ) HourlyAccountSBCDoneHistoryAdmin
done_countaccount_done_countNr   rD   rD   rD   rE   r
  1  s   r
  c                   @   s*   e Zd ZdgZddgZg dZddgZdS )SBCFileWorkLogAdminZ console__worker_pc__name__iexactr  r\   )r  	work_typework_statuswork_accounts_countr   r	  r  r  N)rq   rr   rs   ru   rw   rt   rx   rD   rD   rD   rE   r  5  s   r  )=rf   djangor   django.contribr   r   django.db.modelsr   r   r   
sbc.modelsr   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   utils.realy_public_methodsr   
ModelAdminr   	ModelFormr}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r
  r  siteregisterrD   rD   rD   rE   <module>   sb   \H9	