Ë
    �#ijf#  ã                   ó¦  — d dl mZ d dlmZ d dl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mZmZmZmZm Z m!Z!m"Z"m#Z# ddl$m%Z%m&Z&m'Z'  G d„ de«      Z( G d	„ d
ejR                  «      Z*d„ Z+ e+deee	e
«      Z, e+deeee«      Z- e+deeee«      Z. e+deeee«      Z/ e+dee e!e"«      Z0 e+deeee«      Z1 e+deeee«      Z2y)é    )Úforms)ÚUserCreationForm)Útransactioné   )ÚArticleÚArticleCategoryÚArticleSubcategoryÚ
ArticleTagÚCentralPointÚCentralPointCategoryÚCentralPointSubcategoryÚCentralPointTagÚDecisionÚDecisionCategoryÚDecisionSubcategoryÚDecisionTagÚGoalÚGoalCategoryÚGoalSubcategoryÚGoalTagÚJournalÚJournalCategoryÚJournalSubcategoryÚ
JournalTagÚNoteÚNoteCategoryÚNoteSubcategoryÚNoteTagÚStrategyÚStrategyCategoryÚStrategySubcategoryÚStrategyTagÚUser)ÚDEFAULT_CATEGORY_NAMEÚDEFAULT_CATEGORY_SLUGÚdefault_category_firstc                   óÈ   ‡ — e Zd ZdZ ej
                  dd¬«      Z ej
                  dd¬«      Z ej                  d¬«      Z	 G d„ d	e
j                  «      Zˆ fd
„Zd„ Zˆ xZS )ÚRegistrationFormz?Create a local account with a unique, normalized email address.ÚNameé–   )ÚlabelÚ
max_lengthÚSurnameÚEmail)r+   c                   ó   — e Zd ZeZdZy)úRegistrationForm.Meta©Ú
first_nameÚ	last_nameÚusernameÚemailÚ	password1Ú	password2N)Ú__name__Ú
__module__Ú__qualname__r#   ÚmodelÚfields© ó    ú"/var/www/html/office/core/forms.pyÚMetar0      s   „ Øˆð
‰r>   r@   c                 óê   •— t        ‰| �  |i |¤Ž dddddddœ}dd	d
ddddœ}| j                  j                  «       D ]4  \  }}|j                  j
                  j                  d||   ||   dœ«       Œ6 y )Nr)   r-   ÚUsernamezyou@example.comÚPasswordzConfirm passwordr1   z
