o
    wâh	                     @   sx   d dl 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 d dlmZ G dd deZdS )    N)BaseCommand)settings)CourseCourseEligibility	CourseFee	FeeDetail	HostelFeeSemesterSubjectCareerProspect	RecruiterCourseHighlightTestimonialWhyJoin)Collegec                   @   s    e Zd ZdZdd Zdd ZdS )CommandzHInsert or update course data using the API. Default: inserts MCA course.c                 C   s&   |j dtddd |j dtdd d S )Nz--slugmcazCourse slug to insert or update)typedefaulthelpz--data_filez6Path to JSON file with course data (overrides default))r   r   )add_argumentstr)selfparser r   >/var/www/apihucms/courses/management/commands/insert_course.pyadd_arguments   s   zCommand.add_argumentsc              
   O   s  |d }| d}|r&t|d}t|}W d    n1 s w   Y  nt}z,ztjj |d}| j| j	
d| d d}W n tjy]   | j| j	d| d	 d
}Y nw ztjj | ddd}	W n tjy   tj }	|	s| j| j	d Y W d S Y nw |r|d |_|d |_|d |_|d |_|d |_|  ntjj|d |d |d |d |d |d d}d|v rtjj|d  tjj||d d |d d |d d d d|v r.tjj|d  tjj||d  dd|d  ddd}
|d  d g D ]}tjj|
|d! |d" |d# |d$ |d% |d& d' qd(|v r]tjj|d  tjj||d( d) |d(  d*d|d(  d+d|d(  d,dd- d.|v rtjj|d  |d. D ]-}tjj||d/ |d0 d1}| d2g D ]}tjj||d3 |d/ |d4 |d5 d6 qqod7|v rtjj|d  |d7 D ]}tjj||d | d8d| d5dd9 qd:|v rt jj|d  |d: D ]}t jj||d |d5 | d;dd< qd=|v rt!jj|d  |d= D ]}t!jj||d/ |d> |d? |d@ dA qdB|v r;t"jj|d  |dB D ]}t"jj||d |d5 dC q*|r@dDndE}| j| j	dF| dG| dH W d S  t#y } z&| j| j	dIt$|  dJd l%}| j| j	|&  W Y d }~d S d }~ww )KNslug	data_filer)r   zCourse with slug 'z' already exists. Updating...TzCreating new course with slug 'z'...F
college_id   )idz<No college found in database. Please create a college first.titleshort_descriptionoverviewdurationcategory)r#   r   r$   r%   r&   r'   eligibility)courseacademic_qualificationminimum_marksentrance_exam)r)   r*   r+   r,   feesdomestic international)r)   r.   r0   detailsfee_head
first_yearsecond_year
third_yearfourth_yearis_one_time)
course_feer2   r3   r4   r5   r6   r7   
hostel_feefee_per_yearac_room_additionalsecurity_depositnotes)r)   r:   r;   r<   r=   	semestersnamenumber)r)   r?   r@   subjectscodecreditsdescription)semesterrB   r?   rC   rD   career_prospectssalary_range)r)   r#   rG   rD   
highlightsicon)r)   r#   rD   rI   testimonialspositioncompanycontent)r)   r?   rK   rL   rM   why_join)r)   r#   rD   updatedcreatedzCourse 'z' z successfully in database.z Failed to insert/update course: r   )'getopenjsonloadMCA_COURSE_DATAr   objectsstdoutwritestyleWARNINGDoesNotExistSUCCESSr   firstERRORr#   r$   r%   r&   r'   savecreater   filterdeleter   r   r   r	   r
   r   r   r   r   	Exceptionr   	traceback
format_exc)r   argsoptionsr   r   fcourse_datar)   update_existingcolleger8   detailsem_datarE   subject_dataprospect	highlighttestimonialwhyactionerd   r   r   r   handle   s  
















	











	
(&zCommand.handleN)__name__
__module____qualname__r   r   ru   r   r   r   r   r      s    r   )rS   django.core.management.baser   django.confr   courses.modelsr   r   r   r   r   r	   r
   r   r   r   r   r   colleges.modelsr   r   r   r   r   r   <module>   s    8