<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Aaron,<br>
<br>
Sorry, I must not really have explained clearly.&nbsp; This isn't an
abstraction layer, but more like a UI component or widgit that
facilities basic reporting.&nbsp; Look at these pages:<br>
<br>
<a class="moz-txt-link-freetext" href="http://www.redmine.org/issues">http://www.redmine.org/issues</a><br>
<a class="moz-txt-link-freetext" href="http://trac.edgewall.org/query">http://trac.edgewall.org/query</a><br>
<br>
Both pages have a similar structure: <br>
<ul>
  <li>UI Controls</li>
  <ul>
    <li>filtering</li>
    <li>grouping</li>
    <li>column selection</li>
    <li>sorting</li>
  </ul>
  <li>Paged/Sortable Recordset Display</li>
</ul>
The library would do the heavy lifting and allow any application using
SQLAlchemy to easily create such query/recordset interfaces to
underlying data. <br>
<br>
You would need to:<br>
<ul>
  <li>Instantiate the DataGrid class</li>
  <li>Create a base SQLAlchemy query to be used for the data</li>
  <li>Define the filter types associated with the columns (i.e.
TextFieldFilter, OptionsFilter('low','medium', 'high'), DateSpanFilter,
etc.)</li>
  <li>Limit sorting, grouping to appropriate columns</li>
  <li>choose which columns of the dataset to show by defaults</li>
</ul>
The library would then:<br>
<ul>
  <li>parse GET/POST for filter/column/sort/page settings &amp;/or use
defaults<br>
  </li>
  <li>compose SQLALchemy query to satisfy the request</li>
  <li>execute the query and get the database results</li>
  <li>put results into an HTML table</li>
  <li>return the HTML form needed for the controls and the recordset
table including necessary CSS and JS</li>
</ul>
Obviously, the library should be easily customizable and the rendering
of HTML should be flexible.&nbsp; It should also be flexible enough to work
with the different WSGI libraries out there.<br>
<br>
I hope that makes better sense.&nbsp; If you or anyone else is interested, I
can give you some code I have working from the pysapp project which
does some basic filtering, paging, and sorting.&nbsp; The API is awful, but
I think it might give you a better idea of what I am talking about.<br>
<br>
<pre class="moz-signature" cols="72">--------------------------------------
Randy Syring
Intelicom
502-644-4776

"Whether, then, you eat or drink or 
whatever you do, do all to the glory
of God." 1 Cor 10:31</pre>
<br>
<br>
Aaron Watters wrote:
<blockquote cite="mid:611997.80677.qm@web111702.mail.gq1.yahoo.com"
 type="cite">
  <table border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td
 style="font-family: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; font-size: inherit; line-height: inherit; font-size-adjust: inherit; font-stretch: inherit;"
 valign="top"><br>
Thanks Randy, very interesting.<br>
        <br>
My initial reaction is that you are building a stack on top of a stack.<br>
It's not clear to me what problem you want to solve<br>
and your requirements are.&nbsp; It's possible that<br>
you could find it easier to abstract directly on top of SQL or
alternatively<br>
you could consider using another sort of data model like mongodb.<br>
Building an abstraction on top of SQLAlchemy which hasn't even reached<br>
1.0 strikes me as dubious.<br>
        <br>
Thanks again,&nbsp; -- Aaron Watters<br>
        <br>
--- On <b>Tue, 4/6/10, Randy Syring <i><a class="moz-txt-link-rfc2396E" href="mailto:rsyring@inteli-com.com">&lt;rsyring@inteli-com.com&gt;</a></i></b>
wrote:<br>
        <blockquote
 style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;"><br>
From: Randy Syring <a class="moz-txt-link-rfc2396E" href="mailto:rsyring@inteli-com.com">&lt;rsyring@inteli-com.com&gt;</a><br>
Subject: [Web-SIG] SQLAlchemy Queries &amp; HTML Data Grid<br>
To: <a class="moz-txt-link-abbreviated" href="mailto:web-sig@python.org">web-sig@python.org</a><br>
Date: Tuesday, April 6, 2010, 4:37 PM<br>
          <br>
          <div id="yiv1616442462">I am planning on building a library
that will facilitate creation of
custom queries and html display of resulting datasets from SQLAlechemy
queries.&nbsp; I have some basic work done here:<br>
          <br>
          <a moz-do-not-send="true" rel="nofollow"
 class="moz-txt-link-freetext" target="_blank"
 href="https://svn.rcslocal.com:8443/svn/pysmvt/pysapp/branches/0.1/pysapp/modules/datagrid/">https://svn.rcslocal.com:8443/svn/pysmvt/pysapp/branches/0.1/pysapp/modules/datagrid/</a><br>
          <br>
But I don't like the API and I don't want the library to be dependent
on pysapp.&nbsp; Furthermore, I would like to have a more verbose querying
ability akin to Redmine:<br>
          <br>
          <a moz-do-not-send="true" rel="nofollow"
 class="moz-txt-link-freetext" target="_blank"
 href="http://www.redmine.org/projects/redmine/issues">http://www.redmine.org/projects/redmine/issues</a><br>
          <br>
Including:<br>
          <ul>
            <li>Filters</li>
            <li>Column Selection</li>
            <li>Grouping (multiple levels)</li>
            <li>Sorting (multiple columns)</li>
            <li>some kind of query saving/loading mechanism with a
flexible
backend</li>
          </ul>
I have done some basic table generation work here:<br>
          <br>
          <a moz-do-not-send="true" rel="nofollow"
 class="moz-txt-link-freetext" target="_blank"
 href="https://svn.rcslocal.com:8443/svn/pysmvt/pysdatagrid/trunk/">https://svn.rcslocal.com:8443/svn/pysmvt/pysdatagrid/trunk/</a><br>
          <br>
with the tests being the best place to get an idea of how it works:<br>
          <br>
          <a moz-do-not-send="true" rel="nofollow"
 class="moz-txt-link-freetext" target="_blank"
 href="https://svn.rcslocal.com:8443/svn/pysmvt/pysdatagrid/trunk/pysdatagrid/tests/test_render.py">https://svn.rcslocal.com:8443/svn/pysmvt/pysdatagrid/trunk/pysdatagrid/tests/test_render.py</a><br>
          <br>
Looking for comments, pointers to other projects, and/or possibly
interest in helping with a project like this.&nbsp; I am currently working
in SVN but will most likely move to hg/git if there are others who are
interested.<br>
          <pre class="moz-signature">-- 
--------------------------------------
Randy Syring
Intelicom
502-644-4776

"Whether, then, you eat or drink or 
whatever you do, do all to the glory
of God." 1 Cor 10:31</pre>
          </div>
          <br>
-----Inline Attachment Follows-----<br>
          <br>
          <div class="plainMail">_______________________________________________<br>
Web-SIG mailing list<br>
          <a moz-do-not-send="true" ymailto="mailto:Web-SIG@python.org"
 href="/mc/compose?to=Web-SIG@python.org">Web-SIG@python.org</a><br>
Web SIG: <a moz-do-not-send="true"
 href="http://www.python.org/sigs/web-sig" target="_blank">http://www.python.org/sigs/web-sig</a><br>
Unsubscribe: <a moz-do-not-send="true"
 href="http://mail.python.org/mailman/options/web-sig/arw1961%40yahoo.com"
 target="_blank">http://mail.python.org/mailman/options/web-sig/arw1961%40yahoo.com</a><br>
          </div>
        </blockquote>
        </td>
      </tr>
    </tbody>
  </table>
</blockquote>
</body>
</html>