given-namezfamily-namer4   r5   znew-passwordz
auth-input)ÚclassÚplaceholderÚautocomplete)ÚsuperÚ__init__r<   ÚitemsÚwidgetÚattrsÚupdate)ÚselfÚargsÚkwargsÚplaceholdersrF   ÚnameÚfieldÚ	__class__s          €r?   rH   zRegistrationForm.__init__"   s›   ø€ Ü‰Ñ˜$Ð) &Ò)à Ø"Ø"Ø&Ø#Ø+ñ
ˆð 'Ø&Ø"ØØ'Ø'ñ
ˆð  Ÿ;™;×,Ñ,Ó.ò 	‰KˆD�%Ø�L‰L×Ñ×%Ñ%Ø%Ø+¨DÑ1Ø ,¨TÑ 2ñ'õ ñ	r>   c                 óâ   — | j                   d   j                  «       j                  «       }t        j                  j                  |¬«      j                  «       rt        j                  d«      ‚|S )Nr5   )Úemail__iexactz*An account with this email already exists.)	Úcleaned_dataÚstripÚlowerr#   ÚobjectsÚfilterÚexistsr   ÚValidationError)rM   r5   s     r?   Úclean_emailzRegistrationForm.clean_email;   sY   € Ø×!Ñ! 'Ñ*×0Ñ0Ó2×8Ñ8Ó:ˆÜ�<‰<×Ñ¨UÐÓ3×:Ñ:Ô<Ü×'Ñ'Ð(TÓUÐUØˆr>   )r8   r9   r:   Ú__doc__r   Ú	CharFieldr2   r3   Ú
EmailFieldr5   r   r@   rH   r]   Ú__classcell__©rS   s   @r?   r(   r(      sY   ø„ ÙIà �—‘ v¸#Ô>€JØ�—‘ i¸CÔ@€IØˆE×Ñ 7Ô+€Eô
Ð×$Ñ$ô 
ôö2r>   r(   c                   óê   ‡ — e Zd ZdZ ej
                  dddd¬«      Z ej
                  dddd¬«      Z ej
                  d	dd
¬«      ZdZ	dZ
dZˆ fd„Zˆ fd„Zd„ Zej                   dˆ fd„	«       Zˆ xZS )ÚTaxonomyModelFormzAModel form that can create taxonomy values along with the record.zNew categoryFéÿ   z7Enter a name only when the category is not in the list.)r+   Úrequiredr,   Ú	help_textzNew subcategoryz:Enter a name only when the subcategory is not in the list.zNew tagsz/Comma-separated tag names to create and attach.)r+   rf   rg   Nc                 ó²  •— |j                  dd «      | _        t        ‰| �  |i |¤Ž d| j                  d   _        t        | j                  j                  j                  | j                  ¬«      «      | j                  d   _
        d| j                  d   _        | j                  j                  j                  d«      j                  | j                  ¬«      j                  dd«      | j                  d   _
        d	| j                  d   _        | j                  j                  j                  | j                  ¬«      j                  d«      | j                  d
   _
        t!        j"                  ddi¬«      | j                  d
   _        | j                  d
   j&                  | j                  d
   j$                  _        d| j                  d
   _        dd	dddddœ}| j                  j+                  «       D ]^  \  }}|j-                  ||j.                  «      }|j$                  j0                  j3                  |j.                  |j.                  |dœ«       Œ` y )NÚuserFÚcategory)ri   zSelect an existing categoryÚcategory__namerQ   Úsubcategoryz)Select an existing subcategory (optional)ÚtagsrD   ztag-choice-input©rK   zPTap or click each existing tag you want to attach. You can select multiple tags.zSelect existing tagszOr enter a new categoryzOr enter a new subcategoryz%Or enter new tags separated by commas)rj   rl   rm   Únew_categoryÚnew_subcategoryÚnew_tags)z
aria-labelÚtitlerE   )Úpopri   rG   rH   r<   rf   r&   Úcategory_modelrY   rZ   ÚquerysetÚempty_labelÚsubcategory_modelÚselect_relatedÚorder_byÚ	tag_modelr   ÚCheckboxSelectMultiplerJ   Úchoicesrg   rI   Úgetr+   rK   rL   )rM   rN   rO   rP   Ú
field_namerR   rE   rS   s          €r?   rH   zTaxonomyModelForm.__init__[   s  ø€ Ø—J‘J˜v tÓ,ˆŒ	Ü‰Ñ˜$Ð) &Ò)Ø+0ˆ�‰�JÑÔ(Ü+AØ×Ñ×'Ñ'×.Ñ.°D·I±IÐ.Ó>ó,
ˆ�‰�JÑÔ(ð /Lˆ�‰�JÑÔ+Ø.2×.DÑ.D×.LÑ.L×.[Ñ.[Øó/
ç
‰&�d—i‘iˆ&Ó
 §¡Ð*:¸FÓ!Cð 	�‰�MÑ"Ô+ð 2]ˆ�‰�MÑ"Ô.Ø'+§~¡~×'=Ñ'=×'DÑ'DØ—‘ð (Eó (
ç
‰(�6Ó
ð 	�‰�FÑÔ$ô &+×%AÑ%AØÐ.Ð/ô&
ˆ�‰�FÑÔ"ð .2¯[©[¸Ñ-@×-HÑ-Hˆ�‰�FÑ×"Ñ"Ô*à^ð 	�‰�FÑÔ%ð
 6ØFØ*Ø5Ø;Ø?ñ
ˆð "&§¡×!2Ñ!2Ó!4ò 	ÑˆJ˜Ø&×*Ñ*¨:°u·{±{ÓCˆKØ�L‰L×Ñ×%Ñ%Ø#Ÿk™kØŸ™Ø*ñ'õ ñ	r>   c                 ó¢  •— t         ‰| �  «       }|j                  d«      }|j                  d«      }|j                  dd«      j                  «       }|j                  dd«      j                  «       }|r|r| j	                  dd«       |s|s| j	                  dd«       |r|r| j	                  dd«       |r-|r+|j
                  |j                  k7  r| j	                  dd	«       |r|r| j	                  dd
«       |xr |j                  t        k(  xs% |j                  «       t        j                  «       k(  }|r|s|r| j	                  dd«       |S )Nrj   rl   ro   Ú rp   z*Select a category or create one, not both.z/Select a category or enter a new category name.z-Select a subcategory or create one, not both.z5The subcategory must belong to the selected category.z;An existing subcategory cannot be used with a new category.z(Uncategorized cannot have subcategories.)rG   Úcleanr}   rW   Ú	add_errorÚcategory_idÚpkÚslugr%   Úcasefoldr$   )rM   rV   rj   rl   ro   rp   Úis_default_categoryrS   s          €r?   r�   zTaxonomyModelForm.clean‚   s;  ø€ Ü‘w‘}“ˆØ×#Ñ# JÓ/ˆØ"×&Ñ& }Ó5ˆØ#×'Ñ'¨¸Ó;×AÑAÓCˆØ&×*Ñ*Ð+<¸bÓA×GÑGÓIˆá™Ø�N‰N˜>Ð+WÔXÙ¡Ø�N‰N˜:Ð'XÔYÙ™?Ø�N‰NÐ,Ð.]Ô^Ù™8¨×(?Ñ(?À8Ç;Á;Ò(NØ�N‰N˜=Ð*aÔbÙ™<Ø�N‰NØØMôð
 Ò?˜Ÿ™Ô*?Ñ?òIà×"Ñ"Ó$Ô(=×(FÑ(FÓ(HÑHð 	ñ ¡K±?Ø�N‰NØØ:ôð Ðr>   c                 óÂ   — d| j                   i} |j                  j                  dd|i|¤|¤Žj                  «       }|xs   |j                  j                  dd|i|¤|¤ŽS )Nri   Úname__iexactrQ   r=   )ri   rY   rZ   ÚfirstÚcreate)rM   r;   rQ   ÚextraÚ	ownershipÚexistings         r?   Ú_get_or_create_by_namez(TaxonomyModelForm._get_or_create_by_name    sƒ   € Ø˜TŸY™YÐ'ˆ	Ø'�5—=‘=×'Ñ'ñ 
Øð
Ø!*ð
Ø.3ñ
ç
‰%‹'ð 	ð ò 
Ð/˜5Ÿ=™=×/Ñ/ñ 
Øð
Ø"ð
Ø&+ñ
ð 	
r>   c                 óˆ  •— |st        d«      ‚| j                  j                  d«      }|s7| j                  | j                  | j                  d   j                  «       «      }| j                  j                  d«      }| j                  j                  dd«      j                  «       }|r| j                  | j                  ||¬«      }t        ‰| �!  d¬	«      }||_	        ||_
        |j                  «        |j                  j                  | j                  j                  d
g «      «       | j                  j                  dd«      j                  d«      D �ch c]"  }|j                  «       r|j                  «       ’Œ$ }}|D ]7  }|j                  j                  | j                  | j                  |«      «       Œ9 |S c c}w )Nz1TaxonomyModelForm must be saved with commit=True.rj   ro   rl   rp   r€   )rj   F)Úcommitrm   rq   ú,)Ú
ValueErrorrV   r}   r�   rt   rW   rw   rG   Úsaverj   rl   rm   ÚsetÚsplitÚaddrz   )	rM   r‘   rj   rl   rp   ÚrecordrQ   Únew_tag_namesrS   s	           €r?   r”   zTaxonomyModelForm.save©   s‘  ø€ áÜÐPÓQÐQà×$Ñ$×(Ñ(¨Ó4ˆÙØ×2Ñ2Ø×#Ñ# T×%6Ñ%6°~Ñ%F×%LÑ%LÓ%NóˆHð ×'Ñ'×+Ñ+¨MÓ:ˆØ×+Ñ+×/Ñ/Ð0AÀ2ÓF×LÑLÓNˆÙØ×5Ñ5Ø×&Ñ&¨À(ð 6ó ˆKô ‘‘ U�Ó+ˆØ"ˆŒØ(ˆÔØ�‰ŒØ�‰�‰˜×)Ñ)×-Ñ-¨f°bÓ9Ô:ð &*×%6Ñ%6×%:Ñ%:¸:ÀrÓ%J×%PÑ%PÐQTÓ%Uö
Ø!Ø�z‰zŒ|ð �J‰J�Lð
ˆð 
ð "ò 	OˆDØ�K‰K�O‰O˜D×7Ñ7¸¿¹ÈÓMÕNð	Oàˆùò
s   Å'F?)T)r8   r9   r:   r^   r   r_   ro   rp   rq   rt   rw   rz   rH   r�   r�   r   Úatomicr”   ra   rb   s   @r?   rd   rd   B   s—   ø„ ÙKà"�5—?‘?ØØØØKô	€Lð &�e—o‘oØØØØNô	€Oð ˆu�‰ØØØCô€Hð €NØÐØ€Iô%ôNò<
ð ×Ñôó ôr>   rd   c                 óŒ   — t        dd|ddt        j                  ddi¬«      idœ«      }t        | t        f||||t        d	œ«      S )
Nr@   r=   )r…   Ú
created_atri   ÚdeadlineÚtypeÚdatern   )r;   ÚexcludeÚwidgets)r@   rt   rw   rz   r9   )rž   r   Ú	DateInputrd   r8   )rQ   r;   rt   rw   rz   Úmetas         r?   Útaxonomy_formr¤   Ê   s\   € Ü�˜ØØ1Ø¤§¡°v¸vÐ6FÔ GÐHñó €Dô
 �Ô(Ð*ØØ(Ø.ØÜñ-ó ð r>   ÚArticleFormÚJournalFormÚNoteFormÚCentralPointFormÚStrategyFormÚDecisionFormÚGoalFormN)3Údjangor   Údjango.contrib.auth.formsr   Ú	django.dbr   Úmodelsr   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   Útaxonomyr$   r%   r&   r(   Ú	ModelFormrd   r¤   r¥   r¦   r§   r¨   r©   rª   r«   r=   r>   r?   ú<module>r²      sù   ðÝ Ý 6Ý !÷	÷ 	÷ 	÷ 	÷ 	÷ 	÷ 	õ 	÷ñ ô
+Ð'ô +ô\E˜Ÿ™ô EòPñ ˜M¨7°OÐEWÐYcÓd€Ù˜M¨7°OÐEWÐYcÓd€Ù˜ T¨<¸È'ÓR€Ù Ø˜Ð&:Ð<SÐUdóÐ ñ ˜^¨XÐ7GÐI\Ð^iÓj€Ù˜^¨XÐ7GÐI\Ð^iÓj€Ù˜ T¨<¸È'ÓR�r>   