File: index.html

package info (click to toggle)
sqlkit 0.9.5-1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 8,184 kB
  • sloc: python: 17,477; sql: 166; makefile: 95; xml: 23; sh: 11
file content (539 lines) | stat: -rw-r--r-- 17,745 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      
      <title>
 &mdash; sqlkit v0.9.5 documentation</title>
      
    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
    <link rel="stylesheet" href="_static/sqlkit.css" type="text/css" />
    <link rel="stylesheet" href="_static/print.css" type="text/css" media="print" />

    <link rel="index" title="Index" href="genindex.html" />
    <link rel="search" title="Search" href="search.html" />
    <link rel="top" title="sqlkit v0.9.5 documentation" href="#" />
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
          URL_ROOT:    '#',
          VERSION:     '0.9.5',
          COLLAPSE_MODINDEX: false,
          FILE_SUFFIX: '.html'
      };
    </script>
    <script type="text/javascript" src="_static/jquery.js"></script>
    <script type="text/javascript" src="_static/doctools.js"></script>


<!-- <link rel="stylesheet" href="http://www.myjqueryplugins.com/plugins/jmenu/demo/jquery/jMenu.jquery.css" type="text/css" /> -->
      <link rel="stylesheet" href="_static/jMenu.jquery.css" type="text/css" />
      <script type="text/javascript" src="http://www.myjqueryplugins.com/plugins/jmenu/demo/jquery/jquery.js"></script>
      <script type="text/javascript" src="http://www.myjqueryplugins.com/plugins/jmenu/demo/jquery/jquery-ui.js"></script>

      <!-- <script type="text/javascript" src="http://www.myjqueryplugins.com/plugins/jmenu/demo/jquery/jMenu.jquery.js"></script> -->

      <script type="text/javascript">

	var _gaq = _gaq || [];
	_gaq.push(['_setAccount', 'UA-18221996-2']);
	_gaq.push(['_trackPageview']);

	(function() {
	  var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
	  ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
	  var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
	})();

      </script>
      <script type="text/javascript" src="_static/jMenu.jquery.js"></script>
      <script type="text/javascript">
	      $(document).ready(function(){
		      $("#jMenu").jMenu({
			      ulWidth : '150',
			      effects : {
				      effectSpeedOpen : 300,
				      effectSpeedClose : 300,
				      effectTypeOpen : 'slide',
				      effectTypeClose : 'slide',
				      effectOpen : 'linear',
				      effectClose : 'linear'
			      },
			      TimeBeforeOpening : 100,
			      TimeBeforeClosing : 400,
			      animatedText : false,
			      paddingLeft: 1		});
	      })
      </script>
<!-- Preview -->
     <script type="text/javascript" src="_static/imgpreview.js"></script>
     <script type="text/javascript">
       $(document).ready(function(){
           $('.preview').imgPreview();
       });
     </script>
     
    <link rel="stylesheet" href="_static/tour.css" type="text/css" media="screen" />
    <link rel="stylesheet" href="http://apt.argolinux.org/.sk/anythingslider.css" type="text/css" media="screen" />
    <link rel="stylesheet" href="http://apt.argolinux.org/.sk/theme-cs-portfolio.css" type="text/css" media="screen" />
    
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> 
    <script type="text/javascript" src="_static/AnythingSlider/js/jquery.easing.1.2.js"></script>
    <script type="text/javascript" src="http://apt.argolinux.org/.sk/jquery.anythingslider.min.js"></script>

    <script type="text/javascript">
        function formatText(index, panel) {
		  return index + "";
	    }
    
        $(document).ready(function(){
            $('.anythingSlider').anythingSlider({
	        width : 600,
	        height: 370,
	        theme: 'cs-portfolio',
                delay: 7000,         // How long between slide transitions in AutoPlay mode
	        themeDirectory      : 'css/theme-css-portfolio.css'
             });
        });
    </script>
    

     <!--[if !IE 7]>
	     <style type="text/css">
		     #wrap {display:table;height:100%}
	     </style>
     <![endif]-->
    </head>
    <body>
        




<div id="wrap">
    
<div id="header">

	<div class="logo"><a href="misc/tour.html">
       <img src="_static/sqlkit.png" align="left"  alt="Logo" border="0"/></a>
        </div>
	<div id="description">Acces to db made easy</div>
