/[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 1633 by bh, Fri Aug 22 16:04:27 2003 UTC revision 1783 by bh, Mon Oct 6 17:32:31 2003 UTC
# Line 1  Line 1 
1    2003-10-06  Bernhard Herzog  <[email protected]>
2    
3            Handle the title changes in a proper MVC way.
4    
5            * Thuban/UI/mainwindow.py (MainWindow.__init__): Subscribe to the
6            canvas' TITLE_CHANGED messages
7            (MainWindow.update_title): New. Update the main window's title
8            (MainWindow.__SetTitle): Removed. Use update_title instead.
9            (MainWindow.SetMap): Use update_title instead of __SetTitle
10            (MainWindow.RenameMap): Do change the window title explicitly
11            here. That's handled in a proper MVC way now.
12            (MainWindow.title_changed): New. Subscriber for the TITLE_CHANGED
13            messages
14    
15            * Thuban/Lib/connector.py (Conduit): New class to help classes
16            that forward messages
17    
18            * Thuban/UI/viewport.py: Forward the map's TITLE_CHANGED messages
19            (ViewPort): Derive from Conduit instead of Publisher
20            (ViewPort.Subscribe, ViewPort.Unsubscribe): Use the new base class
21            when calling the inherited versions
22            (ViewPort._subscribe_map, ViewPort._unsubscribe_map): New helper
23            methods to subscribe and unsubscribe map messages
24            (ViewPort.SetMap, ViewPort.Destroy): Use the new helper methods to
25            handle the map subscriptions
26            (ViewPort.Map, ViewPort.map_projection_changed)
27            (ViewPort.layer_projection_changed): Add or update doc-strings
28    
29            * test/test_connector.py (TestPublisher.test_issue_simple): Fix
30            typo
31            (MyConduit): Helper class for the Conduit test.
32            (TestConduit): Test cases for Conduit
33    
34            * test/test_connector.py: Use support.run_tests as main.
35    
36            * test/test_viewport.py (ViewPortTest.setUp): Also subscribe to
37            the TITLE_CHANGED messages
38            (ViewPortTest.test_forwarding_title_changed): New test to check
39            whether the viewport forwards the map's TITLE_CHANGED messages
40            (TestViewportWithPostGIS.tearDown): Call the map's Destroy method
41            after the port's because the latter may require a still functional
42            map.
43    
44    2003-10-06  Bernhard Herzog  <[email protected]>
45    
46            * Thuban/UI/application.py (ThubanApplication.maps_changed): Add
47            doc-string
48    
49    2003-10-06  Bernhard Herzog  <[email protected]>
50    
51            * test/test_viewport.py (ViewPortTest.setUp)
52            (SimpleViewPortTest.test_init_with_size): Move the test for the
53            initial size as a constructor parameter from ViewPortTest.setUp
54            method to a new separate test in SimpleViewPortTest.
55    
56    2003-10-06  Bernhard Herzog  <[email protected]>
57    
58            * test/test_viewport.py (MockView): New class derived from
59            ViewPort with a mock implementation of GetTextExtent to be used in
60            the test cases
61            (ViewPortTest.setUp): Use MockView instead of ViewPort
62    
63            * Thuban/UI/viewport.py (ViewPort.GetTextExtent): Turn this method
64            into what would be a "pure virtual function" in C++: always raise
65            NotImplementedError. Mock implementations for test cases don't
66            belong into the real code
67    
68    2003-10-02  Bernhard Herzog  <[email protected]>
69    
70            * test/test_layer.py (TestLayer.test_empty_layer): Explicitly
71            close the dbf file we create so that it's contents have been
72            written properly.
73    
74            * libraries/shapelib/shptree.c, libraries/shapelib/shpopen.c,
75            libraries/shapelib/shapefil.h, libraries/shapelib/dbfopen.c:
76            Update to shapelib 1.2.10
77    
78    2003-10-01  Jan-Oliver Wagner <[email protected]>
79    
80            * Thuban/UI/tree.py, Thuban/UI/main.py: Remove the #! line as
81            it annoys lintian which warns about these files not being
82            executable. The #! isn't necessary here since if you absolutely
83            must execute them you can always say "python <filename>".
84    
85    2003-09-26  Bernhard Herzog  <[email protected]>
86    
87            * Thuban/Model/classgen.py (GenQuantiles0): Removed since it's
88            only used in GREAT-ER but not used in Thuban itself. When GREAT-ER
89            is ported to a newer the import will fail, so it should be noticed
90            immediately that this function is gone.
91            Fixes RT#1919
92    
93    2003-09-26  Bernhard Herzog  <[email protected]>
94    
95            Add a DTD for the projection files and make thuban write valid
96            projection files
97    
98            * Resources/XML/projfile.dtd: New. DTD for thuban's projection
99            files
100    
101            * Thuban/Model/resource.py (ProjFileSaver.write): Use
102            'projectionlist' as the name in the document type declaration so
103            that it matches the element type of the root element.
104    
105            * test/test_proj.py (sample_projfile, sample_projfile2): Use
106            'projectionlist' as the name in the document type declaration just
107            as it is done now in the files thuban would write
108            (sample_projfile, sample_projfile_data): Fix spelling of
109            "Mercator"
110            (TestProjFile.doTestWrite): Validate the written and the expected
111            XML data
112            (TestProjFile): Derive from ValidationTest so that we can run xml
113            validation tests
114    
115    2003-09-24  Bernhard Herzog  <[email protected]>
116    
117            * Thuban/UI/renderer.py (ExportRenderer.render_legend): Do not
118            modify the list returned by map.Layers() in place since it is the
119            actual list of layers used by the map.
120    
121    2003-09-23  Jan-Oliver Wagner <[email protected]>
122    
123            * Doc/manual/thuban-manual.xml: Added subsection to chapter
124            Extensions to describe the extensions coming with the Thuban
125            standard package (gns2shp and importAPR).
126    
127    2003-09-23  Bernhard Herzog  <[email protected]>
128    
129            * libraries/thuban/wxproj.cpp (project_point): if there's an
130            inverse but no forward projection, convert to degrees after
131            applying the inverse projection. Fixes RT#2096
132    
133            * test/test_wxproj.py: New. Test cases for wxproj.so. One test
134            implicitly tests for the fix to RT#2096
135    
136            * test/support.py (FloatComparisonMixin.assertFloatSeqEqual):
137            Check that the sequences have the same lengths
138    
139            * Resources/Projections/defaults.proj (Geographic projection): Use
140            a much more precise value for the to_meter attribute.
141    
142    2003-09-22  Bernhard Herzog  <[email protected]>
143    
144            * test/support.py (initthuban): Make sure to unset the LANG env.
145            var. so that tests that compare translated strings work. Solves RT
146            #2094
147    
148    2003-09-22  Jan-Oliver Wagner <[email protected]>
149    
150            Small improvement of APR import.
151    
152            * Extensions/importAPR/test/test_apr.py (aprTest.test_LClass):
153            Added tests for text-ranges.
154    
155            * Extensions/importAPR/apr.py (APR_LClass.GetThubanRange): Now
156            returns a string object if the range is based on text.
157    
158            * Extensions/importAPR/importAPR.py (import_apr_dialog): Unified
159            range retrieval.
160    
161    2003-09-22  Jan-Oliver Wagner <[email protected]>
162    
163            Initial version of the importAPR extension which is in
164            experimental state.
165    
166            * /Extensions/importAPR/, /Extensions/importAPR/samples/,
167            /Extensions/importAPR/test/: New directories.
168    
169            * /Extensions/importAPR/samples/README: New: Howto load the samples.
170    
171            * /Extensions/importAPR/samples/iceland.apr: New: A sample APR
172            file which refers to the Thuban Iceland demo data.
173    
174            * /Extensions/importAPR/test/README: New: Howto execute the tests.
175    
176            * /Extensions/importAPR/test/test_apr.py: New: Tests for APR classes.
177    
178            * /Extensions/importAPR/apr.py: New: Classes for ArcView Objects
179            as in '.apr'-files.
180    
181            * /Extensions/importAPR/odb.py: New: Classes for generic ArcView
182            ODB Objects as in '.apr', '.avl' and other files.
183    
184            * /Extensions/importAPR/__init__.py: New: Init to make this
185            directory a package.
186    
187            * /Extensions/importAPR/importAPR.py: New: Import a ArcView
188            project file (.apr) and convert it to Thuban.
189    
190    2003-09-22  Jan-Oliver Wagner <[email protected]>
191    
192            * Extensions/gns2shp.gns2shp.py: The main module of gns2shp.
193    
194    2003-09-19  Jan-Oliver Wagner <[email protected]>
195    
196            * Doc/manual/thuban-manual.xml: Extended section 'Installation'
197            with description on RPM installation and RPM binary package
198            creation.
199    
200    2003-09-18  Bernhard Herzog  <[email protected]>
201    
202            * setup.py (data_files): Only add the mo files if the Locales
203            directory actually exists, so that setup.py works with a fresh CVS
204            checkout
205    
206    2003-09-12  Jan-Oliver Wagner <[email protected]>
207    
208            * Examples/simple_extensions/simple_tool.py: bugfix: Tool is now
209            in viewport, not anymore in view
210    
211    2003-09-04  Jan-Oliver Wagner <[email protected]>
212    
213            Introducing first Extension (gns2shp).
214    
215            * Extensions, Extensions/gns2shp, Extensions/gns2shp/test: New.
216    
217            * Extensions/__init__.py: New. init to make this dir a package.
218    
219            * Extensions/gns2shp/__init__.py: New. init to make this dir a package.
220    
221            * Extensions/gns2shp/test/README: New. some info on this test directory.
222    
223            * Extensions/gns2shp/test/ls.txt: New. test data set (Liechtenstein).
224    
225            * Extensions/gns2shp/test/test_gns2shp.py: New. Test for correct creation
226            of Shapefile from GNS text file format
227    
228    2003-09-03  Jan-Oliver Wagner <[email protected]>
229    
230            Fix/workaround for bug #2019:
231            https://intevation.de/rt/webrt?serial_num=2019
232    
233            * Thuban/UI/identifyview.py (IdentifyView.ID_STOP): New.
234            (IdentifyView.__init__): Added another button that allows to
235            stop the identify mode.
236            (IdentifyView.OnStop): New. Stops the identify mode.
237    
238    2003-09-03  Jan-Oliver Wagner <[email protected]>
239    
240            Introducing a new exception dialog that allows to exit the
241            application immediately.
242            This fixes bug #2060: https://intevation.de/rt/webrt?serial_num=2060
243    
244            * Thuban/UI/exceptiondialog.py: New. A special exception dialog.
245    
246            * Thuban/UI/application.py (ThubanApplication.ShowExceptionDialog):
247            Made strings available to translations. Exchanged the simple
248            ScrolledMessageDialog by the new ExceptionDialog.
249    
250    2003-09-01  Bernhard Herzog  <[email protected]>
251    
252            * NEWS: New. Summary of changes and release notes.
253    
254            * MANIFEST.in: Add NEWS
255    
256    2003-09-01  Bernhard Herzog  <[email protected]>
257    
258            * MANIFEST.in: Correct the include statement for the mo-files and
259            include the documentation too.
260    
261            * setup.py (data_files): Add the .mo files
262            (setup call): Up to version 0.9.0
263    
264    2003-09-01  Bernhard Herzog  <[email protected]>
265    
266            * Thuban/UI/dbdialog.py (ChooseDBTableDialog.__init__): Change the
267            parameter list to just parent and session
268            (ChooseDBTableDialog.__set_properties): Removed. Setting the
269            selection of empty list boxes is not allowed (and produces C++
270            assertion errors) and the rest of the setup is better done in
271            __init__ anyway.
272            (ChooseDBTableDialog.OnCancel, ChooseDBTableDialog.OnOK)
273            (ChooseDBTableDialog.OnLBDClick, DBDialog.OnOK): Use the Python
274            builtins True/False for booleans to avoid warnings from wxPython
275    
276            * Thuban/UI/mainwindow.py (MainWindow.AddDBLayer): Adapt to new
277            ChooseDBTableDialog constructor parameters.
278    
279    2003-09-01  Bernhard Herzog  <[email protected]>
280    
281            * Thuban/Model/postgisdb.py
282            (PostGISTable): Extend doc-string
283            (PostGISTable._fetch_table_information): Set the column index
284            correctly, pretending ignored columns don't exist.
285    
286            * test/test_postgis_db.py (TestPostGISIgnoredColumns): New tests
287            for postgis tables with data types not yet supported by thuban.
288    
289    2003-08-29  Bernhard Herzog  <[email protected]>
290    
291            * HOWTO-Release: Tweak item about running the tests.
292    
293    2003-08-29  Jan-Oliver Wagner <[email protected]>
294    
295            * /Doc/manual/thuban-manual.xml: updated to version 1.0pre2.
296    
297    2003-08-29  Bernhard Herzog  <[email protected]>
298    
299            Add some missing parameters to projections. Proj complains about
300            them on windows but for some reason not on Linux.
301    
302            * test/test_save.py (SaveSessionTest.testLayerProjection): Add
303            missing required projection parameters
304    
305            * test/test_proj.py (TestProjFile.test): Add missing required
306            projection parameters
307    
308            * test/test_load_0_8.py (TestLayerProjection.file_contents)
309            (TestLayerProjection.test): Add missing required projection
310            parameters and tests for them
311    
312            * test/test_load.py (TestLayerProjection.file_contents)
313            (TestLayerProjection.test): Add missing required projection
314            parameters and tests for them
315    
316            * test/test_layer.py (TestLayer.test_base_layer): Add missing
317            required projection parameters
318    
319    2003-08-29  Bernhard Herzog  <[email protected]>
320    
321            * libraries/pyprojection/Projection.i: Use pj_get_errno_ref to
322            access the pj_errno because directly accessing pj_errno doesn't
323            work on windows if the proj library is in a DLL
324    
325            * libraries/pyprojection/Projection_wrap.c: Update from Projection.i
326    
327    2003-08-28  Bernhard Herzog  <[email protected]>
328    
329            * test/test_proj.py: Import things from Thuban after calling
330            initthuban
331    
332            * test/test_load.py (LoadSessionTest.filenames): New class
333            variable with the filename attributes to normalize
334            (LoadSessionTest.check_format): Pass self.filenames to
335            sax_eventlist to normalize the filename attributes
336    
337            * test/xmlsupport.py: Add cvs keywords
338            (SaxEventLister.__init__): New parameter filenames which indicates
339            attributes that contain filenames
340            (SaxEventLister.startElementNS): Normalize the filename attributes
341            with os.path.normpath
342            (sax_eventlist): New parameter filenames to pass through to
343            SaxEventLister
344    
345            * test/test_derivedshapestore.py: Make this file callable as a
346            program to execute the tests
347            (TestDerivedShapeStoreExceptions.test_table_with_wrong_size): Bind
348            the session to self.session so that it gets destroyed properly
349    
350            * test/test_layer.py (TestLayer.tearDown): Call the session's
351            Destroy method
352    
353            * test/test_map.py (TestMapBase.tearDown): Destroy self.session
354            too if it exists
355            (TestMapAddLayer.test_add_layer): Bind the session to self.session
356            so that it gets destroyed properly
357    
358            * test/postgissupport.py (reason_for_not_running_tests): Add a
359            test for the existence of popen2.Popen4.
360    
361            * test/test_save.py (SaveSessionTest.tearDown): New. Provide a
362            reliable way to destroy the sessions created in the test cases
363            (SaveSessionTest.test_dbf_table): Bind the session to self.session
364            so that it gets destroyed properly
365            (SaveSessionTest.testLayerProjection): Bind the session to
366            self.session so that it gets destroyed properly
367    
368            * test/test_session.py (UnreferencedTablesTests.tearDown): Make
369            sure that the session is destroyed properly
370    
371            * test/test_shapefilestore.py: Make this callable as a program to
372            execute the tests
373    
374            * test/test_scalebar.py: Remove unnecessary import of _ from
375            Thuban
376    
377            * test/support.py (print_garbage_information): Call initthuban
378            here because it may be called indirectly from test cases that test
379            test support modules which do not use anything from thuban itself
380            (ThubanTestProgram.runTests): Remove unnecessary debug print
381    
382    2003-08-28  Bernhard Herzog  <[email protected]>
383    
384            * Thuban/version.py (longversion): Update to 0.9
385    
386            * Thuban/UI/mainwindow.py: Remove some unused imports
387    
388            * README: Add section about required additional software. Add date
389            and revision CVS keywords
390    
391            * HOWTO-Release: Add item about the translations. Add date and
392            revision CVs keywords and change formatting to match README a bit
393            better
394    
395            * po/de.po: Update for 0.9
396    
397            * test/README: Tweak the wording a little because many tests are
398            not really unittest.
399    
400    2003-08-27  Bernhard Herzog  <[email protected]>
401    
402            As preparation for the 0.9 release, switch thuban files to a
403            non-dev namespace
404    
405            * Thuban/Model/save.py (SessionSaver.write_session): Write files
406            with the http://thuban.intevation.org/dtds/thuban-0.9.dtd
407            namespace
408    
409            * Thuban/Model/load.py (SessionLoader.__init__): Accept the
410            http://thuban.intevation.org/dtds/thuban-0.9.dtd namespace too
411    
412            * test/test_save.py (SaveSessionTest.dtd)
413            (SaveSessionTest.testEmptySession)
414            (SaveSessionTest.testSingleLayer)
415            (SaveSessionTest.testLayerProjection)
416            (SaveSessionTest.testRasterLayer)
417            (SaveSessionTest.testClassifiedLayer)
418            (SaveSessionTest.test_dbf_table)
419            (SaveSessionTest.test_joined_table)
420            (SaveSessionTest.test_save_postgis): Update for new namespace
421    
422            * test/test_load.py (LoadSessionTest.dtd, TestSingleLayer)
423            (TestLayerVisibility.file_contents, TestLabels.file_contents)
424            (TestLayerProjection.file_contents)
425            (TestRasterLayer.file_contents, TestJoinedTable.file_contents)
426            (TestPostGISLayer.file_contents)
427            (TestPostGISLayerPassword.file_contents)
428            (TestLoadError.file_contents, TestLoadError.test): Update for new
429            namespace
430    
431    2003-08-27  Bernhard Herzog  <[email protected]>
432    
433            Make the table interface distinguish between row ids (an integer
434            that uniquely identifies a row) and row ordinals (a simple row
435            count from 0 to NumRows() - 1)
436    
437            * Thuban/Model/postgisdb.py (PostGISTable.RowIdToOrdinal)
438            (PostGISTable.RowOrdinalToId): New methods to conver between row
439            ids and row ordinals
440            (PostGISTable.ReadRowAsDict, PostGISTable.ReadValue): New keyword
441            parameter row_is_ordinal to indicate whether the row parameter is
442            the row id or the ordinal
443    
444            * Thuban/Model/transientdb.py (TransientTableBase.RowIdToOrdinal)
445            (TransientTableBase.RowOrdinalToId)
446            (AutoTransientTable.RowIdToOrdinal)
447            (AutoTransientTable.RowOrdinalToId): Same new methods as in
448            PostGISTable.
449            (TransientTableBase.ReadRowAsDict, TransientTableBase.ReadValue)
450            (AutoTransientTable.ReadRowAsDict, AutoTransientTable.ReadValue):
451            Same new parameter as in PostGISTable.
452    
453            * Thuban/Model/table.py (DBFTable.RowIdToOrdinal)
454            (DBFTable.RowOrdinalToId, MemoryTable.RowIdToOrdinal)
455            (MemoryTable.RowOrdinalToId): Same new methods as in PostGISTable.
456            (DBFTable.ReadValue, DBFTable.ReadRowAsDict)
457            (MemoryTable.ReadValue, MemoryTable.ReadRowAsDict): Same new
458            parameter as in PostGISTable.
459    
460            * Thuban/UI/tableview.py (DataTable.RowIdToOrdinal)
461            (DataTable.RowOrdinalToId): New methods to convert between row ids
462            and row ordinals.
463            (TableGrid.SelectRowById): New method to select a row based on its
464            ID as opposed to its ordinal
465            (DataTable.GetValue, TableGrid.OnRangeSelect)
466            (TableGrid.OnSelectCell, LayerTableGrid.select_shapes)
467            (QueryTableFrame.OnQuery, QueryTableFrame.get_selected)
468            (LayerTableFrame.__init__): Convert between row ids and row
469            ordinals as appropriate
470    
471            * test/postgissupport.py (PostGISDatabase.__init__): Add
472            doc-string.
473            (PostGISDatabase.initdb): The optional third item in a tuple in
474            tables is now a (key, value) list with additional arguments to
475            pass to upload_shapefile
476            (upload_shapefile): New parameter gid_offset to allow gids that
477            are not the same as the shapeids in the shapefile
478            (PostgreSQLServer.get_default_static_data_db): Use the new
479            gid_offset to make the gids in landmarks 1000 higher than the
480            shapeids in the shapefile
481    
482            * test/test_viewport.py
483            (TestViewportWithPostGIS.test_find_shape_at_point): Adapt to the
484            new shapeids in the landmarks table
485    
486            * test/test_transientdb.py
487            (TestTransientTable.run_iceland_political_tests)
488            (TestTransientTable.test_transient_joined_table): Add tests for
489            the new table methods and new keywords arguments.
490    
491            * test/test_postgis_db.py
492            (TestPostGISTable.test_read_row_as_dict_row_count_mode)
493            (TestPostGISTable.test_read_value_row_count_mode)
494            (TestPostGISTable.test_row_id_to_ordinal)
495            (TestPostGISTable.test_row_oridnal_to_id): New test for the new
496            table methods and the new arguments
497            (TestPostGISShapestorePoint.test_shapes_in_region)
498            (TestPostGISShapestorePoint.test_shape_raw_data)
499            (TestPostGISShapestorePoint.test_shape_points)
500            (TestPostGISShapestorePoint.test_shape_shapeid)
501            (TestPostGISShapestorePoint.test_all_shapes)
502            (TestPostGISTable.test_simple_query)
503            (TestPostGISTable.test_simple_query)
504            (TestPostGISTable.test_simple_query)
505            (TestPostGISTable.test_read_value)
506            (TestPostGISTable.test_read_row_as_dict): Adapt to the new
507            shapeids in the landmarks table
508    
509            * test/test_memory_table.py
510            (TestMemoryTable.test_read_row_as_dict_row_count_mode)
511            (TestMemoryTable.test_read_value_row_count_mode)
512            (TestMemoryTable.test_row_id_to_ordinal)
513            (TestMemoryTable.test_row_oridnal_to_id): New test for the new
514            table methods and the new arguments
515    
516            * test/test_dbf_table.py
517            (TestDBFTable.test_read_row_as_dict_row_count_mode)
518            (TestDBFTable.test_read_value_row_count_mode)
519            (TestDBFTable.test_row_id_to_ordinal)
520            (TestDBFTable.test_row_oridnal_to_id): New test for the new table
521            methods and the new arguments
522    
523    2003-08-26  Bernhard Herzog  <[email protected]>
524    
525            * Thuban/Model/postgisdb.py (PostGISShapeStore.BoundingBox): Use a
526            more postgis specific but much faster method to get the bounding
527            box
528    
529    2003-08-26  Bernhard Herzog  <[email protected]>
530    
531            * Thuban/Model/postgisdb.py (PostGISTable.Title)
532            (PostGISShapeStore.AllShapes): Add these missing methods.
533            (PostGISShapeStore.ShapesInRegion): No need to raise
534            StopIteration. We can simply return
535    
536            * test/test_postgis_db.py (TestPostGISTable.test_title)
537            (TestPostGISShapestorePoint.test_all_shapes): New tests for the
538            new methods
539    
540    2003-08-25  Bernhard Herzog  <[email protected]>
541    
542            * Thuban/Model/postgisdb.py (shapetype_map): Add MUTLIPOLYGON.
543    
544            * test/test_postgis_db.py (PolygonTests): New class containing
545            those tests from TestPostGISShapestorePolygon that can also be
546            used to test MUTLIPOLYGON tables
547            (TestPostGISShapestorePolygon): Most tests are now in PolygonTests
548            so derive from that
549            (TestPostGISShapestoreMultiPolygon): New class with tests for
550            MUTLIPOLYGON tables
551    
552            * test/postgissupport.py (PostGISDatabase.initdb): Allow the
553            tables argument to have tuples with three items to override the
554            WKT type used.
555            (PostgreSQLServer.get_default_static_data_db): Use the above to
556            create a polygon table with MUTLIPOLYGONs
557            (point_to_wkt, coords_to_point, polygon_to_wkt, coords_to_polygon)
558            (arc_to_wkt, coords_to_multilinestring): Rename from *_to_wkt to
559            coords_to*
560            (coords_to_multipolygon): New. Convert to MUTLIPOLYGON
561            (wkt_converter): New. Map WKT types to converters
562            (upload_shapefile): New parameter force_wkt_type to use a
563            different WKT type than the default
564    
565    2003-08-25  Bernhard Herzog  <[email protected]>
566    
567            * Thuban/UI/application.py
568            (ThubanApplication.run_db_param_dialog): New. Suitable as a
569            db_connection_callback. Main difference is that the dialog run
570            from this method doesn't have a parent so it can be used even when
571            there is no main window
572            (ThubanApplication.OpenSession): Use self.run_db_param_dialog if
573            no db_connection_callback was given. This way the dialog pops up
574            even when the .thuban file was given as a command line parameter.
575    
576    2003-08-25  Bernhard Herzog  <[email protected]>
577    
578            * Thuban/UI/view.py (MapCanvas.OnLeftUp): Release the the mouse
579            before calling MouseLeftUp. MouseLeftUp may pop up modal dialogs
580            which leads to an effectively frozen X session because the user
581            can only interact with the dialog but the mouse is still grabbed
582            by the canvas.
583            Also, call the tool's Hide method before MouseLeftUp because
584            MouseLeftUp may change the tool's coordinates.
585    
586    2003-08-25  Bernhard Herzog  <[email protected]>
587    
588            * Thuban/UI/application.py (ThubanApplication.OpenSession): Catch
589            LoadCancelled exceptions and handle them by returning immediately.
590    
591    2003-08-25  Bernhard Herzog  <[email protected]>
592    
593            GUI part of loading sessions with postgis connections which may
594            require user interaction to get passwords or updated parameters
595    
596            * Thuban/UI/dbdialog.py (DBDialog): Reimplement to make it look a
597            bit nucer and be more generic.
598            (DBFrame.OnAdd): Adapt to new DBDialog interface
599    
600            * Thuban/UI/application.py (ThubanApplication.OpenSession): New
601            optional parameter db_connection_callback which is passed to
602            load_session.
603    
604            * Thuban/UI/mainwindow.py (MainWindow.run_db_param_dialog): New.
605            Suitable as a db_connection_callback
606            (MainWindow.OpenSession): Use self.run_db_param_dialog as the
607            db_connection_callback of the application's OpenSession method
608    
609    
610    2003-08-25  Bernhard Herzog  <[email protected]>
611    
612            Basic loading of sessions containing postgis connections:
613    
614            * Thuban/Model/load.py (LoadError): Add doc-string
615            (LoadCancelled): New exception class to indicate a cancelled load
616            (SessionLoader.__init__): Add the db_connection_callback parameter
617            which will be used by the loader to get updated parameters and a
618            password for a database connection
619            (SessionLoader.__init__): Add the new XML elements to the
620            dispatchers dictionary
621            (SessionLoader.check_attrs): Two new conversions, ascii to convert
622            to a byte-string object and idref as a generic id reference
623            (SessionLoader.start_dbconnection)
624            (SessionLoader.start_dbshapesource): New. Handlers for the new XML
625            elements
626            (load_session): Add the db_connection_callback to pass through the
627            SessionLoader
628    
629            * test/test_load.py (TestPostGISLayer, TestPostGISLayerPassword):
630            New classes to test loading of sessions with postgis database
631            connections.
632    
633    2003-08-25  Bernhard Herzog  <[email protected]>
634    
635            * Thuban/UI/mainwindow.py (__ThubanVersion__): Remove this and
636            replace it and the comment with __BuildDate__ by the Source: and
637            Id: cvs keywords as used in the other files.
638    
639    2003-08-25  Bernhard Herzog  <[email protected]>
640    
641            * Thuban/Model/load.py (SessionLoader.check_attrs): Raise a
642            LoadError when a required attribute is missing. The code used to
643            be commented out for some reason, but probably should have been
644            active.
645    
646            * test/test_load.py (TestLoadError.test): Test the message in the
647            LoadError too to make sure it really is about the missing
648            attribute
649    
650    2003-08-22  Bernhard Herzog  <[email protected]>
651    
652            * test/test_save.py (SaveSessionTest.test_dbf_table)
653            (SaveSessionTest.test_joined_table): Add XML validation tests.
654    
655    2003-08-22  Bernhard Herzog  <[email protected]>
656    
657            Implement saving a session with a postgis connection
658    
659            * Resources/XML/thuban-0.9.dtd (dbconnection, dbshapesource) New
660            elements for database connections and shapestores using db
661            connections
662            (session): Add the dbconnections to the content model
663    
664            * Thuban/Model/save.py (SessionSaver.write_db_connections): New.
665            Write the db connections
666            (SessionSaver.write_session): Call write_db_connections to write
667            the connection before the data sources
668            (SessionSaver.write_data_containers): Handle postgis shapestores
669    
670            * test/test_save.py (SaveSessionTest.thubanids)
671            (SaveSessionTest.thubanidrefs): Update for new DTD
672            (SaveSessionTest.test_save_postgis): New. Test saving a session
673            with postgis connections
674    
675            * Thuban/Model/postgisdb.py (PostGISTable.DBConnection)
676            (PostGISTable.TableName): New accessor methods for the connection
677            and table name
678    
679            * test/test_postgis_db.py (TestPostGISTable.test_dbconn)
680            (TestPostGISTable.test_dbname): New methods to test the new
681            PostGISConnection methods
682    
683    2003-08-22  Bernhard Herzog  <[email protected]>
684    
685            * Thuban/Model/postgisdb.py (ConnectionError): New exception class
686            for exceptions occurring when establishing a Database connection
687            (PostGISConnection.connect): Catch psycopg.OperationalError during
688            connects and raise ConnectionError.
689    
690            * test/test_postgis_db.py (TestPostgisDBExceptions): New class for
691            tests for database exceptions
692    
693    2003-08-22  Bernhard Herzog  <[email protected]>
694    
695            Prepare the test suite for tests with required authentication
696    
697            * test/postgissupport.py (PostgreSQLServer.__init__): Add instance
698            variables with two predefined users/passwords, one for the admin
699            and one for a non-privileged user.
700            (PostgreSQLServer.createdb): Pass the admin name to initdb and add
701            the non-privileged user to the database and set the admin password
702            (PostgreSQLServer.wait_for_postmaster): Use the admin user name.
703            Better error reporting
704            (PostgreSQLServer.connection_params)
705            (PostgreSQLServer.connection_string): New methods to return
706            information about how to connect to the server
707            (PostgreSQLServer.execute_sql): New. Convenience method to execute
708            SQL statements
709            (PostgreSQLServer.require_authentication): Toggle whether the
710            server requires authentication
711            (PostgreSQLServer.create_user, PostgreSQLServer.alter_user): New.
712            Add or alter users
713            (PostGISDatabase.initdb): Pass the admin name one the
714            subprocesses' command lines. Grant select rights on
715            geometry_columns to everybody.
716            (upload_shapefile): Use the admin name and password when
717            connecting. Grant select rights on the new table to everybody.
718    
719            * test/test_viewport.py (TestViewportWithPostGIS.setUp): Use the
720            server's new methods to get the connection parameters.
721    
722            * test/test_postgis_session.py (TestSessionWithPostGIS.setUp)
723            (TestSessionWithPostGIS.test_remove_dbconn_exception): Use the
724            server's new methods to get the connection parameters.
725    
726            * test/test_postgis_db.py
727            (TestPostGISConnection.test_gis_tables_empty)
728            (TestPostGISConnection.test_gis_tables_non_empty)
729            (PostGISStaticTests.setUp): Use the server's new methods to get
730            the connection parameters.
731    
732  2003-08-22  Bernhard Herzog  <[email protected]>  2003-08-22  Bernhard Herzog  <[email protected]>
733    
734          * Thuban/UI/about.py (About.__init__): Add the psycopg version.          * Thuban/UI/about.py (About.__init__): Add the psycopg version.
# Line 774  Line 1505 
1505    
1506          * Thuban/Model/range.py, Thuban/version.py: Remove the #! line as          * Thuban/Model/range.py, Thuban/version.py: Remove the #! line as
1507          it annoys lintian which warns about these files not being          it annoys lintian which warns about these files not being
1508          executable. The #1 isn't necessary here since if you absolutely          executable. The #! isn't necessary here since if you absolutely
1509          must execute them you can always say "python <filename>".          must execute them you can always say "python <filename>".
1510    
1511          * Thuban/UI/renderer.py (ScreenRenderer.draw_shape_layer): Remove          * Thuban/UI/renderer.py (ScreenRenderer.draw_shape_layer): Remove

Legend:
Removed from v.1633  
changed lines
  Added in v.1783

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26