
    sib                     V    d Z ddlmZmZmZ ddlmZ ddlmZ ddl	m
Z
  G d de
      Zy)	z%
horilla_views/generic/cbv/kanban.py
    )	EmptyPagePageNotAnInteger	Paginator)models)get_nested_field)HorillaCardViewc                        e Zd ZU dZeed<   dZdZeed<   dZeed<   dZ	eed<   dZ
eed	<   d
Zeed<   dZeed<   g Zeed<   dZeed<   g Zeed<   dZeed<   d Z fdZ xZS )HorillaKanbanView 	group_keyNz generic/horilla_kanban_view.htmltemplate_namekanban_attrssequenceinstance_order_bygroup_order_by
   records_per_pagecustom_card_content_templategroup_actionsTshow_kanban_confirmationfolded_groupsaction_methodc                 d    | j                  | j                  j                        j                  }|S N)group_filter_classrequestGETqs)selfargskwargsrelated_groupss       D/var/www/python-projects/worksol/horilla_views/generic/cbv/kanban.pyget_related_groupsz$HorillaKanbanView.get_related_groups   s(    001A1ABEE    c                    t        |   di |}| j                  }| j                  r | j                  j                  j
                  nd}| j                  r| j                  j                  nd}||d<   ||d<   | j                  j                  dd       |d<   i }i }	 t        | j                  | j                        }t        |t        j                  t        j                  t        j                  f      r,|j!                  | j                        }| j#                         }	nUt%        |d      rG|j&                  r;|j&                  D 
cg c]   }
 t)        dd|
d	   |
d
   fdd             " }	}
d|d<   ng }	|	D ];  }| |j*                  di | j                   |j,                  id||j,                  <   = |	D ci c]*  }|j,                  |v r|j,                  ||j,                     , }}|j/                         D ]  \  }}	 |d   j1                  | j2                        }t5        || j6                        }| j8                  j:                  j                  d| d
      }	 |j=                  |      }|d   |d||<    |jE                  || jF                  | jH                  j                  | j                  | jJ                  d       |S c c}
w c c}w #  |d   j1                  d      }Y xY w# t>        $ r |j=                  d
      }Y t@        $ r |j=                  |jB                        }Y w xY w# tL        $ r}tO        d|        Y d }~|S d }~ww xY w)Nr   	app_label
model_namepktab_idchoicesChoice r      c                     |S r   r-   )r   vals     r#   <lambda>z4HorillaKanbanView.get_context_data.<locals>.<lambda>:   s    RU r%   )r)   __str__Tis_choice_group)labelitemsr5   page_r4   )r4   page_obj)grouped_itemsactionsfilter_classgroup_by_fieldr   zError in KanbanViewItems: )(superget_context_dataquerysetmodel_metar'   __name__r!   getr   r   
isinstancer   
ForeignKeyOneToOneFieldOneToOneRelprefetch_relatedr$   hasattrr+   typefilterr)   r5   order_byr   r   r   r   r   pager   r   	num_pagesupdater9   r:   r   	Exceptionprint)r   r!   contextr>   r'   r(   r8   paginated_groupsfieldr"   choicerelated_itemrisorted_itemskeygroupordered_items	paginatorrL   r7   e	__class__s                        r#   r=   z"HorillaKanbanView.get_context_data   sN   '*4V4==26**DJJ$$.."	,0JJTZZ((B
( * KKOOD$7E	4$TZZ@E))6+?+?ASAST $44T^^D!%!8!8!:	*u}} #(--" D %ayvay6UW " " .2)* "$ !/ ),X__V4>>2B\__/UV2loo. )55M) }RUU++L  +002 
UB$)'N$;$;D<R<R$SM &mT5J5JK	||''++eC5M1=C(~~d3H #7^ () %( NN%5#||$($5$5$>$>&*nn$($5$5 {"*B$)'N$;$;D$AM ( 1(~~a0H  C(~~i.A.ABHC$  	4.qc233	4s   B+L4 %K
-AL4 ;/K*L4 K!?L4 !K/2AL4 

L4 K,*L4 /L1	L4 #L1.L4 0L11L4 4	M=MM)rA   
__module____qualname__r   str__annotations__r   r   r   r   r   r   intr   r   listr   boolr   r   r$   r=   __classcell__)r]   s   @r#   r
   r
      s    Is;M3;L#'s'$NC$c(* #*M4%)d)M4M3U Ur%   r
   N)__doc__django.core.paginatorr   r   r   	django.dbr   horilla_views.cbv_methodsr   horilla_views.generic.cbv.viewsr   r
   r-   r%   r#   <module>rk      s*    I H  6 ;g gr%   