</div>


   <div style="clear:left;"></div>


<div >
	<ul id="jMenu">
            <li><a class="fNiv" href="#" title="Home" 
                  >Home</a></li>

            <li><a li class="fNiv" href="sqlkit/contents.html"
                  title="Sqlkit - the python package" 
                  >Sqlkit</a>

	       <ul>
		 <li ><a href="sqlkit/contents.html"
		       title="Sqlkit - the python package" 
		       >Sqlkit</a></li>

		 <li ><a href="sqlkit/sqlwidget.html" title="Widgets" 
		       >Widgets</a>
		       <ul> 
			 <li ><a href="sqlkit/mask.html" title="Mask" 
			       >Mask view</a></li>
			 <li ><a href="sqlkit/table.html" title="Table" 
			       >Table view</a></li>
		       </ul>
                 </li>
		 <li ><a href="sqlkit/browsing.html" title="Browsing Data" 
		       >Browsing data</a>
		    <ul> 
		      <li ><a href="sqlkit/constraints.html" title="Constraints" 
			    >Constraints</a></li>
		      <li ><a href="sqlkit/filters.html" title="Filters" 
			    >Filters</a></li>
		      <li ><a href="sqlkit/totals.html" title="Totals" 
			    >Totals</a></li>
		    </ul>
                 </li>
		 <li ><a href="sqlkit/editing.html" title="Editing Data" 
		       >Editing data</a>
			 <ul> 
			   <li ><a href="sqlkit/completion.html" title="Completion" 
				 >Completion</a></li>
			   <li ><a href="sqlkit/validation.html" title="Validation" 
				 >Validation</a></li>
			   <li ><a href="sqlkit/relationship.html" title="Relationships" 
				 >Relationships</a></li>
			 </ul>
		       </li>
		 <li ><a href="sqlkit/printing.html" title="Printing" 
		       ><span>Printing</span></a></li>
		 <li ><a href="sqlkit/advanced/contents.html" title="Advanced configuration" 
		       >Advanced configuration</a>
			 <ul> 
			   <li ><a href="sqlkit/advanced/fields.html" title="Fields" 
				 >Fields</a></li>
			   <li ><a href="sqlkit/advanced/views.html" title="Views" 
				 >Views</a></li>
			 </ul>
		       </li>

	       </ul>
            </li>

            <li><a class="fNiv" href="misc/sqledit.html"
                  title="Sqledit GUI" 
                  >Sqledit GUI</a></li>

            <li><a class="fNiv" href="misc/tutorials.html"
                  title="Support & tutorials" 
                  >Support & Tutorials</a>
	       <ul>
		 <li ><a href="misc/sqledit.html"
		       title="Sqledit - the application" 
		       >Sqledit - the application</a></li>
		 <li ><a href="misc/tour.html"
		       title="Sqlkit - the features'tour"
		       >Sqlkit - features' tour</a></li>
		 <li ><a href="misc/sqledit.html"
		       title="Sqledit - the application" 
		       >Installing instructions</a></li>
		</ul> 
            </li>

            <li><a class="fNiv" href="layout/contents.html" title="Layout"
                  >Layout</a></li>

            <li><a  class="fNiv"href="misc/contents.html" title="Download" 
                  >Download</a>

	       <ul>
		 <li ><a href="misc/contents.html"
		       title="Download"
		       >Download</a></li>
		 <li ><a href="http://sqlkit.argolinux.org/download/Changelog"  title="Changelog"
		       title="Changelog"
		       >Changelog</a></li>
		 <li ><a href="misc/backward_incompatibilities.html"
		       title="Backward incompatibilities"
		       >Backward incompatibilities</a></li>
	       </ul>
            </li>



        </ul>
</div>
   <div style="clear:left;"></div>

    
    <div class="related">
      <ul>
	

      </ul>

    </div>

    

  <div class="sphinxsidebar">
     <div class="sphinxsidebarwrapper">
      <div class="news">

      <h2>Release 0.9.5 is out</h2>
      
      I'm happy to announce that on Feb, 7 2012 I released 
      <a href="misc/download.html#download">version 0.9.5</a> 
      that adds support for sqlalchemy 0.7+ and some other minor additions

     </div>

      <div class="news">


     </div>
     </div>

   </div>

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">

            <div class="body">
                






