ó
DnQTc           @   s1  d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l Z d  d l m Z d  d l m Z m	 Z	 m
 Z
 d  d l m Z m Z d  d l m Z d  d l m Z m Z d d d d d d d d	 „ Z d d d d d e d
 „ Z d d d e d „ Z d e j f d „  ƒ  YZ d „  Z e e	 j j d i  ƒ d <d S(   iÿÿÿÿN(   t   HTTPNotFound(   t
   conversiont   translatorst	   structure(   t   gettingt   auth(   t   url(   t
   restrictedt   utilt    u   productc   
      C   s  | t  k r d } d } n d } d |  | | f }	 | d  k	 rW |	 d t | ƒ 7}	 n  | d  k	 r† | j d k r† |	 d | j 7}	 n  | d  k	 r¦ |	 d | j 7}	 n  | d  k	 rÃ |	 d	 | 7}	 n  | d  k	 rà |	 d
 | 7}	 n  |	 d 7}	 |	 d | | f 7}	 |	 d 7}	 |	 S(   Ns   o,ownrs
   owner=ownrt   os/   <<foreach %s %s (o.name != '') hasattr(o, '%s')s    (o.color == %s)u   Objects    is_a(o, %s)s    (o.group == %s)s    (o.owned == %s)s    orderBy=%ss   >>
s     <<cache o.%s %s/>>
s   <</foreach>>

(   t   Truet   Nonet   reprt   ename(
   t	   list_exprt   colort   ancestort   groupt   ownedt   lett   propnamet   order_byt   varnesst   markup(    (    sX   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/gameki/printing.pyt   foreach_markup   s&    	

c         C   s  d } | d k ra | d k	 ra t j | ƒ j d k rX |  j | ƒ sI d S| } d } qg | } n d } d |  j }	 | s” |	 d |  j | f 7}	 n  |  j | ƒ rð | d k s¾ | j |  ƒ rð | d k rð | d k rð |	 d |  j | f 7}	 n  |  j }
 d } | d k	 r1|	 d	 |  j | f 7}	 d
 }
 d } n  |	 t d |
 | |  j f | | | d t d t d | ƒ7}	 |	 t d |
 | f | | | d t	 d | ƒ7}	 | d k rN| d k	 sé| d k	 rÑ| j
 ƒ  d k sé| d k rN| d k rN|	 d |  j 7}	 | d k	 r&|	 d |  j t | ƒ f 7}	 n  |	 d 7}	 |	 d |  j 7}	 |	 d 7}	 n  | d k rÖ|	 d 7}	 |	 t d |  j | | | d t d d |  j d | ƒ7}	 |	 t d |  j | | | d t	 d | ƒ7}	 |	 d 7}	 n  | d k	 rï|	 d 7}	 n  | s|	 d 7}	 n  |	 d 7}	 |	 S(   s(   display should be a baz_eval expression.t   fullt
   referencesR	   u   products   <<let current=%s>>
s   <<withheaders %s.name %s>>
s   <<cache %s.%s/>>

s   exclude!u   <<foreach %s.%s e>>
u   et   excludes2   recursive_get(%s, 'stuff', '%s', %s, folded=False)R   R   R   s.   recursive_get(%s, 'stuff', '%s', folded=False)s   <<if hasattr(%s, 'badge')s    and %s.badgecolor == %ss   >>
s     <<cache %s.badge />>
s	   <</if>>

t   fullqs   <<secret>>
s2   recursive_get(%s, 'stuff', 'invert', folded=False)s   owner=%ss   <</secret>>
s   <</foreach>>
s   <</withheaders>>
s	   <</let>>
N(   R   R   t   get_propt   flavort   has_propvalR   t   is_ancestor_ofR   R   t   Falset
   get_parentR   (   t   uR   R   R   t   modet   displayt
   no_headerst   loopoverR   R   t
   rg_elementt   exclude_base(    (    sX   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/gameki/printing.pyt   markup_for_user#   st    				

 





s   .pdfc         C   s	  | d  k s | d k r! d } n  t j d ƒ } | d j ƒ  rÐ t j | ƒ } | j | ƒ rz | } d  } d | j } nM d  } | j ƒ  d  k r› d } n, | j d ƒ rº d | j } n d	 | j } d  }	 n" | }	 d  } d  } d
 |	 j ƒ  } | d  k	 rt	 j
 ƒ  st	 j ƒ  ‚ qn  | d k r4t j } n  |  d k r©t	 j
 ƒ  s[t	 j ƒ  ‚ n  | d  k rpd } n  t | d  k	 rˆ| j n d |	 d | d | d d ƒ}
 nE|  d k rŠt	 j
 ƒ  sÐt	 j ƒ  ‚ n  t j d ƒ j ƒ  } | j d d „  ƒ t j d ƒ j ƒ  } | j d d „  ƒ | | 7} d }
 x» | D]L } t j | d ƒ r7|
 t | |	 | | d | pmd d | d | ƒ7}
 q7q7Wnd t	 j
 ƒ  r¸|  t	 j ƒ  k r¸t	 j ƒ  ‚ n  t j |  ƒ } t | |	 | | d | d | d | ƒ}
 | d  k rt d |  | f ƒ } n t d |  | | f ƒ } i d d  6| d! 6} | d" k r[|
 } d# } n† yH d } | rw| d$ 7} n  t j |
 | | d% d& |  | | | f ƒ} Wn" t j k
 rÇ} t | ƒ ‚ n Xt j | | ƒ \ } } t | t ƒ sÿt | ƒ } n  | | f S('   Nt   allu   Objectu   PacketGroupi    s   %s.names   "Packet"R   s   %s.group.names   %s.types   "%s"t   defaultt
   compendiumu   productt   OwnerR   R   u   namet
   productionu	   Charactert   keyc         S   s   t  j |  d ƒ S(   Nu   name(   R   t   render(   R$   (    (    sX   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/gameki/printing.pyt   <lambda>ž   s    u   Placec         S   s   t  j |  d ƒ S(   Nu   name(   R   R2   (   t   p(    (    sX   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/gameki/printing.pyR3       s    R	   R%   R   R&   R'   s   /print/%s/%s.pdfs   /print/%s/%s/%s.pdfu   Gameki Printingt   titlet   pdfurls   .raws
   text/plaint   ht   cacheable_ass   /print/%s/%s/%s/%s(    R   R   t   get_elementt   isupperR!   R   R#   R   t
   capitalizeR   t   is_omniscientt   omniscient_onlyR   t   DEFAULT_DEFAULTR   t   get_descendantst   sortR   R2   R+   t   logged_in_usernamet   not_youR   t   get_userR   t   convert_markupt   ConversionFailedExceptionR    R   t
   guess_typet
   isinstancet   str(   t   usert   nameR%   t   typeR'   t   packet_groupR   R   R&   R   R   t   userst   placesR$   t   ownerR6   t   global_metadatat   rett   ctypet   flagst   et   enc(    (    sX   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/gameki/printing.pyt   print_stuffq   s˜    				
	

	t   Printerc        	   B   s8   e  Z e j d  d ƒ d d d d d d e d „ ƒ Z RS(   t   templates   mako:gameki.templates.printingc   
      C   sD  | d  k r? t j j j d ƒ s; t j t j j d ƒ n  i  S| d  k	 rN n~ | d  k rr t j | ƒ \ } } nZ | d  k r· t j | ƒ \ } } | j	 d d ƒ } t
 | d ƒ } n t j | ƒ \ } } | sÛ d  } n  | sê d  } n  t | | | | d | ƒ\ } }	 |	 r@y |	 d t j j d <Wq@t k
 r<q@Xn  | S(   Nt   /t   _t    s   utf-8R'   s   ; charset=utf-8s   Content-type(   R   t   pylonst   requestR   t   endswitht   tgt   redirectR   t   filename_splitt   replacet   unicodeRV   t   responset   headerst	   TypeError(
   t   selfRI   RJ   R%   RK   t   print_ast
   print_modeR'   RQ   RR   (    (    sX   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/gameki/printing.pyt   _defaultÒ   s0    		!N(   t   __name__t
   __module__R_   t   exposeR   R"   Rj   (    (    (    sX   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/gameki/printing.pyRW   Ð   s   c   	      C   s†  |  j  ƒ  d d } |  j  ƒ  d d } |  j  ƒ  d d } d d | d | g } | d k r| | j d	 ƒ | j d
 ƒ nd | d k r¥ | j d	 ƒ | j d ƒ n; | d k rÎ | j d	 ƒ | j d ƒ n t sà t | ƒ ‚ |  j d  k r| j |  j ƒ  ƒ d } n |  j ƒ  } t j	 | d t j
 d t j
 d t j
 ƒ} | j | ƒ \ } } |  j d | j | | d ƒ |  j j ƒ  d  S(   Nt   filterst   Pt   Ut   Zt   lprs   -P%ss   -U%st   duplexs   -os   sides=two-sided-long-edget   frontss   page-set=oddt   backss   page-set=evenR	   t   stdint   stdoutt   stderrs   lpr returned: %s
(   t   metadatat   appendR"   t   AssertionErrort   dataR   t   asPatht   asDatat
   subprocesst   Popent   PIPEt   communicatet   setDatat
   returncodet   depst   makeUncacheable(	   t   imt   printert   usernameR%   t   command_linet   indataR4   t   outt   err(    (    sX   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/gameki/printing.pyRr   ó   s0    		Rr   (   t   ost   sysR_   R\   R   t	   webob.excR    t   bazbaseR   R   R   t   bazkiR   R   t   bazki.translatorsR   t   gamekiR   R   R   R   R"   R+   RV   t   TGControllerRW   Rr   t   TRANSLATORSt
   setdefault(    (    (    sX   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/gameki/printing.pyt   <module>   s   		M_#	 