/[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 2055 by frank, Fri Feb 6 08:42:03 2004 UTC revision 2238 by jschuengel, Thu Jun 10 12:57:36 2004 UTC
# Line 1  Line 1 
1    2004-06-10  Jan Sch�ngel  <[email protected]>
2    
3            Initial version of new extension "umn_mapserver".  This extension aims
4            to manage configuration for the UMN MapServer application.  This
5            inital version just imports the .map-files and displays all, Thuban is
6            capable of.
7    
8            * Extensions/umn_mapserver, Extensions/umn_mapserver/test: New.
9    
10            * Extensions/umn_mapserver/test/README: New. Describes how to run the
11            tests.
12    
13            * Extensions/umn_mapserver/test/test.map: New. This is a test
14            .map-file for automated tests of the umn_mapserver extension of
15            Thuban.
16    
17            * Extensions/umn_mapserver/test/test_mapserver.py: New. Tests for
18            UMN Mapserver classes.
19    
20            * Extensions/umn_mapserver/__init__.py: New. Init to make this
21            directory a package.
22    
23            * Extensions/umn_mapserver/mapfile.py: New. Classes to represent
24            '.map'-file objects.
25    
26            * Extensions/umn_mapserver/mf_import.py: New. This module extends
27            Thuban with the possibility to handle UMN MapServer mapfiles.
28    
29    2004-06-03  Bernhard Herzog  <[email protected]>
30    
31            * Thuban/Model/layer.py (Layer.TreeInfo): Convert the bounding box
32            to a tuple before using it as arguments to the % operator.  This
33            fixes the formatting issue filed in RT#2239 on 2004-01-13 and
34            reported today on thuban-list by Jan Sch�ngel
35    
36            * test/test_layer.py (TestLayerModification.setUp): Save the
37            filename as an instance variable so we can refer to it in tests
38            (TestLayerModification.test_tree_info): Uncomment this method
39            again and make it work.  This tests for the formatting issue
40            filed in RT#2239 on 2004-01-13
41    
42    2004-05-28  Bernhard Herzog  <[email protected]>
43    
44            * Thuban/UI/baserenderer.py: Fix some typos.
45    
46    2004-05-18  Jan-Oliver Wagner <[email protected]>
47    
48            * Extensions/gns2shp/gns2shp.py (gns2shp): Fixed a bug
49            by increasing a field size.
50    
51    2004-05-17  Bernhard Herzog  <[email protected]>
52    
53            Update to newest shapelib and get rid of Thuban specific
54            extensions, i.e. use the new DBFUpdateHeader instead of our
55            DBFCommit kludge
56    
57            * libraries/shapelib/shpopen.c: Update to version from current
58            shapelib CVS.
59    
60            * libraries/shapelib/shapefil.h: Update to version from current
61            shapelib CVS.
62    
63            * libraries/shapelib/dbfopen.c: Update to version from current
64            shapelib CVS.
65            (DBFCommit): Effectively removed since shapelib itself has
66            DBFUpdateHeader now which is better for what DBFCommit wanted to
67            achieve.  
68            We're now using an unmodified version of dbfopen.
69    
70            * setup.py (extensions): Add the HAVE_UPDATE_HEADER macro with
71            value '1' to the Lib.dbflibc extension.  This simply reflects the
72            shapelib and pyshapelib updates
73    
74    2004-05-16  Jan-Oliver Wagner <[email protected]>
75    
76            Finished introduction of Menu.FindOrInsertMenu.
77    
78            * Extensions/drawshape/drawshape.py: Add the command
79            to the experimental menu additionally to the toolbar.
80    
81            * Extensions/svgexport/svgsaver.py: Use FindOrInsertMenu() instead of
82            finding menu on its own.
83    
84            * Doc/manual/thuban-manual.xml: updated sample file
85            to use FindOrInsertMenu().
86    
87            * Examples/simple_extensions/hello_world.py: Use FindOrInsertMenu()
88            instead of finding menu on its own.
89    
90    2004-05-11  Jan-Oliver Wagner <[email protected]>
91    
92            * test/test_menu.py (MenuTest.test): Added testing
93            of method Menu.FindOrInsertMenu.
94    
95    2004-05-10  Jan-Oliver Wagner <[email protected]>
96    
97            Introduce and use Menu.FindOrInsertMenu.
98    
99            * Thuban/UI/menu.py (Menu.FindOrInsertMenu): New. Find a
100              given menu or, if not found, insert it.
101    
102            * Extensions/bboxdump/bboxdump.py, /Extensions/gns2shp/gns2shp.py,
103            /Extensions/importAPR/importAPR.py, Extensions/profiling/profiling.py,
104            /Extensions/wms/wms.py: Use FindOrInsertMenu() instead of finding
105            menu on its own.
106    
107    2004-05-06  Jan-Oliver Wagner <[email protected]>
108    
109            Introduce a abstract ColorDialog class and remove
110            and outdated file.
111    
112            * Thuban/UI/proj4dialog.py: Removed. It is has been
113            replaced by projdialog for quite a while and is not used
114            anymore.
115    
116            * Thuban/UI/colordialog.py: New. Abstraction for color selection
117            dialog(s).
118    
119            * Thuban/UI/classifier.py (SelectPropertiesDialog.__GetColor):
120            Now calls the abstract ColorDialog instead of wxColourDialog.
121            This also removed the dependency to Color class conversion
122            from this function.
123    
124    2004-05-04  Frank Koormann  <[email protected]>
125    
126            * Extensions/bboxdump/__init__.py: Fixed string left over from
127            copying.
128    
129            * Extensions/bboxdump/bboxdump.py (bboxdump):
130            Use layer.ShapeStore().AllShapes() to loop over shapes instead of
131            xrange(layer.NumShapes()). Compile the bboxmessage from a list
132            of formatted outputs (string.join) instead of appending to the
133            message. Two progress bar dialogs to report progress on the sometimes
134            lenghty processing.
135    
136    2004-04-22  Frank Koormann  <[email protected]>
137    
138            New Extension to dump bounding boxes of all shapes of the selected
139            layer. An optional column can be specified to group the objects,
140            in this case the bounding box is a union of the separate boxes.
141            Dump can be displayed in a ScrolledMessageDialog or written to file.
142            The Extension is simply a combination of available and well tested
143            Thuban functionality.
144    
145            * Extensions/bboxdump/__init__.py: New: Init to make this
146            directory a package.
147    
148            * Extensions/bboxdump/bboxdump.py: New: Dump bounding boxes of
149            all shapes of the selected layer.
150    
151    2004-04-22  Jan-Oliver Wagner <[email protected]>
152    
153            * Thuban/UI/classgen.py (GenUniquePanel.__init__): Fixed two
154            strings to be i18n now.
155    
156    2004-04-18  Jan-Oliver Wagner <[email protected]>
157    
158            Changing popup menu of legend from direct building
159            to using the Menu construction as used for the mainwindow.
160    
161            * Thuban/UI/mainwindow.py: New method commands: layer_to_top,
162            layer_to_bottom, layer_visibility
163            (MainWindow.LayerToTop): New. Put current layer to the top.
164            (MainWindow.LayerToBottom): New. Put current layer to bottom.
165            (MainWindow.HideLayer, MainWindow.ShowLayer, _has_visible_map):
166            Replace 1,0 by True, False.
167            (MainWindow.ToggleLayerVisibility): New. Toggle visibility of
168            current layer.
169            (MainWindow.LayerShowTable): Removed raising of dialog.
170            (_has_selected_layer_visible): New. Support function.
171    
172            * Thuban/UI/legend.py: ID_POP_xxx: removed.
173            (LegendPanel.__init__): Removed EVT_MENU bindings.
174            (LegendTree._OnRightClick): Replace direct creation of
175            menu via wx Classes by applying the menu definition
176            as of Menu class of menu.py.
177            
178    2004-04-16  Jan-Oliver Wagner <[email protected]>
179    
180            * Thuban/UI/exceptiondialog.py (ExceptionDialog.dialog_layout): Improved
181        button string to stronger clearify that Thuban will be closed when hitting
182            the button.
183    
184            * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Added docstring.
185            Now for layers without a ShapeStore a corresponding message is given
186            to the user, that this layer has no table to show.
187    
188    2004-04-15  Martin Schulze  <[email protected]>
189    
190            * Extensions/wms/layer.py (WMSLayer.setWMSFormat): Need to
191            recalculate the format for the internal render engine as well.
192    
193            * Extensions/wms/properties.py (wmsProperties): First start for a
194            properties dialog.  It's functional for a first selection of
195            layers, but still has some weired wxWidgets/GTK problems but
196            beautification can be done later.
197    
198            * Extensions/wms/layer.py: Added more documentation
199            (WMSLayer.getFormats): New: Return list of supported image formats
200            by the WMS server
201            (WMSLayer.getLayers): New: Return the list of layer names
202            supported by the WMS server
203            (WMSLayer.getLayerTitle): New: Return the title of the named layer
204            (WMSLayer.getWMSFormat): New: Return the image format that is used
205            for WMS GetMap requests
206            (WMSLayer.setWMSFormat): New: Set the image format that is used
207            for WMS GetMap requests
208            (WMSLayer.__init__): Move away from using only one layer to using
209            a list of layers (unsorted at the moment, though).
210            (WMSLayer.getVisibleLayers): New: Return the list of names for all
211            visible layers
212            (WMSLayer.setVisibleLayers): New: Set the list of names for all
213            visible layers
214    
215            * Extensions/wms/wms.py: Moved the WMS layer into layer.py in
216            order to establish a clean structure.
217    
218            * Extensions/wms/layer.py: Moved the WMS layer into a file on its
219            own in order to establish a clean structure.
220    
221    2004-04-13  Martin Schulze  <[email protected]>
222    
223            * Extensions/wms/parser.py (WMSCapabilitiesParser.grok): Added
224            support for oldstyle (WMS 1.0 apparently) image format
225            specification.
226    
227            * Extensions/wms/wms.py (WMSLayer.calcFormat): Reduce the list of
228            supported graphic formats back to JPEG and BMP, PNG and others are
229            too *cough* experimental...  Sorry, I meant to filter this out
230            before I committed this part.  This should make the WMS extension
231            run from CVS again.
232            (wms_dialog): Reset an empty URL to None so that the subsequent
233            program can depend on this, since the dialog will indeed return an
234            empty URL, causing another declaration of love by Python.
235    
236            * Extensions/wms/parser.py (WMSCapabilitiesParser.getLayerBBox):
237            Whenever a native BoundingBox request cannot be fulfilled, check
238            whether the requested SRS is EPSG:3426, in which case return the
239            LatLonBoundingBox values.
240    
241            * Extensions/wms/test/test_parser.py
242            (TestWMSCapabilitiesParser.test_LayerSRS): Added a test for
243            ignoring AUTO:* SRS.
244            (TestWMSCapabilitiesParser.test_LatLonBoundingBoxes_as_bboxes):
245            Added another test method to test whether the LatLonBoundingBox
246            values will be returned if BoundingBox values are requested with
247            SRS set to EPSG:3426.
248    
249            * Extensions/wms/parser.py (WMSCapabilitiesParser.peekLayers):
250            Added rudimentary support for non-EPSG SRS, i.e. ignore them for
251            the moment by placing them into a variable which is currently
252            unused.  Also test whether the EPSG SRS is numerical as it should
253            be and add an error message if it is not.
254    
255            * Extensions/wms/test/sample.xml: Added AUTO:* SRS since they
256            appear in the real world as well.  Since we cannot handle them yet
257            (OGCLib can't either), we will ignore them for the moment.
258    
259            * Extensions/wms/parser.py: Use a variable for denoting the sample
260            filename
261            (WMSCapabilitiesParser.peekLayers): Added support for error
262            messages during grok().  They will be aggregated in an array and
263            may be displayed later.  We may have to add a classification
264            "Warning" and "Error" to this.  That requires more experience,
265            though, since not every error may be lethal.
266    
267            * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Raise the
268            ShowTable() dialog/frame when the user attempts to display it
269            while it has been opened before already and not closed again.
270    
271    2004-04-11  Martin Schulze  <[email protected]>
272    
273            * Extensions/wms/infodialog.py: Adjusted the class documentation
274    
275            * Extensions/wms/wms.py (WMSLayer.__init__, WMSLayer.GetMapImg):
276            Switch to using Thuban{Begin,End}BusyCursor instead of the pure
277            wxWidgets variants.
278            (WMSLayer.__init__): The epsg_id variable is named top_srs now.
279    
280            * Extensions/wms/infodialog.py: Added an information dialog that
281            will display various information about the WMS current resource,
282            so that additional information such as the title, the abstract,
283            fees and access constraints can be displayed for the user if they
284            are documented in the WMS XML.
285    
286    2004-04-10  Martin Schulze  <[email protected]>
287    
288            * Extensions/wms/parser.py (WMSCapabilitiesParser.grok): Adjusted
289            string handling.  It's "foo".lower() and not lower(foo) without
290            lower imported from strings or something.
291    
292            * Extensions/wms/wms.py (WMSLayer): Incorporated WMSCapabilities
293            from capabilities.py and parser.py.  Implement priority list for
294            supported graphics formats, take care of wbmp != bmp.  PNG, TIFF
295            and GIF are supported here, but not yet by main Thuban.  Hence,
296            support for them may be removed later.  Special contribution to
297            usability: get wxWidgets to change the cursor when we're waiting
298            for data from the network so the user won't start to worry.  This
299            causes a redrawing error/warning, though.
300    
301            * Extensions/wms/parser.py (WMSCapabilitiesParser.grok): Unlink
302            the DOM object.
303    
304    2004-04-01  Martin Schulze  <[email protected]>
305    
306            * Extensions/wms/capabilities.py: Adjusted documentation
307            (WMSCapabilities.__init__): Improved documentation, fixed syntax
308            (WMSCapabilities.saveCapabilities): Only catch IOError when
309            handling files
310            (WMSCapabilities.loadCapabilities): Only catch IOError when
311            handling files
312            __main__: corrected variable naming
313            (WMSCapabilities.fetchCapabilities,loadCapabilities): Make this
314            class a specialisation of WMSCapabilitiesParser as well.  Also
315            execute grok() after loading or fetching capabilities, if that
316            went well, so that subsequent calls can already access the data.
317            (WMSCapabilities.getVersion): Export the used version of the
318            GetCapabilities request, so we can use it for subsequent calls,
319            i.e. for GetMap requests.
320            (WMSCapabilities.fetchCapabilities): Added proper error handling
321            when the GetCapabilities request failed, so that the surrounding
322            program can act accordingly.
323    
324    2004-03-30  Martin Schulze  <[email protected]>
325    
326            * Extensions/wms/parser.py (WMSCapabilitiesParser.getLayerSRS):
327            Adjusted the getLayerSRS method to return the list of SRSes
328            extracted from <SRS> elements instead of <BoundingBox> elements.
329            Added a bit of documentation as well.
330            (WMSCapabilitiesParser.checkLayerSRS): Removed integrity test
331            since it was only implemented due to a misunderstanding.
332    
333            * Extensions/wms/test/test_parser.py
334            (TestWMSCapabilitiesParser.test_LayerSRS): Adjust the tests to
335            reflect the corrected interpretation of the standard: i.e. a layer
336            does not have to define a BoundingBox for all SRSes it supports.
337            Hence the <SRS></SRS> specification is authoritative, not the list
338            of BoundingBoxes.
339            (TestWMSCapabilitiesParser.test_BoundingBoxes): Added a new test
340            to ensure None is returned for a non-existing SRS.
341            (TestWMSCapabilitiesParser.test_grok): Removed test_grok method
342            since it is not applicable anymore.  Listing more SRSes in <SRS>
343            elements is valid according to the specs.
344    
345    2004-03-26  Bernhard Reiter <[email protected]>
346    
347            * README: Nicer formatting of text. Improved descriptions.
348            Reflected wxWidgets name change.
349            
350            * Thuban/UI/about.py: Extended copyright to 2004 and added
351            information about the thuban-devel mailinglist.
352    
353    2004-03-24  Martin Schulze  <[email protected]>
354    
355            * Extensions/wms/capabilities.py: Renamed the class to contain
356            'WMS', also added a linebreak where required
357    
358            * Extensions/wms/parser.py: Finally added the XML parser for the
359            GetCapabilities response.
360    
361            * Extensions/wms/test/sample.xml: Adjusted the sample file so that
362            <SRS> elements match the <BoundingBox> elements, except for the
363            layer 'beschriftung'.
364    
365            * Extensions/wms/test/test_parser.py: Encode non-ascii strings
366            since Python uses unicode strings internally, otherwise
367            comparisons will fail.  Removed tests for getLayerBBoxSRS() since
368            the SRS will be calculated anyway and this method is obsoleted by
369            getLayerSRS().  Denote SRS as strings and not as cardinal numbers.
370            Move loading the sample file into the setUp method.  Added a test
371            for finding the integrity problem in the sample response.
372            Improved formatting.
373    
374            * Extensions/wms/domutils.py: Added convenience routines for
375            handling of Document Object Model (DOM) nodes.
376    
377            * Extensions/wms/test/test_domutils.py: Added a test for the
378            domutils module
379    
380    2004-03-19  Martin Schulze  <[email protected]>
381    
382            * Extensions/wms/test/test_parser.py (TestWMSCapabilitiesParser):
383            Moved path detection and adding into a module of its own,
384            adjustpath, which exports thubandir as main Thuban directory.
385    
386            * Extensions/wms/test/test_ogclib.py (TestWMSLib): Moved path
387            detection and adding into a module of its own, adjustpath, which
388            exports thubandir as main Thuban directory.  Reorganised the
389            module in order to support the SkipTest feature for Thuban test
390            cases.
391    
392            * Extensions/wms/test/adjustpath.py: Moved path detection and
393            adding into a module of its own.
394    
395    2004-03-18  Martin Schulze  <[email protected]>
396    
397            * Extensions/wms/test/test_parser.py: Added another test for
398            checking whether the WMS XML parser (to be implemented) returns
399            the information we expect.  This requires a sample WMS WML file
400            (sample.xml) which has been extracted from the frida server and
401            "improved" manually.
402    
403            * Extensions/wms/test/test_ogclib.py: Added legacy code to add the
404            main Thuban directory to the path in order to be able to import
405            random modules.  Adjusted the PyOGCLib detection to reuse the
406            information gathered.  Also added a note about the PYTHONPATH
407            environment variable.
408    
409            * Extensions/wms/test/test_ogclib.py: The format specification is
410            a mime-type, not a graphic format, hence image/jpeg wou ld be the
411            proper format and not JPEG.  We'll also have to take care of the
412            encoding of / as %2F.
413    
414    2004-03-16  Martin Schulze  <[email protected]>
415    
416            * Extensions/wms/test/test_ogclib.py: Added a (hopefully)
417            comprehensive test for the getMapURL method, built compare URLs
418            according to the documentation in OGC 01-068r3
419    
420            * Extensions/wms/capabilities.py (WMSCapabilities): Added the
421            class WMSCapabilities to manage capabilites, will incorporate
422            parsing the capabilities response and provide details for other
423            classes.
424    
425    2004-03-12  Bernhard Herzog  <[email protected]>
426    
427            Support views in addition to normal tables in the postgis
428            shapestore
429    
430            * Thuban/Model/postgisdb.py
431            (PostGISShapeStore._fetch_table_information): Add a fallback for
432            the case where the table name is not in the geometry_columns
433            table.  This is usually the case for views.  Also, set
434            self.shapestore here.
435            (PostGISShapeStore.ShapeType): No need to query the database all
436            the time.  The shape type is now determined in
437            _fetch_table_information
438    
439            * test/postgissupport.py (PostgreSQLServer.new_postgis_db)
440            (PostgreSQLServer.get_static_data_db, PostGISDatabase.__init__):
441            New parameter to specify views.
442            (PostGISDatabase.has_data): Also compare the views.  New views
443            parameter
444            (PostGISDatabase.initdb): Create the views.
445            (PostgreSQLServer.get_default_static_data_db): Add the v_landmarks
446            view
447    
448            * test/test_postgis_db.py
449            (TestPostGISShapestorePointFromViews): New.  Test a
450            PostGISShapeStore with a view
451            (TestPostGISShapestorePointOIDAsGIDColumn.setUp): Pass the name of
452            the geometry_column explicitly to test whether that works
453    
454    2004-03-12  Bernhard Herzog  <[email protected]>
455    
456            Final step for explicit id/geometry columns: Loading and saving
457    
458            * Resources/XML/thuban-1.1.dtd: New.  Derived from thuban-1.0.dtd
459            with the following changes:
460            (dbshapesource): Two new attributes id_column and geometry_column
461    
462            * Thuban/Model/save.py (SessionSaver.write): Use the new dtd
463            (SessionSaver.write_session): Use the new namespace
464            (SessionSaver.write_data_containers): Write the new dbshapesource
465            parameters
466    
467            * Thuban/Model/load.py (SessionLoader.__init__): New namespace for
468            the new file format version
469            (SessionLoader.start_dbshapesource): Handle the new db parameters
470    
471            * test/test_save.py: Update to the new dtd and namespace
472            (SaveSessionTest.test_save_postgis): Update the NonConnectionStore
473            mock object to provide a working IDColumn method.
474    
475            * test/test_load_1_0.py: New.  Copy of the test_load.py before
476            today's changes but with the round-trip tests removed.
477    
478            * test/test_load_0_9.py: Update doc-string.
479    
480            * test/test_load.py: Update all .thuban files to the new dtd and
481            namespace.
482            (TestPostGISLayer.file_contents): Add the new dbshapesource
483            paramters
484    
485    2004-03-11  Bernhard Herzog  <[email protected]>
486    
487            Next step for explicit id/geometry columns: User interaction
488    
489            * Thuban/UI/dbdialog.py (ChooseDBTableDialog.__init__): Rework how
490            the dialog is constructed. Add combo boxes to select id and
491            geometry column.  Rename some instance variables.
492            (ChooseDBTableDialog.GetTable): Return id and geometry column
493            names
494            (ChooseDBTableDialog.OnTableSelect): New. Event handler for
495            selections in the table list
496    
497            * Thuban/UI/mainwindow.py (MainWindow.AddDBLayer): Use id_column
498            and geometry_column
499    
500            * Thuban/Model/session.py (Session.OpenDBShapeStore): Add the new
501            parameters for id_column and geometry column of PostGISShapeStore
502            here as well.
503    
504            * Thuban/Model/postgisdb.py (type_map): Add ROWID psycog type.
505            (_raw_type_map): New. Map raw PostgreSQL type ints to thuban types
506            (PostGISConnection.GeometryTables): Use a better query to
507            determine which relations in the database might be usable for
508            shapestores.  Now supports views as well but is more PostgreSQL
509            specific
510            (PostGISConnection.table_columns): New. Somewhat experimental
511            method to let the db dialogs provide lists of columns to users so
512            that they can select id and geometry columns.
513            (PostGISTable.__init__): The default value of the id_column
514            parameter is now None it still means "gid" effectively, though.
515            (PostGISTable.IDColumn): New introspection method to return a
516            column object for the id column
517            (PostGISShapeStore.GeometryColumn): New introspection method to
518            return a column object for the geometry column
519    
520            * test/test_postgis_db.py
521            (TestPostGISConnection.test_gis_tables_non_empty):
522            Removed. Subsumed by the new:
523            (TestPostGISConnection.test_gis_tables_with_views_and_tables):
524            New. Tes the GeometryTables and table_columns methods with actual
525            tables and views.
526            (PointTests.test_id_column, PointTests.test_geometry_column):
527            New. tests for the new methods.
528            (TestPostGISShapestorePoint.setUp)
529            (TestPostGISShapestorePointSRID.setUp)
530            (TestPostGISShapestorePointExplicitGIDColumn.setUp): Fill the
531            instance variables needed by the new tests
532    
533    2004-03-11  Bernhard Herzog  <[email protected]>
534    
535            * Thuban/UI/classgen.py (GenQuantilesPanel.GetList): The row
536            numbers given to ReadValue are ordinals.
537    
538    2004-03-11  Bernhard Herzog  <[email protected]>
539    
540            Elimiate the requirement for PostGIS tables to have a column
541            called "gid".
542    
543            * Thuban/Model/postgisdb.py (PostGISTable.__init__): New parameter
544            id_column to specify which column to use to identify rows.  Also
545            new instance variables id_column and quoted_id_column
546            (PostGISTable.RowIdToOrdinal, PostGISTable.RowOrdinalToId)
547            (PostGISTable.ReadRowAsDict, PostGISTable.ReadValue)
548            (PostGISTable.SimpleQuery): Use the id column name provided to the
549            constructor instead of "gid"
550            (PostGISShapeStore.__init__): New parameter id_column analogously
551            to PostGISTable.__init__.  This parameter is simply passed through
552            to the base class constructor
553            (PostGISShapeStore._create_col_from_description): Fix typo in
554            doc-string
555            (PostGISShapeStore.Shape, PostGISShapeStore.AllShapes)
556            (PostGISShapeStore.ShapesInRegion): Use the id column name
557            provided to the constructor instead of "gid"
558    
559            * test/postgissupport.py
560            (PostgreSQLServer.get_default_static_data_db): New static table
561            landmarks_point_id with an id column != "gid.  Update the comments
562            a bit.
563            (skip_if_addgeometrycolumn_does_not_use_quote_ident): Fix typo in
564            doc-
565            (upload_shapefile): New parameter gid_column to use a name other
566            than "gid" for the column to store the shape ids
567    
568            * test/test_postgis_db.py (TableTests): New.  Mixin-class
569            containing all tests previously in TestPostGISTable.  The actual
570            tests are the same but the code is a bit more configurable to
571            allow for different id columns etc.
572            (TestPostGISTable): Derive from TableTests now for the actual
573            tests.
574            (TestPostGISTableExplicitGIDColumn): New. Like TestPostGISTable
575            except that it the landmarks_point_id table to test the id_column
576            parameter
577            (PointTests): Extend the doc-string
578            (TestPostGISShapestorePointExplicitGIDColumn)
579            (TestPostGISShapestorePointOIDAsGIDColumn): New classes derived
580            from PointTests to test the explicit id_column parameter.  One
581            tests with the name of the column holding the shape ids, the other
582            uses PostgreSQL's OID column.  For the latter a number of methods
583            have to be overwritten to make them independent of the actual id
584            values.
585    
586    2004-03-08  Silke Reimer  <[email protected]>
587    
588            Update debian directory:
589    
590            * debian/changelog: Added new version.
591            * deiban/rules: Updated management of patches (with cbds)
592            * debian/control: Added cbds to dependencies
593            * debian/patches/*: New. Adds better support for patches of thuban in
594                            debian
595            * debian/menu: Syntax of menu changed slightly
596            * debian/setup.py.patch: removed because it has been moved to
597                            debian/patechs/setup.py.patch
598            
599    
600    2004-02-26  Bernhard Herzog  <[email protected]>
601    
602            Create the Doc/technotes directory for text files with information
603            for developers
604    
605            * Doc/technotes/README: New. README for the technotes
606    
607            * Doc/technotes/coding_guidelines.txt: New. Coding guidelines for
608            Thuban
609    
610            * Doc/technotes/release_process.txt: New. Used to be
611            HOWTO-Release.  Now slightly adapted to technote formatting style.
612    
613            * HOWTO-Release: Removed.  It's contents are now in
614            Doc/technotes/release_process.txt
615    
616    2004-02-25  Bernhard Herzog  <[email protected]>
617    
618            * libraries/thuban/wxproj.cpp (get_wx_version): New.  Return the
619            version of wxWindows the module was compiled with so we can check
620            that against the wxPython version.
621    
622            * Thuban/version.py (thuban_branch, thuban_release): New variables
623            controlling which and how Thuban versions are shown.  See the
624            comments for details.
625            (verify_versions): Also check that the wx version that wxproj is
626            compiled against matches that of the wxPython we use at runtime
627    
628    2004-02-20  Bernhard Herzog  <[email protected]>
629    
630            * Extensions/wms/wms.py (epsg_code_to_projection): Use
631            get_system_proj_file to read the epsg projections.  The old way
632            depended on the current directory being the top Thuban directory.
633    
634    2004-02-20  Bernhard Herzog  <[email protected]>
635    
636            * Extensions/svgexport/test/test_svgmapwriter.py
637            (TestVirtualDC.test_clippath): Remove a debug print
638    
639    2004-02-20  Bernhard Herzog  <[email protected]>
640    
641            * Extensions/svgexport/__init__.py: New.  Turn
642            Extensions/svgexport into a package.
643    
644            * Extensions/svgexport/svgmapwriter.py: Reorder the imports and
645            doc-string a bit.  The doc-string must come first, otherwise it's
646            not a doc-string.  The __future__ import must be the first thing
647            after the doc-string.  Use only double quotes in doc-strings.
648            Single quotes trip up emacs syntax highlighting if the text
649            contains apostrophes.
650    
651    2004-02-20  Bernhard Herzog  <[email protected]>
652    
653            * Extensions/svgexport/test/__init__.py,
654            Extensions/svgexport/test/test_svgmapwriter.py: New. Initial test
655            suite for svgexport
656    
657            * test/runtests.py (find_test_modules): New. Function with the
658            module finding code from main.
659            (main): Use find_test_modules to figure out the default test
660            modules and take modules from Extensions.svgexport.test too.
661    
662    2004-02-19  Bernhard Herzog  <[email protected]>
663    
664            * Thuban/UI/application.py (ThubanApplication.OnInit): Make sure
665            the mainwindow has a reference to the map of the initial session.
666            This fixes a bug introduced with the fix for RT#2245
667    
668    2004-02-19  Bernhard Herzog  <[email protected]>
669    
670            * Extensions/svgexport/svgsaver.py,
671            Extensions/svgexport/svgmapwriter.py,
672            Extensions/svgexport/maplegend.py: Added again.  This time in the
673            correct place.
674    
675    2004-02-17  Bernhard Herzog  <[email protected]>
676    
677            Fix for RT#2245
678    
679            * Thuban/UI/application.py (ThubanApplication.OnInit): Initialize
680            instance variables before trying to create any windows.  Creating
681            windows can start an event loop if e.g. message boxes are popped
682            up for some reason, and event handlers, especially EVT_UPDATE_UI
683            may want to access things from the application.
684            (ThubanApplication.maps_changed): The mainwindow may not have been
685            created yet, so check whether it has been created before calling
686            its methods
687    
688            * Thuban/UI/view.py (MapCanvas.OnIdle): Only try to redraw if we
689            have a map
690    
691    2004-02-17  Bernhard Herzog  <[email protected]>
692    
693            * test/test_svgmapwriter.py, Extensions/svgsaver.py,
694            Extensions/svgmapwriter.py, Extensions/maplegend.py,
695            extensions/svgexport/svgsaver.py,
696            extensions/svgexport/svgmapwriter.py,
697            extensions/svgexport/maplegend.py: Removed.  These files were in
698            the wrong places or didn't work at all.
699    
700    2004-02-16  Bernhard Herzog  <[email protected]>
701    
702            * Thuban/UI/view.py (MapCanvas.Export): Remove accidentally added
703            line
704    
705    2004-02-16  Bernhard Herzog  <[email protected]>
706    
707            * Thuban/UI/view.py (MapCanvas.Export): Avoid UnboundLocalError.
708    
709    2004-02-15  Markus Rechtien  <[email protected]>
710            
711            * Extensions/svgexport/svgmapwriter.py: New. Adds the capability
712            to write a session to a file in SVG format.
713            * Extensions/svgexport/svgsaver.py: New. Uses svgmapwriter.py
714            to write a SVG map of a session.
715            * Extensions/svgexport/maplegend: New. Writes a basic maplegend
716            in SVG format for the current session.
717    
718    2004-02-13  Bernhard Herzog  <[email protected]>
719    
720            * Thuban/UI/mainwindow.py (MainWindow.AddDBLayer): When the layer
721            can't be created, return immediately after displaying the error
722            message.
723    
724    2004-02-11  Bernhard Herzog  <[email protected]>
725    
726            Handle postgis tables with more than one geometry column.
727    
728            * Thuban/Model/postgisdb.py
729            (PostGISTable._fetch_table_information): Delegate the creation of
730            column objects to a different method so that we can extend that in
731            derived classes
732            (PostGISTable._create_col_from_description): New. Column object
733            creation part of _fetch_table_information
734            (PostGISShapeStore._create_col_from_description): New. Extend
735            inherited method to handle geometry columns
736            (PostGISShapeStore.__init__): New parameter geometry_column to
737            specify which geometry column to use.  Optional but mandatory for
738            tables with more than one geometry column
739            (PostGISShapeStore._fetch_table_information): Also use the name of
740            the geometry column when looking for the srid
741            (PostGISShapeStore.ShapeType): Also use the name of the geometry
742            column when looking for the shape type
743    
744            * test/test_save.py (SaveSessionTest.test_save_postgis): Adapt
745            NonConnectionStore to changes in the PostGISShapeStore
746    
747            * test/test_postgis_db.py
748            (TestPostGISSpecialCases.test_shapestore_two_geom_cols): Test
749            PostGISShapeStore with tables having two geometry columns.
750    
751    2004-02-10  Bernhard Herzog  <[email protected]>
752    
753            Fix some postgis problems.  What remains to be done is real
754            handling of SRIDs as they affect how reprojection is done
755    
756            * Thuban/Model/postgisdb.py (quote_identifier): Fix typo in
757            doc-string
758            (PostGISShapeStore._fetch_table_information): New. Extend
759            inherited method to retrieve srid
760            (PostGISShapeStore.BoundingBox): Handle tables without data.
761            extent yields NULL for those
762            (PostGISShapeStore.ShapesInRegion): Use the srid of the table.
763    
764            * test/test_postgis_db.py
765            (TestPostGISSpecialCases.test_shapestore_empty_table): New test
766            for the special case of a table without any data
767            (TestPostGISShapestorePointSRID): New class with tests for a table
768            that uses srids
769            (PolygonTests): Fix a doc-string typo
770    
771            * test/postgissupport.py (PostGISDatabase.__init__): New parameter
772            reference_systems with a specification of spacial reference
773            systems to create in the new db.
774            (PostgreSQLServer.new_postgis_db)
775            (PostgreSQLServer.get_static_data_db): New parameter
776            reference_systems to be passed through ultimately to
777            PostGISDatabase.  In new_postgis_db also check whether an existing
778            db already has the right srids
779            (PostgreSQLServer.get_default_static_data_db): Add srids and a
780            table that uses srids
781            (PostGISDatabase.initdb): Create the entries for the reference
782            systems
783            (PostGISDatabase.has_data): Add reference_systems parameter to
784            check for those too
785            (upload_shapefile): New parameter srid to create tables with a
786            specific srid
787    
788  2004-02-06  Frank Koormann  <[email protected]>  2004-02-06  Frank Koormann  <[email protected]>
789    
790          * po/pt_BR.po: Fixed charset          * po/pt_BR.po: Fixed charset
# Line 4046  Line 4833 
4833          Fix problem of hidden properties dialog under windows after double          Fix problem of hidden properties dialog under windows after double
4834          click on layer tree:          click on layer tree:
4835          The tree control always gets an Expanded / Collapsed event after          The tree control always gets an Expanded / Collapsed event after
4836          the ItemActivated  on double click, which raises the main window again.         We add a second ItemActivated event to the queue, which simply          the ItemActivated  on double click, which raises the main window again.
4837            We add a second ItemActivated event to the queue, which simply
4838          raises the already displayed window.          raises the already displayed window.
4839    
4840          * Thuban/UI/legend.py (LegendTree.__init__): Instance variable          * Thuban/UI/legend.py (LegendTree.__init__): Instance variable

Legend:
Removed from v.2055  
changed lines
  Added in v.2238

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26