<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Aug 29, 2016 at 10:44 AM, Thomas De Schampheleire <span dir="ltr"><<a href="mailto:patrickdepinguin@gmail.com" target="_blank">patrickdepinguin@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><span class="">><br>
>   - Routing, Kallithea is probably the only TG2 app using routes as the core<br>
> dispatch system. This is probably not going away unless all controllers are<br>
> rewritten using ObjectDispatch. But as using tgext.routes as the main<br>
> dispatch system should be possible I tend to think that Kallithea should not<br>
> be forced to change this and I can work to fix any problems that arise.<br>
<br>
</span>To use ObjectDispatch, we'd need extensive usage of the _lookup method<br>
inside the controller, is that correct?<br>
<a href="http://turbogears.readthedocs.io/en/latest/turbogears/objectdispatch.html#the-lookup-method" rel="noreferrer" target="_blank">http://turbogears.readthedocs.<wbr>io/en/latest/turbogears/<wbr>objectdispatch.html#the-<wbr>lookup-method</a></blockquote><div><br></div><div>Most controllers are just dispatched based on their method name, so it shouldn't be required.</div><div>For REST like uris ( /collection/ID/action ) or that dispatch based on HTTP method those can be satisfied by subclassing from RestController</div><div><br></div><div>But again, I think this shouldn't be required as using tgext.routes as the main dispatch system must work :D</div><div>So I'll try to fix any dispatch related issue we might find.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><span class="">
>   - Assigning to **self**, this is pretty widespread in Kallithea <br>
<br>
</span>Can you give examples from the Kallithea source code? In the<br>
controllers I only find three files that have assignments to self:<br>
feed.py, api/__init__.py, journal.py.<br></blockquote><div><br></div><div>I noticed in BaseController that it's done in a few places:</div><div><br></div><div>     self.cut_off_limit = safe_int(config.get('cut_off_limit'))</div><div>     <a href="http://self.sa">self.sa</a> = meta.Session</div><div>     self.scm_model = ScmModel(<a href="http://self.sa">self.sa</a>) </div><div><br></div><div>And as you stated also in API is done.</div><div><br></div><div>I remember I created some properties to work-around such behaviour and provide backward compatibility from code that read ip_addr and authuser</div><div><br></div><div><div>    @property</div><div>    def ip_addr(self):</div><div>        return c.ip_addr</div><div><br></div><div>    @property</div><div>    def authuser(self):</div><div>        return c.authuser</div></div><div><br></div><div>but many more are probable set around the code.</div></div></div></div>