/[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 1619 by jan, Tue Aug 19 22:19:07 2003 UTC revision 1672 by bh, Thu Aug 28 10:30:55 2003 UTC
# Line 1  Line 1 
1    2003-08-28  Bernhard Herzog  <[email protected]>
2    
3            * Thuban/version.py (longversion): Update to 0.9
4    
5            * Thuban/UI/mainwindow.py: Remove some unused imports
6    
7            * README: Add section about required additional software. Add date
8            and revision CVS keywords
9    
10            * HOWTO-Release: Add item about the translations. Add date and
11            revision CVs keywords and change formatting to match README a bit
12            better
13    
14            * po/de.po: Update for 0.9
15    
16            * test/README: Tweak the wording a little because many tests are
17            not really unittest.
18    
19    2003-08-27  Bernhard Herzog  <[email protected]>
20    
21            As preparation for the 0.9 release, switch thuban files to a
22            non-dev namespace
23    
24            * Thuban/Model/save.py (SessionSaver.write_session): Write files
25            with the http://thuban.intevation.org/dtds/thuban-0.9.dtd
26            namespace
27    
28            * Thuban/Model/load.py (SessionLoader.__init__): Accept the
29            http://thuban.intevation.org/dtds/thuban-0.9.dtd namespace too
30    
31            * test/test_save.py (SaveSessionTest.dtd)
32            (SaveSessionTest.testEmptySession)
33            (SaveSessionTest.testSingleLayer)
34            (SaveSessionTest.testLayerProjection)
35            (SaveSessionTest.testRasterLayer)
36            (SaveSessionTest.testClassifiedLayer)
37            (SaveSessionTest.test_dbf_table)
38            (SaveSessionTest.test_joined_table)
39            (SaveSessionTest.test_save_postgis): Update for new namespace
40    
41            * test/test_load.py (LoadSessionTest.dtd, TestSingleLayer)
42            (TestLayerVisibility.file_contents, TestLabels.file_contents)
43            (TestLayerProjection.file_contents)
44            (TestRasterLayer.file_contents, TestJoinedTable.file_contents)
45            (TestPostGISLayer.file_contents)
46            (TestPostGISLayerPassword.file_contents)
47            (TestLoadError.file_contents, TestLoadError.test): Update for new
48            namespace
49    
50    2003-08-27  Bernhard Herzog  <[email protected]>
51    
52            Make the table interface distinguish between row ids (an integer
53            that uniquely identifies a row) and row ordinals (a simple row
54            count from 0 to NumRows() - 1)
55    
56            * Thuban/Model/postgisdb.py (PostGISTable.RowIdToOrdinal)
57            (PostGISTable.RowOrdinalToId): New methods to conver between row
58            ids and row ordinals
59            (PostGISTable.ReadRowAsDict, PostGISTable.ReadValue): New keyword
60            parameter row_is_ordinal to indicate whether the row parameter is
61            the row id or the ordinal
62    
63            * Thuban/Model/transientdb.py (TransientTableBase.RowIdToOrdinal)
64            (TransientTableBase.RowOrdinalToId)
65            (AutoTransientTable.RowIdToOrdinal)
66            (AutoTransientTable.RowOrdinalToId): Same new methods as in
67            PostGISTable.
68            (TransientTableBase.ReadRowAsDict, TransientTableBase.ReadValue)
69            (AutoTransientTable.ReadRowAsDict, AutoTransientTable.ReadValue):
70            Same new parameter as in PostGISTable.
71    
72            * Thuban/Model/table.py (DBFTable.RowIdToOrdinal)
73            (DBFTable.RowOrdinalToId, MemoryTable.RowIdToOrdinal)
74            (MemoryTable.RowOrdinalToId): Same new methods as in PostGISTable.
75            (DBFTable.ReadValue, DBFTable.ReadRowAsDict)
76            (MemoryTable.ReadValue, MemoryTable.ReadRowAsDict): Same new
77            parameter as in PostGISTable.
78    
79            * Thuban/UI/tableview.py (DataTable.RowIdToOrdinal)
80            (DataTable.RowOrdinalToId): New methods to convert between row ids
81            and row ordinals.
82            (TableGrid.SelectRowById): New method to select a row based on its
83            ID as opposed to its ordinal
84            (DataTable.GetValue, TableGrid.OnRangeSelect)
85            (TableGrid.OnSelectCell, LayerTableGrid.select_shapes)
86            (QueryTableFrame.OnQuery, QueryTableFrame.get_selected)
87            (LayerTableFrame.__init__): Convert between row ids and row
88            ordinals as appropriate
89    
90            * test/postgissupport.py (PostGISDatabase.__init__): Add
91            doc-string.
92            (PostGISDatabase.initdb): The optional third item in a tuple in
93            tables is now a (key, value) list with additional arguments to
94            pass to upload_shapefile
95            (upload_shapefile): New parameter gid_offset to allow gids that
96            are not the same as the shapeids in the shapefile
97            (PostgreSQLServer.get_default_static_data_db): Use the new
98            gid_offset to make the gids in landmarks 1000 higher than the
99            shapeids in the shapefile
100    
101            * test/test_viewport.py
102            (TestViewportWithPostGIS.test_find_shape_at_point): Adapt to the
103            new shapeids in the landmarks table
104    
105            * test/test_transientdb.py
106            (TestTransientTable.run_iceland_political_tests)
107            (TestTransientTable.test_transient_joined_table): Add tests for
108            the new table methods and new keywords arguments.
109    
110            * test/test_postgis_db.py
111            (TestPostGISTable.test_read_row_as_dict_row_count_mode)
112            (TestPostGISTable.test_read_value_row_count_mode)
113            (TestPostGISTable.test_row_id_to_ordinal)
114            (TestPostGISTable.test_row_oridnal_to_id): New test for the new
115            table methods and the new arguments
116            (TestPostGISShapestorePoint.test_shapes_in_region)
117            (TestPostGISShapestorePoint.test_shape_raw_data)
118            (TestPostGISShapestorePoint.test_shape_points)
119            (TestPostGISShapestorePoint.test_shape_shapeid)
120            (TestPostGISShapestorePoint.test_all_shapes)
121            (TestPostGISTable.test_simple_query)
122            (TestPostGISTable.test_simple_query)
123            (TestPostGISTable.test_simple_query)
124            (TestPostGISTable.test_read_value)
125            (TestPostGISTable.test_read_row_as_dict): Adapt to the new
126            shapeids in the landmarks table
127    
128            * test/test_memory_table.py
129            (TestMemoryTable.test_read_row_as_dict_row_count_mode)
130            (TestMemoryTable.test_read_value_row_count_mode)
131            (TestMemoryTable.test_row_id_to_ordinal)
132            (TestMemoryTable.test_row_oridnal_to_id): New test for the new
133            table methods and the new arguments
134    
135            * test/test_dbf_table.py
136            (TestDBFTable.test_read_row_as_dict_row_count_mode)
137            (TestDBFTable.test_read_value_row_count_mode)
138            (TestDBFTable.test_row_id_to_ordinal)
139            (TestDBFTable.test_row_oridnal_to_id): New test for the new table
140            methods and the new arguments
141    
142    2003-08-26  Bernhard Herzog  <[email protected]>
143    
144            * Thuban/Model/postgisdb.py (PostGISShapeStore.BoundingBox): Use a
145            more postgis specific but much faster method to get the bounding
146            box
147    
148    2003-08-26  Bernhard Herzog  <[email protected]>
149    
150            * Thuban/Model/postgisdb.py (PostGISTable.Title)
151            (PostGISShapeStore.AllShapes): Add these missing methods.
152            (PostGISShapeStore.ShapesInRegion): No need to raise
153            StopIteration. We can simply return
154    
155            * test/test_postgis_db.py (TestPostGISTable.test_title)
156            (TestPostGISShapestorePoint.test_all_shapes): New tests for the
157            new methods
158    
159    2003-08-25  Bernhard Herzog  <[email protected]>
160    
161            * Thuban/Model/postgisdb.py (shapetype_map): Add MUTLIPOLYGON.
162    
163            * test/test_postgis_db.py (PolygonTests): New class containing
164            those tests from TestPostGISShapestorePolygon that can also be
165            used to test MUTLIPOLYGON tables
166            (TestPostGISShapestorePolygon): Most tests are now in PolygonTests
167            so derive from that
168            (TestPostGISShapestoreMultiPolygon): New class with tests for
169            MUTLIPOLYGON tables
170    
171            * test/postgissupport.py (PostGISDatabase.initdb): Allow the
172            tables argument to have tuples with three items to override the
173            WKT type used.
174            (PostgreSQLServer.get_default_static_data_db): Use the above to
175            create a polygon table with MUTLIPOLYGONs
176            (point_to_wkt, coords_to_point, polygon_to_wkt, coords_to_polygon)
177            (arc_to_wkt, coords_to_multilinestring): Rename from *_to_wkt to
178            coords_to*
179            (coords_to_multipolygon): New. Convert to MUTLIPOLYGON
180            (wkt_converter): New. Map WKT types to converters
181            (upload_shapefile): New parameter force_wkt_type to use a
182            different WKT type than the default
183    
184    2003-08-25  Bernhard Herzog  <[email protected]>
185    
186            * Thuban/UI/application.py
187            (ThubanApplication.run_db_param_dialog): New. Suitable as a
188            db_connection_callback. Main difference is that the dialog run
189            from this method doesn't have a parent so it can be used even when
190            there is no main window
191            (ThubanApplication.OpenSession): Use self.run_db_param_dialog if
192            no db_connection_callback was given. This way the dialog pops up
193            even when the .thuban file was given as a command line parameter.
194    
195    2003-08-25  Bernhard Herzog  <[email protected]>
196    
197            * Thuban/UI/view.py (MapCanvas.OnLeftUp): Release the the mouse
198            before calling MouseLeftUp. MouseLeftUp may pop up modal dialogs
199            which leads to an effectively frozen X session because the user
200            can only interact with the dialog but the mouse is still grabbed
201            by the canvas.
202            Also, call the tool's Hide method before MouseLeftUp because
203            MouseLeftUp may change the tool's coordinates.
204    
205    2003-08-25  Bernhard Herzog  <[email protected]>
206    
207            * Thuban/UI/application.py (ThubanApplication.OpenSession): Catch
208            LoadCancelled exceptions and handle them by returning immediately.
209    
210    2003-08-25  Bernhard Herzog  <[email protected]>
211    
212            GUI part of loading sessions with postgis connections which may
213            require user interaction to get passwords or updated parameters
214    
215            * Thuban/UI/dbdialog.py (DBDialog): Reimplement to make it look a
216            bit nucer and be more generic.
217            (DBFrame.OnAdd): Adapt to new DBDialog interface
218    
219            * Thuban/UI/application.py (ThubanApplication.OpenSession): New
220            optional parameter db_connection_callback which is passed to
221            load_session.
222    
223            * Thuban/UI/mainwindow.py (MainWindow.run_db_param_dialog): New.
224            Suitable as a db_connection_callback
225            (MainWindow.OpenSession): Use self.run_db_param_dialog as the
226            db_connection_callback of the application's OpenSession method
227    
228    
229    2003-08-25  Bernhard Herzog  <[email protected]>
230    
231            Basic loading of sessions containing postgis connections:
232    
233            * Thuban/Model/load.py (LoadError): Add doc-string
234            (LoadCancelled): New exception class to indicate a cancelled load
235            (SessionLoader.__init__): Add the db_connection_callback parameter
236            which will be used by the loader to get updated parameters and a
237            password for a database connection
238            (SessionLoader.__init__): Add the new XML elements to the
239            dispatchers dictionary
240            (SessionLoader.check_attrs): Two new conversions, ascii to convert
241            to a byte-string object and idref as a generic id reference
242            (SessionLoader.start_dbconnection)
243            (SessionLoader.start_dbshapesource): New. Handlers for the new XML
244            elements
245            (load_session): Add the db_connection_callback to pass through the
246            SessionLoader
247    
248            * test/test_load.py (TestPostGISLayer, TestPostGISLayerPassword):
249            New classes to test loading of sessions with postgis database
250            connections.
251    
252    2003-08-25  Bernhard Herzog  <[email protected]>
253    
254            * Thuban/UI/mainwindow.py (__ThubanVersion__): Remove this and
255            replace it and the comment with __BuildDate__ by the Source: and
256            Id: cvs keywords as used in the other files.
257    
258    2003-08-25  Bernhard Herzog  <[email protected]>
259    
260            * Thuban/Model/load.py (SessionLoader.check_attrs): Raise a
261            LoadError when a required attribute is missing. The code used to
262            be commented out for some reason, but probably should have been
263            active.
264    
265            * test/test_load.py (TestLoadError.test): Test the message in the
266            LoadError too to make sure it really is about the missing
267            attribute
268    
269    2003-08-22  Bernhard Herzog  <[email protected]>
270    
271            * test/test_save.py (SaveSessionTest.test_dbf_table)
272            (SaveSessionTest.test_joined_table): Add XML validation tests.
273    
274    2003-08-22  Bernhard Herzog  <[email protected]>
275    
276            Implement saving a session with a postgis connection
277    
278            * Resources/XML/thuban-0.9.dtd (dbconnection, dbshapesource) New
279            elements for database connections and shapestores using db
280            connections
281            (session): Add the dbconnections to the content model
282    
283            * Thuban/Model/save.py (SessionSaver.write_db_connections): New.
284            Write the db connections
285            (SessionSaver.write_session): Call write_db_connections to write
286            the connection before the data sources
287            (SessionSaver.write_data_containers): Handle postgis shapestores
288    
289            * test/test_save.py (SaveSessionTest.thubanids)
290            (SaveSessionTest.thubanidrefs): Update for new DTD
291            (SaveSessionTest.test_save_postgis): New. Test saving a session
292            with postgis connections
293    
294            * Thuban/Model/postgisdb.py (PostGISTable.DBConnection)
295            (PostGISTable.TableName): New accessor methods for the connection
296            and table name
297    
298            * test/test_postgis_db.py (TestPostGISTable.test_dbconn)
299            (TestPostGISTable.test_dbname): New methods to test the new
300            PostGISConnection methods
301    
302    2003-08-22  Bernhard Herzog  <[email protected]>
303    
304            * Thuban/Model/postgisdb.py (ConnectionError): New exception class
305            for exceptions occurring when establishing a Database connection
306            (PostGISConnection.connect): Catch psycopg.OperationalError during
307            connects and raise ConnectionError.
308    
309            * test/test_postgis_db.py (TestPostgisDBExceptions): New class for
310            tests for database exceptions
311    
312    2003-08-22  Bernhard Herzog  <[email protected]>
313    
314            Prepare the test suite for tests with required authentication
315    
316            * test/postgissupport.py (PostgreSQLServer.__init__): Add instance
317            variables with two predefined users/passwords, one for the admin
318            and one for a non-privileged user.
319            (PostgreSQLServer.createdb): Pass the admin name to initdb and add
320            the non-privileged user to the database and set the admin password
321            (PostgreSQLServer.wait_for_postmaster): Use the admin user name.
322            Better error reporting
323            (PostgreSQLServer.connection_params)
324            (PostgreSQLServer.connection_string): New methods to return
325            information about how to connect to the server
326            (PostgreSQLServer.execute_sql): New. Convenience method to execute
327            SQL statements
328            (PostgreSQLServer.require_authentication): Toggle whether the
329            server requires authentication
330            (PostgreSQLServer.create_user, PostgreSQLServer.alter_user): New.
331            Add or alter users
332            (PostGISDatabase.initdb): Pass the admin name one the
333            subprocesses' command lines. Grant select rights on
334            geometry_columns to everybody.
335            (upload_shapefile): Use the admin name and password when
336            connecting. Grant select rights on the new table to everybody.
337    
338            * test/test_viewport.py (TestViewportWithPostGIS.setUp): Use the
339            server's new methods to get the connection parameters.
340    
341            * test/test_postgis_session.py (TestSessionWithPostGIS.setUp)
342            (TestSessionWithPostGIS.test_remove_dbconn_exception): Use the
343            server's new methods to get the connection parameters.
344    
345            * test/test_postgis_db.py
346            (TestPostGISConnection.test_gis_tables_empty)
347            (TestPostGISConnection.test_gis_tables_non_empty)
348            (PostGISStaticTests.setUp): Use the server's new methods to get
349            the connection parameters.
350    
351    2003-08-22  Bernhard Herzog  <[email protected]>
352    
353            * Thuban/UI/about.py (About.__init__): Add the psycopg version.
354    
355            * Thuban/version.py: Add psycopg version
356    
357            * Thuban/Model/postgisdb.py (psycopg_version): New. Return the
358            version of the psycopg module
359    
360    2003-08-22  Bernhard Herzog  <[email protected]>
361    
362            * Thuban/UI/dbdialog.py (DBPwdDlg): Removed because it's not used.
363            (DBFrame.OnEdit): Removed because it's not used and wouldn't work
364            at the moment. The functionality should probably be implemented
365            some time, though.
366            (DBFrame.OnRemove): Display a message if the connection can't be
367            removed because it's still in use.
368    
369    2003-08-22  Jan-Oliver Wagner <[email protected]>
370    
371            * Thuban/UI/about.py (About.__init__): split up the huge about
372            text into elements/lists for easier translation. This fixes bug
373            https://intevation.de/rt/webrt?serial_num=2058
374            Also, made some forgotten string available for the i18n.
375    
376    2003-08-21  Bernhard Herzog  <[email protected]>
377    
378            Make postgis support really optional including insensitive menu
379            items.
380    
381            * Thuban/Model/postgisdb.py (has_postgis_support): New. Return
382            whether the postgis is supported.
383    
384            * Thuban/UI/dbdialog.py: Put the psycopg import into try..except
385            to make postgis support optional
386    
387            * Thuban/UI/mainwindow.py (_has_postgis_support): New. Context
388            version of Thuban.Model.postgisdb.has_postgis_support
389            (database_management command): Make it only sensitive if postgis
390            is supported.
391    
392    2003-08-21  Jan-Oliver Wagner <[email protected]>
393    
394            * Doc/manual/thuban-manual.xml: Added CVS revision for rev-history.
395            (section Adding and Removing Layers): Added text and described
396            multi-selection.
397            (chapter Extensions): New.
398    
399    2003-08-21  Jan-Oliver Wagner <[email protected]>
400    
401            * Thuban/UI/mainwindow.py (MainWindow.AddLayer): Changed dialog
402            settings to allow multiple files to load into the map.
403            Also reduced selection to *.shp as a default.
404    
405    2003-08-20  Bernhard Herzog  <[email protected]>
406    
407            Add dialogs and commands to open database connections and add
408            database layers.
409    
410            * Thuban/UI/mainwindow.py (MainWindow.DatabaseManagement): New
411            method to open the database connection management dialog
412            (MainWindow.AddDBLayer): New method to add a layer from a database
413            (_has_dbconnections): New helper function to use for sensitivity
414            (database_management command, layer_add_db command): New commands
415            that call the above new methods.
416            (main_menu): Add the new commands to the menu.
417    
418            * Thuban/Model/postgisdb.py (PostGISConnection.__init__)
419            (PostGISConnection.connect): Establish the actual connection in a
420            separate method and call it in __init__. This makes it easier to
421            override the behavior in test cases
422            (PostGISConnection.BriefDescription): New method to return a brief
423            description for use in dialogs.
424    
425            * test/test_postgis_db.py (NonConnection): DB connection that
426            doesn't actually connect
427            (TestBriefDescription): New class with tests for the new
428            BriefDescription method
429    
430  2003-08-19  Jan-Oliver Wagner <[email protected]>  2003-08-19  Jan-Oliver Wagner <[email protected]>
431    
432          Moved anything from extensions to libraries.          Moved anything from extensions to libraries.

Legend:
Removed from v.1619  
changed lines
  Added in v.1672

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26