
    P1i}                         d dl mZ d dlmZmZ d dlmZ d dlZd dl mZ d Zd Z	d Z
d d	lmZ ed
        Zd dlmZmZmZ d Zy)    render)datetime	timedelta)bzN)redirectc                 T    t        dt        j                         j                        S )Nzcalendar10k:year)year)r   r   nowr
   )requests    3/home/cursorai/projects/iching/calendar10k/views.pyindexr      s    &X\\^-@-@AA    c                     d}t        j                         j                  }|dz
  |cxk  r|dz   k  sn | j                  j                  rd}|S )NF   T)r   r   r
   useris_authenticated)r   r
   validyearnows       r   validateAuthYearr   
   sC    Elln!!GqyD%GAI%)F)FLr   c                 "    d|cxk  xr dk  S c S )N  X
   r   r
   s     r   validateYearr      s    44r   )login_requiredc                     t        |       S Nr   r   s     r   	loginViewr       s    '?r   )r   bz24lunar_calendarc           
         t        | |      st        | |      S t        | |      s,t        | ddt	        j
                         j                  d      S t        j                  |d      }d\  }}t        t        |            D ]  }d}||   j                         D ]M  \  }}t	        j                  |d   d	      t        d
      z   }	t        j                  |	j                  |	j                   |	j"                  |	j$                  |	j&                  |	j(                        }
|
||   |   d<   t        j*                  |
d   d         ||   |   d   d   d<   |	j-                  d      ||   |   d<   t	        j                  |d   d	      t        d
      z   }g }t	        |	j                  |	j                   |	j"                        }t	        |j                  |j                   |j"                        }d}||k  ri }t/        j0                  |      |d<   |j"                  |d<   |j                   |d<   |j2                  |d<   ||d<   |rdnd|d<   |r|
d   d   }|
d   d   }ndz   dz  }dz   dz  }d|id|id}t        j4                  |j                  |j                   |j"                  |      |d<   d}|j7                  |       |dz  }|dz  }|t        d      z   }||k  r|||   |   d<   P t9        ||      }|||   d <   t        j:                  t        j<                  	j                  |	j                               ||   d   d!<    ||d   d"<   t        j*                  |d   d   d   d#   d         |d   d   d   d#   d<   t        j>                  |d   d   d   d#   d         |d   d   d   d#   d$<   t        j:                  t        j@                  |            |d   d   d   d#   d!<   t        t        |            D ]F  }|d   d"   ||   d    kD  s|d   d"   ||   d    z
  }tC        d% t        |      D              ||   d&<   H |d'kD  r|dz
  nd}|d(k  r|dz   nd}||d)}|||d*}t        | d|      S )+Nzcalendar10k/year.htmlz!The request year is out of range.)errorcuryearT)groupByMonth)r   r   r   dz%Y-%m-%d %H:%M:%S   )hoursr   montheelementz%H:%M:%StimenextlunarmwidxFfirstdayr      )r4   r*   jc12)daysdatescountstarmaxr
   animalc              3       K   | ]  }d   y wr   r   ).0_s     r   	<genexpr>zyear_view.<locals>.<genexpr>W   s     'Dmms   remainr   r   )r.   prev)r
   cyclespaginate)"r   r    r   r   r   r   r
   r!   calc24CycleAdjustedYearrangelenitemsstrptimer   r   getCalendar10kGodEarthStemr*   r4   hourminutesecondgetEarthElementstrftimer"   convertLunarweekdaycalcJianChu12Godappendr;   getStarNamecalcMonthFlyingStargetEarthAnimalcalcYearFlyingStartuple)r   r
   rC   r2   mmaximdxkeyvaldatebzdater.   r8   curendr3   r'   demedaybzrA   prevyearnextyearrD   contexts                            r   	year_viewrh      s   GT*$'''4(g6Berzr~r~  sA  sF  sF  9G  H  	H))$TBFIC3v;q	)HC$$SX/BCiVWFXXD22499djj$((TXT]T]_c_j_jlplwlwxF#)F1IcN4 797I7I&QX/Z]J^7_F1IcN4 ))4%)]]:%>F1IcN6"$$S[2EFYZI[[DE499djj$((;C499djj$((;CE)+88='
###%%*T'
 s+B-Bq&BBq&BB!$b	S"I>//#))SWWeT&	QqqI1--3 )4 ',F1IcN7#M *N 3~ q	'%'^^B4J4J499VZV`V`4a%bq	'6"W  X F1Ie242D2DVAYwEWX\E]^dEefiEj2kF1IgtV$Y/131B1B6!9WCUVZC[\bCcdgCh1iF1IgtV$X./1~~b>S>STX>Y/ZF1IgtV$V, 3v;!9UfQi00AYu%q	'(::F"''DeFm'D"DF1Ih   tAv%HtAv%H (3H G '2G<<r   )django.shortcutsr   r   r   iching.utilsr   mathr   r   r   r   django.contrib.auth.decoratorsr   r    r!   r"   rh   r   r   r   <module>rm      sI    # (   %B  :  2 1J=r   