a
    WjÂ!  ã                   @   sš   d dl mZ d dlmZ G dd„ dejƒZG dd„ dejƒZG dd„ dejƒZG d	d
„ d
ejƒZG dd„ dejƒZ	G dd„ dejƒZ
G dd„ dejƒZdS )é    )Úmodels)ÚTeacherc                   @   sº   e Zd ZdZdZejddd�Zejdd�Z	ej
dd�Zejd	ed
dd�Zejd	eddd�Zejd	ddd�Zejdddd�Zejeejddddd�Zejddd�Zdd„ ZG dd„ dƒZdS )ÚGroup))Ú	full_timeu
   Очная)Z	part_timeu   Заочная)Zeveningu   Вечерняя))Úbudgetu   Бюджет)Zcontractu   Платноеé2   u   Название группы©Ú
max_lengthÚverbose_nameu   Учебный год©r
   u   Курсé   r   u   Форма обучения©r	   ÚchoicesÚdefaultr
   r   u   Форма оплатыTu!   Код специальности©r	   Úblankr
   éÿ   u   СпециальностьZcurated_groupsu   Куратор)Ú	on_deleteÚnullr   Úrelated_namer
   u   Дата создания©Úauto_now_addr
   c                 C   s   | j › d| j› d�S )Nú (ú))ÚnameÚacademic_year©Úself© r   ú D:\diplom_project\core\models.pyÚ__str__   s    zGroup.__str__c                   @   s   e Zd ZdZdZdS )z
Group.Metaõ   Группаu   ГруппыN©Ú__name__Ú
__module__Ú__qualname__r
   Úverbose_name_pluralr   r   r   r   ÚMeta   s   r'   N)r#   r$   r%   Z
STUDY_FORMZBUDGET_FORMr   Ú	CharFieldr   ÚIntegerFieldr   ÚSmallIntegerFieldZ
course_numZ
study_formZbudget_formZspeciality_codeZspeciality_nameÚ
ForeignKeyr   ÚSET_NULLZcuratorÚDateTimeFieldÚ
created_atr    r'   r   r   r   r   r      s   ÿr   c                   @   sP   e Zd Zejdddd�Zejddd�Zejdddd	�Zd
d„ ZG dd„ dƒZ	dS )ÚSubjectr   Tu   Код предмета)r	   Úuniquer
   r   õ   Названиеr   u   Краткое названиеr   c                 C   s   | j › d| j› �S )Nú - )Úcoder   r   r   r   r   r    '   s    zSubject.__str__c                   @   s   e Zd ZdZdZdS )zSubject.Metaõ   Предметu   ПредметыNr"   r   r   r   r   r'   *   s   r'   N)
r#   r$   r%   r   r(   r3   r   Z
short_namer    r'   r   r   r   r   r/   "   s
   r/   c                   @   sv   e Zd ZdZdZejddd�Zejdddd	�Zejded
dd�Z	ej
ddd�Zejddd�Zdd„ ZG dd„ dƒZdS )ÚRoomu!   Аудитория/кабинет))Ú	classroomõ   Аудитория)Úlabu   Лаборатория)Zcomputeru#   Компьютерный класс)Zsportu   Спортивный зал)Zdistanceõ+   Дистанционное обучениеr   u   Номер аудиторииr   éd   Tr1   r   r6   u   Типr   r   u   Вместимость©r   r
   Fr9   c                 C   s   | j r
dS | j› S )Nu   🌐 Дистант)Úis_distanceÚnumberr   r   r   r   r    >   s    zRoom.__str__c                   @   s   e Zd ZdZdZdS )z	Room.Metar7   u   АудиторииNr"   r   r   r   r   r'   C   s   r'   N)r#   r$   r%   Ú__doc__Z
ROOM_TYPESr   r(   r=   r   Z	room_typer)   ÚcapacityÚBooleanFieldr<   r    r'   r   r   r   r   r5   /   s   r5   c                       sÔ   e Zd Zejeejddd�Zejeejdd�Z	eje
ejdd�Zejeejdddd	�Zejd
d�Zejdddd�Zejdd�Zejdd�Zejdddd�Zejdddd�Z‡ fdd„Zdd„ ZG dd„ dƒZ‡  ZS )ÚScheduleItemZschedule_itemsr!   ©r   r   r
   r4   ©r   r
   u   ПреподавательTr7   )r   r   r   r
   u   Дата занятияr   u   День недели)r
   r   r   u   Время началаu   Время окончанияr   u   Тема занятияr   )r   r   r   c                    sZ   | j rD| jsDt| j tƒr8ddlm} | | j d¡  ¡ | _ | j  ¡ | _tƒ j|i |¤Ž d S )Nr   )Údatetimez%Y-%m-%d)	ÚdateÚweekdayÚ