<div class="promo">
   <div class="box1 box">
      <h1><span style="color: #a91819; font-weight: bold;">Sqledit</span> for end users</h1>

      <b>The easiest possible way to browse the data of your database</b>

      <p>
      You can customize the way data are presented in a very simple way. The
      ideal tool to edit your personal databases or to browse data of an
      application you're developing with other languages/tools.

      <p>
	Filtering data has never been so easy, no SQL knowledge required. 
      <a href="misc/sqledit.html">Read more...</a>
      </div>
      <div class="box2 box">
      <h1><span style="color: #a91819; font-weight: bold">Sqlkit</span> for Python developers</h1>

      <b>A powerful framework to create any application from simple
      to very rich and complex ones.</b>
      <p>
	Sqlkit provides 2 widgets to edit data as form or table. It's
	based on PyGTK and sqlalchemy to provide maximum flexibility. 
      <p>
	Key points are the way to design form layout with relationship,
	completions, validation and filter capabilities that can be done w/o
	any effort. More than 80 examples ready to use!
      <a href="misc/tour.html">Read more...</a>
   </div>
</div>


<ul class="anythingSlider">
  <li><div class="slider-text">
      <h2>Sqledit</h2>
      <img src="_static/images/sqledit_setup.png" alt="" />
      The application 'sqledit' can open a great variety of different
      backends as it's base on SqlAlchemy: PostgreSQL, MySQL, sqlite,
      firebird... You can use it to browse your data or to debug an application
      you're developing. The rich configuration capability of sqledit can
      make it grow in a gentle way toward a true application what starts as
      a simple shortcut to some data.
      </div>
  </li>
  <li><div class="slider-text">
      <h2>Table's list</h2>
      <img src="_static/images/sqledit.png" alt="" />     
      Each table of the database can be opened in Mask or Table way or
      introspected. 
      </div>
  </li>
  <li><div class="slider-text">
      <h2>The model (optional)</h2>
      <img src="_static/images/director-model.png" alt="" />     
      Table fields can be automatically reflected from the database or set
      using sqlalchemy's standard way. Here the example used in the demo for
      directors and the way to set the relation with 'movie' table.
      </div>
  </li>
  <li><div class="slider-text">
      <h2>Table view</h2>
       <img src="_static/images/table.png" alt="" />
       Each database table can be opened in table or mask mode. The image 
       shows table mode where each column can be
       sorted and it's field can be added to a filter tool.
      </div>
  </li>
  <li><div class="slider-text">
      <h2>Relationships</h2>
       <img src="_static/images/o2m.png" alt=""  /><br>
       Create a form to edit relations is as easy as writing a text layout
       (clearly you must define relations in the model):
       <pre>
	 lay = """last_name 
 	          first_name nation
	          o2m=movies"""
	 SqlMask(Movie, layout=lay, dbproxy=db)
      </pre>
      </div>
  </li>
  <li><div class="slider-text">
      <h2>Filters</h2>
       <img src="_static/images/filter.png" alt="" />
       <p>
       Each field of a table/mask even of a related table can be filtered
       on.  Just click on the label and a filter panel will be presented. A
       smart and efficent way to express dates in a relative way lets you
       great flexibility. Here date_release >= 'y-5' means a film released
       after Jan, 1^ 5 years ago, whenever you run the filter.

      </div>
  </li>
  <li><div class="slider-text">
      <h2>Contraints</h2>
       <img src="_static/images/constraints.png" alt="" />
       <p>
	 Filters and constraints can be programmatically added using a
	 syntax derived from django orm. User are allowed to play with
	 filters while constraints are used to limit the visibility of some
	 records. 
      </div>
  </li>
  <li><div class="slider-text">
      <h2>Mask View</h2>
       <img src="_static/images/ragazza.png" alt="" /> 
       
       The SqlMask widget shows one record at a time. Any field type will be
       rendered in a proper way. Images are varchar field for which a
       <tt>render='image'</tt> is set when defining the model. The layout
       can be set in a incredibly simple way w/o any programming knowledge.
      </div>
  </li>
  <li><div class="slider-text">
      <h2>Mask view from any row</h2>
      
       <img src="_static/images/rim.png" alt="" />
       <p>
       Right click on a record offers a variety of different actions. The most
       important is the ability to open a SqlMask to view/edit that record
       the record pointed to by the foreign key.
      </pre>
      </div>
  <li><div class="slider-text">
      <h2>Registered layout</h2>
       <img src="_static/images/rim-bi.png" alt="" />
       <p>
	 A mask that displays a single record can use a registered layout
	 and will follow the selection of the underneath table.
      </pre>
      </div>
  </li>
  <li><div class="slider-text">
      <h2>Completion</h2>      
      <img src="_static/images/completion.png" alt="" /> 
      Any foreign key is automatically detected and a widget that implements
      completion on the foreign table is used. Completion is triggered by
      'Return' and the search on the foreign key is done in a customizable
      field and represented in a customizable way (here: first_name + last_name)
      </div>
  </li>
  <li><div class="slider-text">
      <h2>Group by on completion</h2>
      <img src="_static/images/completion_group_by.png" 
	   align="right" class="align-right" alt="" /> 
      Completion can be programmed in a group-by fasion or constrained in a
      dinamic way so that the value of a field is used to filter the
      possible completions:
      <br clear="all">
      <pre>
	t = SqlTable(Invoice, ...)
	t.completions.project_id.filter(client_id='$client_id') # dynamic
	t.completions.client_id.group_by = 'category' # group-by
      </pre>

      </div>
  </li>
  <li><div class="slider-text">
      <h2>Totals</h2>
      <img src="_static/images/totals.png" alt="" /> 
      Table can display totals and subtotals. Here subtotals w/o totals
      where requested.
      </div>
  </li>
  <li><div class="slider-text">
      <h2>Trees</h2>
      <img src="_static/images/tree-table.png" alt="" /> 
      <p>
      Rows can be displayed with a hierarchy
      </div>
  </li>
  <li><div class="slider-text">
      <h2>Editing joins</h2>
      <img src="_static/images/join.png" alt="" /> 
      <p>
	Tables and Masks can show any selectable that you may define with
	sqlalchemy. Here a join between two columns is displayed and fields
	from both tables retain the possibility to be edited.
	<pre>
         m = mapper(Join, model.Movie.__table__.join(model.Director.__table__),
           properties={
                 'movie_id' : model.Movie.__table__.c.id
            })
         t = SqlTable(m, dbproxy=db )

        </pre>
      </div>
  </li>
  <li><div class="slider-text">
      <h2>Computed fields</h2>
      <img src="_static/images/add_fields.png" alt="" /> 
      <p>
	You can add computed fields as in this case where the number of
	movie is computed for each director, you can further sum and sort
	on those fields.
      </div>
  </li>
  <li><div class="slider-text">
      <h2>Printing</h2>
      <img src="_static/images/printing.png" alt="" /> 
      <p>
	Sqlkit provides a very powerful template system that allows to
	compose the layout with OpenOffice.org. No programming know-how is
	required to create an effective template, no more headache to get
	the right layout using OpenOffice's <tt>writer</tt>.
      </div>
  </li>
  <li><div class="slider-text">
      <h2>HOOKS & signals</h2>
      <p>
      Many signals and hooks are available to the programmer for a powerful
      level of customization. 
      <p>
      A "hook" class can be registered globally so
      that its attached to any SqlWidget open in any situation, both in form
      or table view. That's the "controller" part in the MVC implementation.
      <p>
      Hooks allow you to customize almost any part as are called on
      validation, on completion, on record display, on value change so that
      it's very easy to create a very interactive interface.
      </div>
  </li>
</ul>

            </div>
        </div>
     </div>
   </div>

        
</div> <!-- wrap -->

            <div class="bottomnav footer">
                <div class="doc_copyright">
                Alessandro Dentella -- Copyright 2006-2007-2008-2009-2010
		  Sqlkit release 0.9.5
<!--                 % if hasdoc('copyright'): -->
<!--                     &copy; <a href="copyright.html">Copyright</a> 2008, Sandro Dentella. -->
<!--                 % else: -->
<!--                     &copy; Copyright 2008, Sandro Dentella. -->
<!--                 % endif -->
                    creato usando  <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.4.
                </div>
            </div>
        












<br style="clear: left" />

    </body>
</html>