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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26