
    (iB                     |    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 ddlmZmZ d	 Z G d
 de      Zy)    )unicode_literals)ValidationError)BaseCommandCommandError)gettext)VERSION   )config)ConstanceForm
get_valuesc                     t        t                     }|j                  |    }|j                  |j	                  |            }t        t        | |       y)zh
    Parses and sets a Constance value from a string
    :param key:
    :param value:
    :return:
    )initialN)r   r   fieldsclean	to_pythonsetattrr
   )keyvalueformfieldclean_values        5/opt/sopds/constance/management/commands/constance.py_set_constance_valuer      sA     .DKKE++eooe45KFC%    c                   0    e Zd Z ed      Zd Zd ZddZy)Commandz8Get/Set In-database config settings handled by Constancec                     |j                  d      }| j                  |d| d      }| j                  |d| d      }|j                  dd	d
       | j                  |d| d      }|j                  dd	d
       |j                  dddd       y )Ncommand)destlistz(list all Constance keys and their values)cmdhelpgetz get the value of a Constance keyr   zname of the key to getKEY)r"   metavarsetz set the value of a Constance keyr   zvalue to setVALUE+)r"   r%   nargs)add_subparsers_subparsers_add_parseradd_argument)selfparser
subparsersparser_list
parser_get
parser_sets         r   add_argumentszCommand.add_arguments"   s    **	*:
11*f$U1  A00USu0v
,DeT00USu0v
,DeTngUXYr   c                 d    t         dk\  rd|v r|j                  d        |j                  |fi |S )N)      r!   )r   pop
add_parser)r-   r/   namekwargss       r   r+   zCommand._subparsers_add_parser0   s4    f&JJu$z$$T4V44r   Nc                 @   |dk(  r<	 | j                   j                  dj                  t        t        |            d       y |dk(  r!	 t        |      dk(  r|d   }t        ||       y |d
k(  rNt               j                         D ]2  \  }}| j                   j                  dj                  ||      d       4 y y # t
        $ r}t        |dz         d }~ww xY w# t        $ r}t        |dz         d }~wt        $ r}t        d	j                  |            d }~ww xY w)Nr#   z{}
)endingz, is not defined in settings.CONSTANCE_CONFIGr&   r6   r   z, r    z{}	{})stdoutwriteformatgetattrr
   AttributeErrorr   lenr   KeyErrorr   joinr   items)	r-   r   r   r   argsoptionsekvs	            r   handlezCommand.handle7   s   eY!!$++gfc.B"CD!Q 	1u:?!!HE$S%0 "**, F1!!(//!Q"7!EF  " Y"3)W#WXXY  Y"3)W#WXX" 1"499Q<001s;   :B< C <	CCC	D$C22D>DD)NN)__name__
__module____qualname___r"   r3   r+   rL    r   r   r   r      s    GHDZ5Fr   r   N)
__future__r   django.core.exceptionsr   django.core.managementr   r   django.utils.translationr   rP   djangor    r
   adminr   r   r   r   rQ   r   r   <module>rY      s1    ( 2 < 1   .& .Fk .Fr   