
    Bhi                     n    d dl Z d dlZd dl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  G d de      Zy)	    N)SECRET_KEY_INSECURE_PREFIX)CommandError)TemplateCommand)get_random_secret_key)__version__c                   t     e Zd ZdZdZ fdZ fdZd Zd Zd Z	ddZ
d	 Zed
        Z fdZ fdZ xZS )CommandzCreates a django CMS project directory structure for the given project name in the current directory or optionally in the given directory.z You must provide a project name.c                      t           |i | dj                  t        j                  d      d d        _         fd _         j                  j                   _	        y )N.   c                 @    dj                   j                  |       z   S )N
)style	SQL_FIELD)textselfs    W/home/dcms/DCMS/lib/python3.12/site-packages/cms/management/commands/startcmsproject.py<lambda>z"Command.__init__.<locals>.<lambda>   s    D4::+?+?+E$E     )
super__init__joincms_versionsplitmajor_minorHEADINGr   HTTP_SUCCESSCOMMAND)r   argskwargs	__class__s   `  r   r   zCommand.__init__   sU    $)&) 88K$5$5c$:2A$>? Fzz..r   c                     t         |   |       |j                  ddddd       |j                  dd	       |j                  d
d	       y )N	--noinputz
--no-inputstore_falseinteractivezTells django CMS to NOT prompt the user for input of any kind. Superusers created with --noinput will not be able to log in until they're given a valid password.)actiondesthelp
--usernamez3Specifies the login for the superuser to be created)r(   --emailz3Specifies the email for the superuser to be created)r   add_argumentsadd_argument)r   parserr!   s     r   r+   zCommand.add_arguments   sf    f% N 	 
	
 	F 	 	
 	I,abr   c                 "    d| j                    dS )Nz3https://github.com/django-cms/cms-template/archive/z.tar.gz)r   )r   s    r   get_default_templatezCommand.get_default_template2   s    DTEUEUDVV]^^r   c           	      v   | j                  d| d       t        j                  |       | j                  |       | j                  j                  | j                  d             | j                  dgd       | j                  j                  | j                  d             dg}|j                  d	      r1|j                  d
       |j                  |j                  d	             |j                  d      r1|j                  d       |j                  |j                  d             |d   sd
|vr@|j                  d
       |j                  t        j                  j                  dd             d|vr@|j                  d       |j                  t        j                  j                  dd             |j                  d       | j                  |       | j                  j                  | j                  d             | j                  ddgd       dt         d}dt        |      z  }| j                  j                  | j                  | d| d|              | j                  j                  d| j                  j                  d|z          d| j                  j                  d       d       y )Nzcd ""zRun migrationsmigrateT)capture_outputzCreate superusercreatesuperuserusernamer)   emailr*   r%   DJANGO_SUPERUSER_USERNAMEadminDJANGO_SUPERUSER_EMAILznone@nowhere.comr#   zCheck installationcmscheckzdjango CMS z installed successfully*r   z
Congratulations! You have successfully installed django CMS,
the lean enterprise content management powered by Django!

Now, to start the development server first go to your newly
created project and then call the runserver management command:
$ zcd z
$ zpython -m manage runserverz

Learn more at https://docs.django-cms.org/
Join the django CMS Discord Server at https://discord-main-channel.django-cms.org

Enjoy!
)write_commandoschdirinstall_requirementsstdoutwriter   run_management_commandgetappendenvironr   lenr   SUCCESS)r   projectoptionscommandmessage	separators         r   postprocesszCommand.postprocess5   sC   T'!,-
 	!!'* 	$,,'789##YK#E 	$,,'9:;$%;;z"NN<(NN7;;z23;;wNN9%NN7;;w/0}%7*|,rzz~~.I7ST'y)rzz~~.FHZ[\NN;'##G, 	$,,';<=##UG$4T#J  },CD#g,&	$,,)Bwir)'MNO ::ego&' (::234 5	
r   c           	      "   dD ]  }t         j                  j                  ||      }t         j                  j                  |      sD| j	                         s#t         j
                  j                  dd      dk(  r| j                  j                  | j                  d|              | j                  d| d       t        j                  t        j                  dd	d
d|gdd      }|j                  rZ| j                   j                  | j"                  j%                  |j                   j'                                      t)        d|        y | j                   j                  | j"                  j%                  d             t)        d       y )N)zrequirements.txtzrequirements.inDJANGOCMS_ALLOW_PIP_INSTALLFalseTruezInstall requirements in zpython -m pip install -r "r1   -mpipinstallz-rTFr3   r;   z"Failed to install requirements in zqTo automatically install requirements for your new django CMS project use this command in an virtual environment.zRequirements not installed)r>   pathr   isfilerunning_in_venvrF   rD   rA   rB   r   r=   
subprocessrunsys
executable
returncodestderrr   ERRORdecoder   )r   rI   req_filerequirementsresults        r   r@   zCommand.install_requirementsm   sG   ? 	EH77<<:Lww~~l+'')RZZ^^<Y[b-cgm-mKK%%dll5Ml^3\&]^&&)CL>QR'ST'^^ui|T'+5F (())$***:*:6==;O;O;Q*RS*-OP\~+^__KK%%

((R ''CDD+	Er   c                    | j                  ddj                  |      z          t        j                  t        j
                  ddg|z   |d      }|j                  r||rL| j                  j                  | j                  j                  |j                  j                                      t        t        j
                   ddj                  |       d      y )	Nzpython -m manage  rS   manageFrV   z -m manage z failed.)r=   r   rZ   r[   r\   r]   r^   r_   rB   r   r`   ra   r   )r   commandsr3   rd   s       r   rC   zCommand.run_management_command   s    .(1CCDx @8 K\jrwx!!$**"2"26==3G3G3I"JK#..!1SXXh=O<PPXYZZ r   c                 X    | j                   j                  | j                  |             y N)r_   rB   r   )r   rK   s     r   r=   zCommand.write_command   s    $,,w/0r   c                  D    t         j                  t         j                  k7  S rj   )r\   prefixbase_prefix r   r   rY   zCommand.running_in_venv   s    zzS__,,r   c                 H    |s| j                         }t        | 	  ||      S rj   )r/   r   handle_template)r   templatesubdirr!   s      r   rp   zCommand.handle_template   s&    002Hw&x88r   c                    |j                  d      }|j                  dd       }t        t               z   |d<   | j                  j	                  | j                  d             d| d|d   xs | j                          }|r	|d| d	z  }| j                  |       t        | $  d
||ft        | j                  d| |3t        j                  j                  t        j                         |      }n<t        j                  j!                  t        j                  j#                  |            }| j%                  ||       y )Nname	directory
secret_keyz!Clone template using django-adminzdjango-admin startproject "z" --template rq   z --directory "r1   rI   )r   cms_docs_version)popr   r   rA   rB   r   r/   r=   r   handler   r   r>   rW   r   getcwdabspath
expanduserrN   )r   rJ   rt   ru   rK   top_dirr!   s         r   ry   zCommand.handle   s"   {{6"KKT2	 :=R=T T$,,'JKL)$/@ATAsX\XqXqXs@tu 	 	{!44G7# 	tY	
4?RVRbRb	
fm	
 ggll299;5Gggoobgg&8&8&CDG'*r   )F)__name__
__module____qualname__r(   missing_args_messager   r+   r/   rN   r@   rC   r=   staticmethodrY   rp   ry   __classcell__)r!   s   @r   r	   r	      sa    	N 	 >/c&_6
pE0[1 - -9
+ +r   r	   )r>   rZ   r\    django.core.checks.security.baser   django.core.managementr    django.core.management.templatesr   django.core.management.utilsr   r:   r   r   r	   rn   r   r   <module>r      s+    	  
 G / < > *c+o c+r   