isinstanceÚstrrD   ÚstrptimeÚ
isoweekdayÚsuperÚsave)r   ÚargsÚkwargsrD   ©Ú	__class__r   r   rL   T   s    zScheduleItem.savec                 C   s&   | j j› d| jj› d| j› d| j› �S )Nr2   ú )Úgroupr   ÚsubjectrE   Ú
start_timer   r   r   r   r    ^   s    zScheduleItem.__str__c                   @   s   e Zd ZdZdZddgZdS )zScheduleItem.Metaõ   Занятиеu   ЗанятияrE   rT   N)r#   r$   r%   r
   r&   Úorderingr   r   r   r   r'   a   s   r'   )r#   r$   r%   r   r+   r   ÚCASCADErR   r/   rS   r   Úteacherr5   r,   ÚroomÚ	DateFieldrE   r)   rF   Ú	TimeFieldrT   Úend_timer(   Ztopicr-   r.   rL   r    r'   Ú__classcell__r   r   rO   r   rA   H   s   
rA   c                   @   sn   e Zd ZdZejdejddd�Zejeejddd�Z	ej
dedd	d
�Zejddd�ZG dd„ dƒZdd„ ZdS )Ú
Attendance))Úpresentu   Присутствовал)Zabsentu7   Отсутствовал (неуважительная))Zlateu   Опоздал)Zexcusedu3   Отсутствовал (уважительная)úusers.StudentZattendancesõ   СтудентrB   rU   r   r_   u   Статусr   r   u   Минуты опозданияr;   c                   @   s   e Zd ZddgZdZdZdS )zAttendance.MetaÚstudentÚschedule_itemu   ПосещаемостьN)r#   r$   r%   Úunique_togetherr
   r&   r   r   r   r   r'   u   s   r'   c                 C   s"   | j j› d| jjj› d|  ¡ › �S ©Nr2   z: )rb   Ú	last_namerc   rS   r   Zget_status_displayr   r   r   r   r    z   s    zAttendance.__str__N)r#   r$   r%   ZSTATUS_CHOICESr   r+   rW   rb   rA   rc   r(   Ústatusr)   Zlate_minutesr'   r    r   r   r   r   r^   g   s   ÿÿr^   c                   @   s˜   e Zd ZdZejdejddd�Zejeejdd�Z	ej
ded	d
�Zejddd�Zejdddd�Zejddd�Zejdddd�Zdd„ ZG dd„ dƒZdS )ÚAcademicDebt))Zexamu   Экзамен)Z
courseworku   Курсовая работа)r8   u%   Лабораторная работа)Útestu
   Зачётr`   Zdebtsra   rB   r4   rC   r   u!   Тип задолженности©r	   r   r
   Tu#   Дата возникновенияr   u   Срок ликвидации)r   r   r
   Fu   Ликвидированаr;   u   Дата ликвидацииc                 C   s    | j j› d| jj› d|  ¡ › �S re   )rb   rf   rS   r   Zget_debt_type_displayr   r   r   r   r    �   s    zAcademicDebt.__str__c                   @   s   e Zd ZdZdZdS )zAcademicDebt.Metau5   Академическая задолженностьu5   Академические задолженностиNr"   r   r   r   r   r'   �   s   r'   N)r#   r$   r%   Z
DEBT_TYPESr   r+   rW   rb   r/   rS   r(   Z	debt_typerZ   Zassigned_dateZdue_dater@   Zis_resolvedZresolved_dater    r'   r   r   r   r   rh   ~   s   rh   c                   @   sx   e Zd ZdZdZejdejddd�Zej	ddd	�Z
ej	d
edd�Zej	d
edd�Zejdd�Zdd„ ZG dd„ dƒZdS )ÚOlympiad))Zcollegeu   Колледж)Zcityu   Городской)Zregionalu   Региональный)Znationalu   Всероссийский)Úinternationalu   Международный))Zparticipantu   Участник)Zprizeu   Призёр)Úwinneru   Победительr`   Z	olympiadsra   rB   r   r1   r   r   u   Уровеньrj   u   Результатu   Годr   c                 C   s   | j j› d| j› d| j› d�S )Nr2   r   r   )rb   rf   r   Úyearr   r   r   r   r    ©   s    zOlympiad.__str__c                   @   s   e Zd ZdZdZdS )zOlympiad.Metau   Олимпиадаu   ОлимпиадыNr"   r   r   r   r   r'   ¬   s   r'   N)r#   r$   r%   ZLEVEL_CHOICESZRESULT_CHOICESr   r+   rW   rb   r(   r   ÚlevelÚresultr)   rn   r    r'   r   r   r   r   rk   •   s   ÿrk   N)Ú	django.dbr   Zusers.modelsr   ÚModelr   r/   r5   rA   r^   rh   rk   r   r   r   r   Ú<module>   s   