/[thuban]/branches/WIP-pyshapelib-bramz/ChangeLog
ViewVC logotype

Diff of /branches/WIP-pyshapelib-bramz/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1582 by bh, Tue Aug 12 15:08:40 2003 UTC revision 1647 by bh, Mon Aug 25 13:44:14 2003 UTC
# Line 1  Line 1 
1    2003-08-25  Bernhard Herzog  <[email protected]>
2    
3            Basic loading of sessions containing postgis connections:
4    
5            * Thuban/Model/load.py (LoadError): Add doc-string
6            (LoadCancelled): New exception class to indicate a cancelled load
7            (SessionLoader.__init__): Add the db_connection_callback parameter
8            which will be used by the loader to get updated parameters and a
9            password for a database connection
10            (SessionLoader.__init__): Add the new XML elements to the
11            dispatchers dictionary
12            (SessionLoader.check_attrs): Two new conversions, ascii to convert
13            to a byte-string object and idref as a generic id reference
14            (SessionLoader.start_dbconnection)
15            (SessionLoader.start_dbshapesource): New. Handlers for the new XML
16            elements
17            (load_session): Add the db_connection_callback to pass through the
18            SessionLoader
19    
20            * test/test_load.py (TestPostGISLayer, TestPostGISLayerPassword):
21            New classes to test loading of sessions with postgis database
22            connections.
23    
24    2003-08-25  Bernhard Herzog  <[email protected]>
25    
26            * Thuban/UI/mainwindow.py (__ThubanVersion__): Remove this and
27            replace it and the comment with __BuildDate__ by the Source: and
28            Id: cvs keywords as used in the other files.
29    
30    2003-08-25  Bernhard Herzog  <[email protected]>
31    
32            * Thuban/Model/load.py (SessionLoader.check_attrs): Raise a
33            LoadError when a required attribute is missing. The code used to
34            be commented out for some reason, but probably should have been
35            active.
36    
37            * test/test_load.py (TestLoadError.test): Test the message in the
38            LoadError too to make sure it really is about the missing
39            attribute
40    
41    2003-08-22  Bernhard Herzog  <[email protected]>
42    
43            * test/test_save.py (SaveSessionTest.test_dbf_table)
44            (SaveSessionTest.test_joined_table): Add XML validation tests.
45    
46    2003-08-22  Bernhard Herzog  <[email protected]>
47    
48            Implement saving a session with a postgis connection
49    
50            * Resources/XML/thuban-0.9.dtd (dbconnection, dbshapesource) New
51            elements for database connections and shapestores using db
52            connections
53            (session): Add the dbconnections to the content model
54    
55            * Thuban/Model/save.py (SessionSaver.write_db_connections): New.
56            Write the db connections
57            (SessionSaver.write_session): Call write_db_connections to write
58            the connection before the data sources
59            (SessionSaver.write_data_containers): Handle postgis shapestores
60    
61            * test/test_save.py (SaveSessionTest.thubanids)
62            (SaveSessionTest.thubanidrefs): Update for new DTD
63            (SaveSessionTest.test_save_postgis): New. Test saving a session
64            with postgis connections
65    
66            * Thuban/Model/postgisdb.py (PostGISTable.DBConnection)
67            (PostGISTable.TableName): New accessor methods for the connection
68            and table name
69    
70            * test/test_postgis_db.py (TestPostGISTable.test_dbconn)
71            (TestPostGISTable.test_dbname): New methods to test the new
72            PostGISConnection methods
73    
74    2003-08-22  Bernhard Herzog  <[email protected]>
75    
76            * Thuban/Model/postgisdb.py (ConnectionError): New exception class
77            for exceptions occurring when establishing a Database connection
78            (PostGISConnection.connect): Catch psycopg.OperationalError during
79            connects and raise ConnectionError.
80    
81            * test/test_postgis_db.py (TestPostgisDBExceptions): New class for
82            tests for database exceptions
83    
84    2003-08-22  Bernhard Herzog  <[email protected]>
85    
86            Prepare the test suite for tests with required authentication
87    
88            * test/postgissupport.py (PostgreSQLServer.__init__): Add instance
89            variables with two predefined users/passwords, one for the admin
90            and one for a non-privileged user.
91            (PostgreSQLServer.createdb): Pass the admin name to initdb and add
92            the non-privileged user to the database and set the admin password
93            (PostgreSQLServer.wait_for_postmaster): Use the admin user name.
94            Better error reporting
95            (PostgreSQLServer.connection_params)
96            (PostgreSQLServer.connection_string): New methods to return
97            information about how to connect to the server
98            (PostgreSQLServer.execute_sql): New. Convenience method to execute
99            SQL statements
100            (PostgreSQLServer.require_authentication): Toggle whether the
101            server requires authentication
102            (PostgreSQLServer.create_user, PostgreSQLServer.alter_user): New.
103            Add or alter users
104            (PostGISDatabase.initdb): Pass the admin name one the
105            subprocesses' command lines. Grant select rights on
106            geometry_columns to everybody.
107            (upload_shapefile): Use the admin name and password when
108            connecting. Grant select rights on the new table to everybody.
109    
110            * test/test_viewport.py (TestViewportWithPostGIS.setUp): Use the
111            server's new methods to get the connection parameters.
112    
113            * test/test_postgis_session.py (TestSessionWithPostGIS.setUp)
114            (TestSessionWithPostGIS.test_remove_dbconn_exception): Use the
115            server's new methods to get the connection parameters.
116    
117            * test/test_postgis_db.py
118            (TestPostGISConnection.test_gis_tables_empty)
119            (TestPostGISConnection.test_gis_tables_non_empty)
120            (PostGISStaticTests.setUp): Use the server's new methods to get
121            the connection parameters.
122    
123    2003-08-22  Bernhard Herzog  <[email protected]>
124    
125            * Thuban/UI/about.py (About.__init__): Add the psycopg version.
126    
127            * Thuban/version.py: Add psycopg version
128    
129            * Thuban/Model/postgisdb.py (psycopg_version): New. Return the
130            version of the psycopg module
131    
132    2003-08-22  Bernhard Herzog  <[email protected]>
133    
134            * Thuban/UI/dbdialog.py (DBPwdDlg): Removed because it's not used.
135            (DBFrame.OnEdit): Removed because it's not used and wouldn't work
136            at the moment. The functionality should probably be implemented
137            some time, though.
138            (DBFrame.OnRemove): Display a message if the connection can't be
139            removed because it's still in use.
140    
141    2003-08-22  Jan-Oliver Wagner <[email protected]>
142    
143            * Thuban/UI/about.py (About.__init__): split up the huge about
144            text into elements/lists for easier translation. This fixes bug
145            https://intevation.de/rt/webrt?serial_num=2058
146            Also, made some forgotten string available for the i18n.
147    
148    2003-08-21  Bernhard Herzog  <[email protected]>
149    
150            Make postgis support really optional including insensitive menu
151            items.
152    
153            * Thuban/Model/postgisdb.py (has_postgis_support): New. Return
154            whether the postgis is supported.
155    
156            * Thuban/UI/dbdialog.py: Put the psycopg import into try..except
157            to make postgis support optional
158    
159            * Thuban/UI/mainwindow.py (_has_postgis_support): New. Context
160            version of Thuban.Model.postgisdb.has_postgis_support
161            (database_management command): Make it only sensitive if postgis
162            is supported.
163    
164    2003-08-21  Jan-Oliver Wagner <[email protected]>
165    
166            * Doc/manual/thuban-manual.xml: Added CVS revision for rev-history.
167            (section Adding and Removing Layers): Added text and described
168            multi-selection.
169            (chapter Extensions): New.
170    
171    2003-08-21  Jan-Oliver Wagner <[email protected]>
172    
173            * Thuban/UI/mainwindow.py (MainWindow.AddLayer): Changed dialog
174            settings to allow multiple files to load into the map.
175            Also reduced selection to *.shp as a default.
176    
177    2003-08-20  Bernhard Herzog  <[email protected]>
178    
179            Add dialogs and commands to open database connections and add
180            database layers.
181    
182            * Thuban/UI/mainwindow.py (MainWindow.DatabaseManagement): New
183            method to open the database connection management dialog
184            (MainWindow.AddDBLayer): New method to add a layer from a database
185            (_has_dbconnections): New helper function to use for sensitivity
186            (database_management command, layer_add_db command): New commands
187            that call the above new methods.
188            (main_menu): Add the new commands to the menu.
189    
190            * Thuban/Model/postgisdb.py (PostGISConnection.__init__)
191            (PostGISConnection.connect): Establish the actual connection in a
192            separate method and call it in __init__. This makes it easier to
193            override the behavior in test cases
194            (PostGISConnection.BriefDescription): New method to return a brief
195            description for use in dialogs.
196    
197            * test/test_postgis_db.py (NonConnection): DB connection that
198            doesn't actually connect
199            (TestBriefDescription): New class with tests for the new
200            BriefDescription method
201    
202    2003-08-19  Jan-Oliver Wagner <[email protected]>
203    
204            Moved anything from extensions to libraries.
205    
206            * libraries: New.
207    
208            * libraries/ pyprojection, pyshapelib, shapelib, thuban: New.
209    
210            * libraries/pyprojection/ LICENSE, MANIFEST.in, Projection.i,
211            Projection.py, Projection_wrap.c, setup.py, swighelp.txt: These files have
212            been moved here from thuban/extensions/pyprojection/
213            See there in the Attic for the older history.
214    
215            * libraries/pyshapelib/ COPYING, ChangeLog, NEWS, README, dbflib.i,
216            dbflib.py, dbflib_wrap.c, pyshapelib_api.h, pytest.py, setup.py,
217            shapelib.i, shapelib.py, shapelib_wrap.c, shptreemodule.c: These files
218            have been moved here from thuban/extensions/pyshapelib/
219            See there in the Attic for the older history.
220    
221            * libraries/shapelib/ dbfopen.c, shapefil.h, shpopen.c, shptree.c: These
222            files have been moved here from thuban/extensions/shapelib/
223            See there in the Attic for the older history.
224    
225            * libraries/thuban/ bmpdataset.cpp, cpl_mfile.cpp, cpl_mfile.h,
226            gdalwarp.cpp, wxproj.cpp: These files have been moved here from
227            thuban/extensions/thuban/
228            See there in the Attic for the older history.
229    
230            * MANIFEST.in, setup.cfg, setup.py: renamed extensions to libraries.
231    
232            * extensions/thuban/ bmpdataset.cpp, cpl_mfile.cpp, cpl_mfile.h,
233            gdalwarp.cpp, wxproj.cpp: Moved to libraries/thuban.
234    
235            * extensions/shapelib/ dbfopen.c, shapefil.h, shpopen.c, shptree.c:
236            Moved to libraries/shapelib.
237    
238            * extensions/pyshapelib/ COPYING, NEWS, dbflib.py, pytest.py,
239            shapelib.py, README, dbflib_wrap.c, setup.py, shapelib_wrap.c,
240            ChangeLog, dbflib.i, pyshapelib_api.h, shapelib.i, shptreemodule.c:
241            Moved to libraries/pyshapelib.
242    
243            * extensions/pyprojection/ MANIFEST.in, Projection.py, setup.py,
244            LICENSE, Projection.i, Projection_wrap.c, swighelp.txt:
245            Moved to libraries/pyprojection.
246    
247            * extensions/ pyprojection, pyshapelib, shapelib, thuban: Removed.
248    
249            * extensions: Removed.
250    
251    2003-08-19  Bernhard Herzog  <[email protected]>
252    
253            * test/test_viewport.py (ViewPortTest): We don't use the
254            facilities of FileTestMixin so don't derive from it.
255            (TestViewportWithPostGIS): New class with tests for using a
256            viewport on a map with postgis layers.
257    
258    2003-08-19  Bernhard Herzog  <[email protected]>
259    
260            Add the db connection management to the session.
261    
262            * Thuban/Model/session.py (Session.__init__): New instance
263            variable db_connections
264            (Session.AddDBConnection, Session.DBConnections)
265            (Session.HasDBConnections, Session.CanRemoveDBConnection)
266            (Session.RemoveDBConnection): New methods to manage and query the
267            db connections managed by the session
268            (Session.OpenDBShapeStore): New method to open a shapestore from a
269            db connection
270    
271            * Thuban/Model/messages.py (DBCONN_REMOVED, DBCONN_ADDED): New
272            messages for the db connection handling in the session
273    
274            * test/test_postgis_session.py: New. test cases for the session's
275            db connection handling with postgis connections
276    
277    2003-08-19  Bernhard Herzog  <[email protected]>
278    
279            Add very basic postgis database support and the corresponding test
280            cases. The test cases require a PostgreSQL + postgis installation
281            but no existing database. The database will be created
282            automatically by the test cases
283    
284            * test/README: Add note about skipped tests and the requirements
285            of the postgis tests.
286    
287            * Thuban/Model/postgisdb.py: New. Basic postgis database support.
288    
289            * test/test_postgis_db.py: New. Test cases for the postgis
290            support.
291    
292            * Thuban/Model/wellknowntext.py: New. Parser for well-known-text
293            format
294    
295            * test/test_wellknowntext.py: New. Test cases for the
296            wellknowntext parser
297    
298            * test/postgissupport.py: New. Support module for tests involving
299            a postgis database.
300    
301            * test/support.py (execute_as_testsuite): Shut down the postmaster
302            if it's still running after the tests
303    
304            * Thuban/Model/data.py (RAW_WKT): New constant for raw data in
305            well known text format
306    
307    2003-08-19  Jan-Oliver Wagner <[email protected]>
308    
309            * Examples/simple_extensions/hello_world.py: New. Raises a Hello World
310            message dialog.
311    
312    2003-08-18  Bernhard Herzog  <[email protected]>
313    
314            * test/support.py (ThubanTestResult.printErrors): Indent the
315            reason for the skips in the output to make it a bit more readable.
316            (execute_as_testsuite): New helper function to run a test suite
317            and print some more information.
318            (run_tests): Use execute_as_testsuite to run the tests
319    
320            * test/runtests.py (main): Use execute_as_testsuite to run the
321            tests
322    
323    2003-08-18  Bernhard Herzog  <[email protected]>
324    
325            Fix some bugs in Thuban and the test suite that were uncovered by
326            changes introduced in Python 2.3:
327    
328            * Thuban/Model/table.py (DBFTable.__init__): Make sure the
329            filename is an absolute name
330    
331            * Thuban/Model/layer.py (RasterLayer.__init__): Make sure the
332            filename is an absolute name
333    
334            * test/test_save.py (SaveSessionTest.testRasterLayer): Use a
335            unique filename to save to and use the correct relative filename
336            in the expected output.
337            (SaveSessionTest.test_dbf_table): Use the correct relative
338            filename in the expected output.
339    
340            * test/test_layer.py (TestLayer.test_raster_layer): Update the
341            test to check whether the filename is absolute.
342    
343    2003-08-18  Jan-Oliver Wagner <[email protected]>
344    
345            * Thuban/UI/about.py (About.__init__): Added Silke Reimer.
346    
347    2003-08-15  Bernhard Herzog  <[email protected]>
348    
349            Change the way shapes are returned by a shape store. The
350            ShapesInRegion method returns an iterator over actual shape
351            objects instead of a list of shape ids.
352    
353            * Thuban/Model/data.py (ShapefileShape.ShapeID): New. Return shape
354            id.
355            (ShapefileStore.ShapesInRegion): Return an iterator over the
356            shapes which yields shape objects instead of returning a list of
357            shape ids
358            (ShapefileStore.AllShapes): New. Return an iterator over all
359            shapes in the shape store
360            (DerivedShapeStore.AllShapes): New. Like in ShapefileStore
361    
362            * Thuban/Model/layer.py (Layer.ShapesInRegion): Update
363            doc-string.
364    
365            * Thuban/UI/baserenderer.py
366            (BaseRenderer.layer_ids, BaseRenderer.layer_shapes): Rename to
367            layer_shapes and make it return an iterator containg shapes
368            instead of a list of ids.
369            (BaseRenderer.draw_shape_layer): Update doc-string; Adapt to
370            layer_shapes() change
371    
372            * Thuban/UI/renderer.py (ScreenRenderer.layer_ids)
373            (ScreenRenderer.layer_shapes): Rename as in BaseRenderer
374    
375            * Thuban/UI/viewport.py (ViewPort._find_shape_in_layer): Adapt to
376            changes in the ShapesInRegion return value.
377            (ViewPort._get_hit_tester): Remove commented out code
378    
379            * test/mockgeo.py (SimpleShapeStore.ShapesInRegion): Adapt to the
380            new return value.
381            (SimpleShapeStore.AllShapes): New. Implement this method too.
382    
383            * test/test_layer.py (TestLayer.test_arc_layer)
384            (TestLayer.test_polygon_layer, TestLayer.test_point_layer)
385            (TestLayer.test_point_layer_with_projection)
386            (TestLayer.test_derived_store): Adapt to changes in the
387            ShapesInRegion return value.
388    
389            * test/test_shapefilestore.py
390            (TestShapefileStoreArc.test_shapes_in_region)
391            (TestShapefileStorePolygon.test_shapes_in_region)
392            (TestShapefileStorePoint.test_shapes_in_region): Adapt to changes
393            in the ShapesInRegion return value.
394            (TestShapefileStorePoint.test_all_shapes)
395            (TestShapefileStoreArc.test_shape_shapeid): New tests for the new
396            methods
397    
398            * test/test_derivedshapestore.py
399            (TestDerivedShapeStore.test_shapes_in_region): Adapt to changes in
400            the ShapesInRegion return value.
401            (TestDerivedShapeStore.test_all_shapes)
402            (TestDerivedShapeStore.test_shape_shapeid): New tests for the new
403            methods
404    
405    2003-08-15  Bernhard Herzog  <[email protected]>
406    
407            Make the renderers deal correctly with raw vs. python level
408            representation of shape geometries
409    
410            * Thuban/UI/baserenderer.py (BaseRenderer.low_level_renderer):
411            Return a flag useraw in addition to the callable and the parameter
412            to indicate whether the callable can deal with the raw shape data
413            or uses the higher level python lists of coordinates. The callable
414            now should accept either the raw data or the return value of the
415            shape's Points() method.
416            (BaseRenderer.draw_shape_layer): Adapt to the low_level_renderer
417            change
418            (BaseRenderer.projected_points): Instead of the shape id use the
419            points list as parameter.
420            (BaseRenderer.draw_polygon_shape, BaseRenderer.draw_arc_shape)
421            (BaseRenderer.draw_point_shape): Adapt to projected_points()
422            change and accept the points list as parameter instead of the
423            shape id.
424    
425            * Thuban/UI/renderer.py (MapRenderer.low_level_renderer): Return
426            the useraw flag as required by the BaseRenderer
427            (ScreenRenderer.draw_shape_layer): Adapt to low-level renderer
428            changes.
429    
430            * test/test_baserenderer.py
431            (TestBaseRenderer.test_point_with_classification): New test for
432            rendering a map with classifications.
433    
434    2003-08-15  Bernhard Herzog  <[email protected]>
435    
436            * Thuban/UI/viewport.py (ViewPort.find_shape_at)
437            (ViewPort._find_shape_in_layer, ViewPort._find_shape_in_layer)
438            (ViewPort._get_hit_tester, ViewPort.projected_points)
439            (ViewPort._hit_point, ViewPort._hit_arc, ViewPort._hit_polygon)
440            (ViewPort._find_label_at): Split the find_shape_at method into
441            several new methods and use the functions in the hit-test module.
442    
443            * Thuban/UI/hittest.py: New module with Python-level hit-testing
444            functions
445    
446            * test/test_hittest.py: New. Test for the new hittest module
447    
448    2003-08-15  Bernhard Herzog  <[email protected]>
449    
450            * Thuban/Model/layer.py (Layer.ShapesInRegion): Apply the layer
451            projection to all corners of the bounding box to get a better
452            approximation of the projected bounding box
453    
454            * test/test_layer.py (TestLayer.test_point_layer_with_projection):
455            New. Test coordinate handling of a layer with a projection.
456            Catches the bug fixed in Layer.ShapesInRegion
457    
458    2003-08-15  Bernhard Herzog  <[email protected]>
459    
460            Move some of the mock objects in test_baserenderer into their own
461            module so they can easily be used from other tests
462    
463            * test/mockgeo.py: New test helper module with some mock objects
464            for geometry related things like shapes, shapestores and
465            projections.
466    
467            * test/test_mockgeo.py: New. Tests for the new helper module
468    
469            * test/test_baserenderer.py: Some of the mock-objects are in
470            mockgeo now.
471    
472    2003-08-12  Jan-Oliver Wagner <[email protected]>
473    
474            * Thuban/UI/about.py (About.__init__): Added Bj�rn Broscheit.
475    
476  2003-08-12  Bernhard Herzog  <[email protected]>  2003-08-12  Bernhard Herzog  <[email protected]>
477    
478          * po/de.po: New. German translations by Bjoern Broscheit          * po/de.po: New. German translations by Bjoern Broscheit

Legend:
Removed from v.1582  
changed lines
  Added in v.1647

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26