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

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26