&ryk0?NF$YkuO>TZlX-=vg$cADd
GW&i+vxF44Q
literal 0
HcmV?d00001
diff --git a/trunk/yolanda/config/environment.py b/trunk/yolanda/config/environment.py
new file mode 100644
index 0000000..efd35df
--- /dev/null
+++ b/trunk/yolanda/config/environment.py
@@ -0,0 +1,33 @@
+"""Pylons environment configuration"""
+import os
+
+from pylons import config
+
+import yolanda.lib.app_globals as app_globals
+import yolanda.lib.helpers
+from yolanda.config.routing import make_map
+
+def load_environment(global_conf, app_conf):
+ """Configure the Pylons environment via the ``pylons.config``
+ object
+ """
+ # Pylons paths
+ root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+ paths = dict(root=root,
+ controllers=os.path.join(root, 'controllers'),
+ static_files=os.path.join(root, 'public'),
+ templates=[os.path.join(root, 'templates')])
+
+ # Initialize config with the basic options
+ config.init_app(global_conf, app_conf, package='yolanda',
+ template_engine='mako', paths=paths)
+
+ config['routes.map'] = make_map()
+ config['pylons.g'] = app_globals.Globals()
+ config['pylons.h'] = yolanda.lib.helpers
+
+ # Customize templating options via this variable
+ tmpl_options = config['buffet.template_options']
+
+ # CONFIGURATION OPTIONS HERE (note: all config options will override
+ # any Pylons config options)
diff --git a/trunk/yolanda/config/environment.pyc b/trunk/yolanda/config/environment.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..4b88d7fa43ada384ecc5c3cb4d102745426d292d
GIT binary patch
literal 1319
zcmb_bOK;Oa5FXokw0X1&v)Q%0n@W|^QxSiN
zKf~|f55PBTr-a85$Ge%wx3e?fjK6;Gck(x1-epujZT!E&vY)W!L{sbml!m)2mOlYV{sQ;HyxT5ocj+{%<afz7JxC6dT@`!dsJJ1Gd
z+LVKoW6C?Ui-3#*cMK@w@-AJt4$1Cb??La8?2|n4{yucTPU!hvgYr}GH{c52bE!31
zV(3<4_zyO3Wa?eBS>dT3R}9W(ogp4GzZRMEA_yTWjd6}C1j?00DN$Oag3BD*ktGYM
zg!PRmwsR#j)PNGirckMagD0p+vvs-@UcNOd)p_bp4^WBFOR0sw4&5_go)5W|wH-*M
z*&@;yEw$X=I_c%1va-+MnQs>h;l}&R6I1ZK*sGDhjK{%Pe+kF-+2pd+>88poom+3`
zI}%@3l6Z8EqP%czq>kYw#~7)lOVXl<{UkC&P?DuG^Hf!Jzpdn$(JsQKwK`@9$JOI9wB*{&dB(XQ}
z=UBC;qKTVQXEH|Z;{$?X4jw<@FpvL0)$CNXF>D{AN`K7rAobGo9-qVii;Dljho7s9
Xjmfu4Tyk$M*VYPp;UIhjE(YOGHaj?!
literal 0
HcmV?d00001
diff --git a/trunk/yolanda/config/middleware.py b/trunk/yolanda/config/middleware.py
new file mode 100644
index 0000000..e340ab1
--- /dev/null
+++ b/trunk/yolanda/config/middleware.py
@@ -0,0 +1,57 @@
+"""Pylons middleware initialization"""
+from paste.cascade import Cascade
+from paste.registry import RegistryManager
+from paste.urlparser import StaticURLParser
+from paste.deploy.converters import asbool
+
+from pylons import config
+from pylons.error import error_template
+from pylons.middleware import error_mapper, ErrorDocuments, ErrorHandler, \
+ StaticJavascripts
+from pylons.wsgiapp import PylonsApp
+
+from yolanda.config.environment import load_environment
+
+def make_app(global_conf, full_stack=True, **app_conf):
+ """Create a Pylons WSGI application and return it
+
+ ``global_conf``
+ The inherited configuration for this application. Normally from
+ the [DEFAULT] section of the Paste ini file.
+
+ ``full_stack``
+ Whether or not this application provides a full WSGI stack (by
+ default, meaning it handles its own exceptions and errors).
+ Disable full_stack when this application is "managed" by
+ another WSGI middleware.
+
+ ``app_conf``
+ The application's local configuration. Normally specified in the
+ [app:] section of the Paste ini file (where
+ defaults to main).
+ """
+ # Configure the Pylons environment
+ load_environment(global_conf, app_conf)
+
+ # The Pylons WSGI app
+ app = PylonsApp()
+
+ # CUSTOM MIDDLEWARE HERE (filtered by error handling middlewares)
+
+ if asbool(full_stack):
+ # Handle Python exceptions
+ app = ErrorHandler(app, global_conf, error_template=error_template,
+ **config['pylons.errorware'])
+
+ # Display error documents for 401, 403, 404 status codes (and
+ # 500 when debug is disabled)
+ app = ErrorDocuments(app, global_conf, mapper=error_mapper, **app_conf)
+
+ # Establish the Registry for this application
+ app = RegistryManager(app)
+
+ # Static files
+ javascripts_app = StaticJavascripts()
+ static_app = StaticURLParser(config['pylons.paths']['static_files'])
+ app = Cascade([static_app, javascripts_app, app])
+ return app
diff --git a/trunk/yolanda/config/middleware.pyc b/trunk/yolanda/config/middleware.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..dbc07fd12b9441457362cce46d08b8ded9a1fd35
GIT binary patch
literal 2075
zcmb_dUvC>l5TEnE*iM`{BxwoaVU-t*gzQ&9RYldb6ev}6Nmc2p%Gunl?dA4vPrK^`
zqx7kWH$DQNf)_p)UjSxy9owi#ym0odcV=g2e>=aK@$Y~3y4llTo~5vSw(<8XeC;1N
zWB>_{5o9&UBTzL+Y7miJhrAA|0ZAjs4al3IT9CAY+=P4!R2!0ZkXw*;$ro;_5g2_@k$(8(xJE=?g7e0dsE!`FlkGV~GCW2xQ
z6|tB~>&)VNUh=6h>xFZN`_q^4^D}Pj-9ig@aC@b-3Wg-7x}3;qkatlQ#%MEkqNo&i
zV$eX9+ga%gURA<4GJHaYr#hV%qIA~Vc-1pr;$4i}N1K4+TYinWjjWsv=X7u>-272h
z1yvtaO7mCxC
z8WSm(mtIHuiy7s`Oc?1z#sXt=6WmO+VQwbvrtcwpp-sV+TCj=H#mbLEKd(=pJbm=?
z`NbP%MM^2g^aLFUcE&B@#q?tnsl@OO(PXaF*gBr(8-QNT1a2`5&n~rl?|fDneJwMA
zpcw6E{_@@l8(b|`crr2JbLBo`h2W(urx*w}^XX%8YMH(%nfNgk72!l@7%`uo_S50Y
z$EmdZN(p~Xz{zfAqI@3{hUld5Ws;q+4GX=o
z4H9f6QaO>xog`pl1^zX9`SL-@3-Rzj_+SIP6}E?9ymGLNpk+?8g3EFln7B!4NHtaY
z1~c?wqyB>F4-l%@Qduw8EAD2YhLI&~9AnA>J0OdgT5jB>p-w}a2J#$Jk6!>+UpGFGk^95uHe)_r4)27ccX9*P6B06*9-
za5kFhLX1kO?8usQw9pFEg^!$>m-$Kxr8C-Kxmx)13!V!)gO0WL$n!z3-f8q|dr`0P
zaeb%Wi4LQq=*8eeT=K1WJkE4F9y@B~6_w5~4b9nK+;_;JHp>?6J2;KIyBe29}Z5&r`lmH<8|bT(JwA!U@MBU({Ed}{Q2
IQtRXAZ?duw)&Kwi
literal 0
HcmV?d00001
diff --git a/trunk/yolanda/config/routing.py b/trunk/yolanda/config/routing.py
new file mode 100644
index 0000000..34d164b
--- /dev/null
+++ b/trunk/yolanda/config/routing.py
@@ -0,0 +1,46 @@
+"""Routes configuration
+
+The more specific and detailed routes should be defined first so they
+may take precedent over the more generic routes. For more information
+refer to the routes manual at http://routes.groovie.org/docs/
+"""
+from pylons import config
+from routes import Mapper
+
+def make_map():
+ """Create, configure and return the routes Mapper"""
+ map = Mapper(directory=config['pylons.paths']['controllers'],
+ always_scan=config['debug'])
+
+ # The ErrorController route (handles 404/500 error pages); it should
+ # likely stay at the top, ensuring it can always be resolved
+ map.connect('error/:action/:id', controller='error')
+
+ # CUSTOM ROUTES HERE
+
+ # front page (search form and search errors)
+ map.connect('', controller='index', action='index')
+
+ # search results
+ map.connect('search_results', 'results', controller='search', action='results')
+
+ # videos
+ def video_expand(kargs):
+ # only alter kargs if a video keyword arg is present
+ if 'video' not in kargs:
+ return kargs
+
+ video = kargs.pop('video')
+ kargs['id'] = video['id']
+ kargs['title'] = video['title']
+
+ return kargs
+
+ map.connect('video_page', 'video/:id/:title', controller='video', _filter=video_expand)
+ # map.connect('video_file', 'video/:id.ogv', controller='video', action='file' _filter=video_expand)
+
+ # everything else
+ map.connect(':controller/:action/:id')
+ # map.connect('*url', controller='template', action='view')
+
+ return map
diff --git a/trunk/yolanda/config/routing.pyc b/trunk/yolanda/config/routing.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..5b4531a3cc92687d49670733af17c5d2d463d651
GIT binary patch
literal 1432
zcmb_cy>1gh5S}~RiR0kJ`9WYQ#g#6QuRx-(B7_7&G^B8-(pa0@vAy`bd)nO#v6NJy
z^r-Cm>T;
zBv7VskwU_D0~QS^n{d%2y9u8uum!RO=YuUy{y}PNYL6}}jGn4lZG~4xcRC;Dm@SRP
z%vD&ZsVXv|WhT)JRieynOmcHmmomFV@=TQ`$5dJ8GiNeC$5m%3R+$$I%qoioO4L3x
zS7_N8tItrQrQ)&PFneokbSOPFb{U(oIOUvBbMxk<(6uNt;j_8-)hN%`6=v3$D}_U2
zXSpUrik=Y#!TR2ABQYfA2IlGh~eD=8m9^#RvDVc91L*=j-m4$@nI
z8vvDp+yc1`vJH1hlB}Gl#g4UIfsTy##^TA_objTfB6ds@5lZb&Wi@vrxfW77`4(oR)MJl4i8@qCk$f{PQ
z(Qa4?KX-nYE(j)XO<5w*$+jpziItnULTKOObiAx*?to5ct+Dw?6udb3NJ-!MD?fyX
zAcB)HKhr$-~iA7hJ-g#zXa}LWI+yxWKL^VjxN!%M!wCV)N$89j}
z2#t;qso)~K7}`i9#nD%C$`%pIR)Z`?vq^={LVH(AqVfC|nuh!J%9j{-hTmJ6YQWy$
zTL?RIV;*2Y5|w*Fr+jXfm}^zK+}R>unUX#sk$YR~#l02RF>J5WvthOJOh;&7g4Y#g
zoRA$jg0!2o)BR*G*-Hb)F{%q8cC3^ZyLm4iy(Tp|ZR(?vNCu$4R$&)ao}*8aulu&2Hl?{8hy{
vCiF>9CSh^n#>QrOJ>rJP37(Su&|^6L10#+bJzW}Em-sSlBCD;Wm-N!#t}0$v
literal 0
HcmV?d00001
diff --git a/trunk/yolanda/controllers/__init__.py b/trunk/yolanda/controllers/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/trunk/yolanda/controllers/__init__.pyc b/trunk/yolanda/controllers/__init__.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..f5f0ddedcd0090ace5a75f905254e4769ee7829a
GIT binary patch
literal 147
zcmdn|iI*$It<58u0SXv_v;zm`WgATsrq@DImP27bZ
zlsqlshxjvo0P2))8wsAWBX_x`FV$7&RMq_T_pN^Z{Lh~d2)kQqc|)D&ZACpb<3k{nSbFg{@akXQtveZHhqb
zsh+NNwlLM)R&zPu7-vf2HSvoriUa>2g{|~j%+}S+&PRv%hRs^fY(YaYkbx4g4MI-<
z?-`3AY%(b!R<@-q)4?3I)FsQdOm<{aXu@RY$|O@JJ1{81=V9NZ9zlRT49iJqpXXok5CqF-9Z`hwU3jiEY1|@lK<|HYLYS=92HVd*0zR7QN
zsxGYKRBZ9CIfczV0Ml=>9CkewGr6FFQP>mVzh!N-s7o4Ew(ukGveCLOIKRv&xK*{>
zzh(Pe_aljmQ4T#my-Un{tb1Ur;#Tx|bU%6!Wq=(6SuN0i$;un9K|$XN^z0SWz!+XK
zra%%0{AVo2<$tY^iO@{(A}4mUAf=0W}18wPe?f4O|
zKx!>bD{hf#Dj%mbE$e($;1wHEe8bW-xx>2TVgimNF%GVY_I^d5ApRZ?DfVu!8z1$K
z+DGjHKod`DKLqNMj^P&13fRLf(8;IRhhk}@vWJJpEqzYXHXw>^BN`TVI-D9$LdH{8
d4xcM==32w^2<^KKvfrbEWa4IgGdhm@@xLoi7Ha?i
literal 0
HcmV?d00001
diff --git a/trunk/yolanda/controllers/index.py b/trunk/yolanda/controllers/index.py
new file mode 100644
index 0000000..977b0cf
--- /dev/null
+++ b/trunk/yolanda/controllers/index.py
@@ -0,0 +1,10 @@
+import logging
+
+from yolanda.lib.base import *
+
+log = logging.getLogger(__name__)
+
+class IndexController(BaseController):
+
+ def index(self):
+ return render('/xhtml/index.mako')
diff --git a/trunk/yolanda/controllers/index.pyc b/trunk/yolanda/controllers/index.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..9f4b9f0a1133452032b74f0ec2ac9825d6456e76
GIT binary patch
literal 687
zcmb_ZOHRWu5S_RmpaKfFh*;EXBm}74fP}h8*^o_?CT<$VagaTg+I3lQ4z9o@I1d+q
z8K-J5P|NdXY>nT%8Grv?41T^opEB639{EQy_dt--4xj>v+gLyqz^ei%1*i^e1Bknj
zcR=-E5kTIB4}dMeTioY&vyjQkKU&i;pb!~ua7g%Uabt(sOwpAxL1OWU5iOrrE6
zBo7|kEk$zK)JmFCJLzmDH;qnBo=UVUQ|(XLz6ZCf^S(jfHy1r)X4V5i*dfGIf+R6%
zt*;caqdizS4AzSjIuZ5p+a6r4uqQp)W#?kwG^_QJMm;DBkro(&cj%Re&PUW6EaQt8AVjza%AIguLWB>pF
literal 0
HcmV?d00001
diff --git a/trunk/yolanda/controllers/search.py b/trunk/yolanda/controllers/search.py
new file mode 100644
index 0000000..3981ae4
--- /dev/null
+++ b/trunk/yolanda/controllers/search.py
@@ -0,0 +1,31 @@
+import logging
+
+from yolanda.lib.base import *
+
+log = logging.getLogger(__name__)
+
+class SearchController(BaseController):
+
+ def results(self):
+
+ # maybe c.query could / should be a dictionary ?
+ c.query = request.params['query']
+
+ # c.results dummy
+ c.results = [
+ {'title': 'foobar', 'id': '23' , 'thumbnail': h.url_for('/images/404.png')},
+ {'title': 'blablupp', 'id': '42', 'thumbnail': h.url_for('/images/404.png')},
+ {'title': 'uiae nrdt', 'id': '555' , 'thumbnail': h.url_for('/images/404.png')},
+ {'title': 'uiaenrtd uiaenrtd uiaenrdt', 'id': '666666666', 'thumbnail': h.url_for('/images/404.png')},
+ {'title': 'foobar', 'id': '23' , 'thumbnail': h.url_for('/images/404.png')},
+ {'title': 'blablupp', 'id': '42', 'thumbnail': h.url_for('/images/404.png')},
+ {'title': 'James Bond drives a bulletproof Aston Martin !!!', 'id': '555' , 'thumbnail': h.url_for('/images/404.png')},
+ {'title': 'uiaenrtd uiaenrtd uiaenrdt uiaenrtd uiaenrtd', 'id': '666666666', 'thumbnail': h.url_for('/images/404.png')},
+ {'title': 'foobar', 'id': '123' , 'thumbnail': h.url_for('/images/404.png')},
+ {'title': 'blablupp', 'id': '42', 'thumbnail': h.url_for('/images/404.png')},
+ {'title': 'lolwtf hax !!!11', 'id': '9001', 'thumbnail': h.url_for('/images/404.png')}
+ ]
+
+ return render('/xhtml/results.mako')
+ # return request.params['query']
+ # return h.form(h.url(action='search'), method='get')
diff --git a/trunk/yolanda/controllers/search.pyc b/trunk/yolanda/controllers/search.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..2a1c40c7cd72eb4accaefd0791572f08fa5d126c
GIT binary patch
literal 1536
zcmb_c&2AGh5T0y)+NLdSDMEtN_QVRIY|hXueZRqWy@;J9xdmxwK(8HGJu$6_d<{Y-V5VkgltuKV#EVoChD6TcV#8
z;m*#Ed$cgZ-!V~oYMtFZ#}`N&{Ru~5Do)u~r$YxD;7PmPaoZ%srzz$-w#t^|;dNWMu5j#(VNMRuxj&iyO^RozkO-X7Gc1
zN>ZGfT*XDEUF_^IJ~LVrQp9M>VsfbsFK<7g{Cm)vo^_c%C)XDMs++Y3m4AQjYQ%N&
z0e*rASFH^b$Gi*~W@vFZOKHJs0r>
z{0Tq8x9|fn-lW;KfZ$Lo9^1QhwpeaJ3tu&CY
zBLjJj3dliGnL-=WczOI(VW1wY#$t*VtOLgo9=xjv1I#7m(-htj?`oJJRAGsvbYOio
zNT8L{n?RDIpb1PyY7=$<)3bDMueWxJL76n1Yg{A&O|b)&H`{wR9HNs)s=VdJD)dP|
z+X{WyYJ6L;4<2*@wX6C*GSv1A-piQ-X%#G_r6?UQN~3d4riQ>+Onmp{E+ogU&A_3n
ztlH*Kp>&q1=T0FsX^B}~**gi3~4s=_co|n$Yyv{4hta+{$ip9?blkg%M6ZUzRP2C(b%N3UepJ%l*
zTmmv9U)kCE)HX)Qu0Ca2)(v(n#~3oiXyRGZWAuQx*E(
zCc}6`M1c*9``zOujmP|Cr6@Iel1^kmiub~RH|;&s{QIscg_wi=rRrCaUPG0p
literal 0
HcmV?d00001
diff --git a/trunk/yolanda/controllers/video.py b/trunk/yolanda/controllers/video.py
new file mode 100644
index 0000000..8697bda
--- /dev/null
+++ b/trunk/yolanda/controllers/video.py
@@ -0,0 +1,14 @@
+import logging
+
+from yolanda.lib.base import *
+
+log = logging.getLogger(__name__)
+
+class VideoController(BaseController):
+
+ def index(self):
+ return 'show a video html page'
+
+ def file(self):
+ return 'serve video'
+
diff --git a/trunk/yolanda/controllers/video.pyc b/trunk/yolanda/controllers/video.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..546ab92ae7a48224c47e9c0a14cd9fec466f0eea
GIT binary patch
literal 846
zcmb_ay;8zJ5Z+t>1yQUltWstyNbQWH4m1`HMR1%kO$^BrG8{Q3cc9eR>D%~bzJTr~
z2&IMGl#Oj7B-G
zOl;Se1l~l=(91KaJzd1!O35fsBF_|ye7e=*Z3EgXD|F{8Q#PF^_}b)L%ml1IsUEQ}
z7E7#{?)dqfU~k;G*>NVZ&E+a;F5Ao@K^W%I48zd0N@b>!g(TItN%h%lN28SfHz%K8
z?tpgrY7Nn}UDgbPRB4*!sW~NiGx@H}M%_`Q(ePMPH236#h0oJA%#dQt37tLi+5K2$
XmA&%TJgTc|IM>{RZVI@D$o^l
zXq~}NfFA%~)-zCZxT+WA$q+toH52>2HBuzw-72yV)^CK3%x}JGnapoob%8e%`AF|N
z)2Bx$PWR4)=+0Z*@i~GFI@%yCYn
zOk^@>k+foJ2*&mQM5pY=nPh}D-}B2c;S@v1d%}}z(BB3fvC4xHndz!uWrh^vAcCRl
z&W6hxdBOPLL^x{OjV7|kmk7<)?{wpgjZF-)IeLq!MU%qduFsk^n+E&J`>~rZ_Q&)X
zeK{xAoIjyp)C`!{lx8|~Vy8JzOSEvl^J=i9Qnxu*UUJ@6DBttR(*KZZsYAI=f6`
qFY7r;t59Tny#wux|~z}+wVJZ`R%XY7g&GW^#6*M8%ID12$B)X
z7ODuk1<`_TL$skg5FO|)L>IaT(SzQA*nsXs^bzr$HmXhN7$R=;4yrBaZHR5?9f%$1
zU5MSr*G07lJ%AWM??dc2)*h+@=tGD@=sOU1ppPJq8s7%0W9SozlSc2OdI#!VsP`b=
z4>gnJF4R4Udnh*{V@#>27{375z>nes%z%!#51Ft*eaP~gmt%-i$Wy3~P;TKm!uDbZ
z5gACkXu)ieLU&Ga@ahjlv|ikY_!wm$=R*e1y(aO)Tqcv;$>fQty){}(n|%H3ERLU9
zbEQh@5>F={(}`OL3Y|NbOpQ(4auO6(&pt`=x=aimw~3it$ilmL>6KPL%QBg)ZY6M|
zSp7-gaDxi)#2yOYWtkUq>3h60^;FG*Yv%csm9Li4dEXCvw=lJn!QrHH%G5)S;&(|r
zKmYFRZK=aH+c|hXG1mK-cGBmwtjV=Ss+Fa(RBh(Xu*Ii2--R=^nyx~=t6Zxx_p*t_
zi88-Qa#_!$_wpz2`P$R0se#M4vM!~48tVBcbOm|C$6+4Ra{DACO)oJHW}N0WJrAJ@
zuANth))QLpkc6iJi0}q@L$ZbIHnGXU+!2Yh`pQ%?P<9IgE-wvOGkh8Ku633*?Qm=-
z^)z%X>nmkx4j4!0bL%rJ8?1+9K@jd!+KuPtQjTk--PqY;yfT`&&&S>_>*{Y!tI3#0
zYqVIU2Xu*-<66*dayQk~`K8RVz)Y51nsTX04Hw=f{U4bb-@#4hUMt<9{qO;a&~cWP
zrl9Q1+G3??tWw$`Wkl0}8xxQ+N-0lK$_G7n(wrXAq^_ThYal-PSKo+VLdp%NJUS`Q
zq36=pVMri^i+@yQ#zIENp%Z1K8y~31x^*ktRQbt6>
zXfE|aTIabL(nISvHg0w98J3$HM1s`e(S%*fi9AD)y?FF8K&1`MkPEg-u3WHX88aDp
z471~2D?eX@+zcE=XlCfY)9Dz(FPbU&k_mCgBzn{@tUUI9fX$d%
zjyaLm55h=HkT-{C;0!$Vv9*X3G#*Cs4t9}4Ou)YD(Xyv&XhsH$l(l`e5p9Ehu9TKM
zWJEtu1?vzAy6i@YiTan=WDZ~nmSI`x_$5{rG9=HqdMf9=_)JjOF1K~fTJ+90;b#dd
y#Zw2+jkqS{&YKjG3=OTBGTP*<;bBbMKM!ML_C2b8qI0Rc{hjdcL^RF+o)+KjpJt2z
literal 0
HcmV?d00001
diff --git a/trunk/yolanda/model/__init__.py b/trunk/yolanda/model/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/trunk/yolanda/model/__init__.pyc b/trunk/yolanda/model/__init__.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..42753c638bab66fdedaf5b04f6f62315171474cc
GIT binary patch
literal 141
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