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

Legend:
Removed from v.2026  
changed lines
  Added in v.2185

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26