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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26