/[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 1932 by bh, Tue Nov 11 13:24:58 2003 UTC revision 2146 by joey, Tue Mar 30 19:08:55 2004 UTC
# Line 1  Line 1 
1    2004-03-30  Martin Schulze  <[email protected]>
2    
3            * Extensions/wms/parser.py (WMSCapabilitiesParser.getLayerSRS):
4            Adjusted the getLayerSRS method to return the list of SRSes
5            extracted from <SRS> elements instead of <BoundingBox> elements.
6            Added a bit of documentation as well.
7            (WMSCapabilitiesParser.checkLayerSRS): Removed integrity test
8            since it was only implemented due to a misunderstanding.
9    
10            * Extensions/wms/test/test_parser.py
11            (TestWMSCapabilitiesParser.test_LayerSRS): Adjust the tests to
12            reflect the corrected interpretation of the standard: i.e. a layer
13            does not have to define a BoundingBox for all SRSes it supports.
14            Hence the <SRS></SRS> specification is authoritative, not the list
15            of BoundingBoxes.
16            (TestWMSCapabilitiesParser.test_BoundingBoxes): Added a new test
17            to ensure None is returned for a non-existing SRS.
18            (TestWMSCapabilitiesParser.test_grok): Removed test_grok method
19            since it is not applicable anymore.  Listing more SRSes in <SRS>
20            elements is valid according to the specs.
21    
22    2004-03-26  Bernhard Reiter <[email protected]>
23    
24            * README: Nicer formatting of text. Improved descriptions.
25            Reflected wxWidgets name change.
26            
27            * Thuban/UI/about.py: Extended copyright to 2004 and added
28            information about the thuban-devel mailinglist.
29    
30    2004-03-24  Martin Schulze  <[email protected]>
31    
32            * Extensions/wms/capabilities.py: Renamed the class to contain
33            'WMS', also added a linebreak where required
34    
35            * Extensions/wms/parser.py: Finally added the XML parser for the
36            GetCapabilities response.
37    
38            * Extensions/wms/test/sample.xml: Adjusted the sample file so that
39            <SRS> elements match the <BoundingBox> elements, except for the
40            layer 'beschriftung'.
41    
42            * Extensions/wms/test/test_parser.py: Encode non-ascii strings
43            since Python uses unicode strings internally, otherwise
44            comparisons will fail.  Removed tests for getLayerBBoxSRS() since
45            the SRS will be calculated anyway and this method is obsoleted by
46            getLayerSRS().  Denote SRS as strings and not as cardinal numbers.
47            Move loading the sample file into the setUp method.  Added a test
48            for finding the integrity problem in the sample response.
49            Improved formatting.
50    
51            * Extensions/wms/domutils.py: Added convenience routines for
52            handling of Document Object Model (DOM) nodes.
53    
54            * Extensions/wms/test/test_domutils.py: Added a test for the
55            domutils module
56    
57    2004-03-19  Martin Schulze  <[email protected]>
58    
59            * Extensions/wms/test/test_parser.py (TestWMSCapabilitiesParser):
60            Moved path detection and adding into a module of its own,
61            adjustpath, which exports thubandir as main Thuban directory.
62    
63            * Extensions/wms/test/test_ogclib.py (TestWMSLib): Moved path
64            detection and adding into a module of its own, adjustpath, which
65            exports thubandir as main Thuban directory.  Reorganised the
66            module in order to support the SkipTest feature for Thuban test
67            cases.
68    
69            * Extensions/wms/test/adjustpath.py: Moved path detection and
70            adding into a module of its own.
71    
72    2004-03-18  Martin Schulze  <[email protected]>
73    
74            * Extensions/wms/test/test_parser.py: Added another test for
75            checking whether the WMS XML parser (to be implemented) returns
76            the information we expect.  This requires a sample WMS WML file
77            (sample.xml) which has been extracted from the frida server and
78            "improved" manually.
79    
80            * Extensions/wms/test/test_ogclib.py: Added legacy code to add the
81            main Thuban directory to the path in order to be able to import
82            random modules.  Adjusted the PyOGCLib detection to reuse the
83            information gathered.  Also added a note about the PYTHONPATH
84            environment variable.
85    
86            * Extensions/wms/test/test_ogclib.py: The format specification is
87            a mime-type, not a graphic format, hence image/jpeg wou ld be the
88            proper format and not JPEG.  We'll also have to take care of the
89            encoding of / as %2F.
90    
91    2004-03-16  Martin Schulze  <[email protected]>
92    
93            * Extensions/wms/test/test_ogclib.py: Added a (hopefully)
94            comprehensive test for the getMapURL method, built compare URLs
95            according to the documentation in OGC 01-068r3
96    
97            * Extensions/wms/capabilities.py (WMSCapabilities): Added the
98            class WMSCapabilities to manage capabilites, will incorporate
99            parsing the capabilities response and provide details for other
100            classes.
101    
102    2004-03-12  Bernhard Herzog  <[email protected]>
103    
104            Support views in addition to normal tables in the postgis
105            shapestore
106    
107            * Thuban/Model/postgisdb.py
108            (PostGISShapeStore._fetch_table_information): Add a fallback for
109            the case where the table name is not in the geometry_columns
110            table.  This is usually the case for views.  Also, set
111            self.shapestore here.
112            (PostGISShapeStore.ShapeType): No need to query the database all
113            the time.  The shape type is now determined in
114            _fetch_table_information
115    
116            * test/postgissupport.py (PostgreSQLServer.new_postgis_db)
117            (PostgreSQLServer.get_static_data_db, PostGISDatabase.__init__):
118            New parameter to specify views.
119            (PostGISDatabase.has_data): Also compare the views.  New views
120            parameter
121            (PostGISDatabase.initdb): Create the views.
122            (PostgreSQLServer.get_default_static_data_db): Add the v_landmarks
123            view
124    
125            * test/test_postgis_db.py
126            (TestPostGISShapestorePointFromViews): New.  Test a
127            PostGISShapeStore with a view
128            (TestPostGISShapestorePointOIDAsGIDColumn.setUp): Pass the name of
129            the geometry_column explicitly to test whether that works
130    
131    2004-03-12  Bernhard Herzog  <[email protected]>
132    
133            Final step for explicit id/geometry columns: Loading and saving
134    
135            * Resources/XML/thuban-1.1.dtd: New.  Derived from thuban-1.0.dtd
136            with the following changes:
137            (dbshapesource): Two new attributes id_column and geometry_column
138    
139            * Thuban/Model/save.py (SessionSaver.write): Use the new dtd
140            (SessionSaver.write_session): Use the new namespace
141            (SessionSaver.write_data_containers): Write the new dbshapesource
142            parameters
143    
144            * Thuban/Model/load.py (SessionLoader.__init__): New namespace for
145            the new file format version
146            (SessionLoader.start_dbshapesource): Handle the new db parameters
147    
148            * test/test_save.py: Update to the new dtd and namespace
149            (SaveSessionTest.test_save_postgis): Update the NonConnectionStore
150            mock object to provide a working IDColumn method.
151    
152            * test/test_load_1_0.py: New.  Copy of the test_load.py before
153            today's changes but with the round-trip tests removed.
154    
155            * test/test_load_0_9.py: Update doc-string.
156    
157            * test/test_load.py: Update all .thuban files to the new dtd and
158            namespace.
159            (TestPostGISLayer.file_contents): Add the new dbshapesource
160            paramters
161    
162    2004-03-11  Bernhard Herzog  <[email protected]>
163    
164            Next step for explicit id/geometry columns: User interaction
165    
166            * Thuban/UI/dbdialog.py (ChooseDBTableDialog.__init__): Rework how
167            the dialog is constructed. Add combo boxes to select id and
168            geometry column.  Rename some instance variables.
169            (ChooseDBTableDialog.GetTable): Return id and geometry column
170            names
171            (ChooseDBTableDialog.OnTableSelect): New. Event handler for
172            selections in the table list
173    
174            * Thuban/UI/mainwindow.py (MainWindow.AddDBLayer): Use id_column
175            and geometry_column
176    
177            * Thuban/Model/session.py (Session.OpenDBShapeStore): Add the new
178            parameters for id_column and geometry column of PostGISShapeStore
179            here as well.
180    
181            * Thuban/Model/postgisdb.py (type_map): Add ROWID psycog type.
182            (_raw_type_map): New. Map raw PostgreSQL type ints to thuban types
183            (PostGISConnection.GeometryTables): Use a better query to
184            determine which relations in the database might be usable for
185            shapestores.  Now supports views as well but is more PostgreSQL
186            specific
187            (PostGISConnection.table_columns): New. Somewhat experimental
188            method to let the db dialogs provide lists of columns to users so
189            that they can select id and geometry columns.
190            (PostGISTable.__init__): The default value of the id_column
191            parameter is now None it still means "gid" effectively, though.
192            (PostGISTable.IDColumn): New introspection method to return a
193            column object for the id column
194            (PostGISShapeStore.GeometryColumn): New introspection method to
195            return a column object for the geometry column
196    
197            * test/test_postgis_db.py
198            (TestPostGISConnection.test_gis_tables_non_empty):
199            Removed. Subsumed by the new:
200            (TestPostGISConnection.test_gis_tables_with_views_and_tables):
201            New. Tes the GeometryTables and table_columns methods with actual
202            tables and views.
203            (PointTests.test_id_column, PointTests.test_geometry_column):
204            New. tests for the new methods.
205            (TestPostGISShapestorePoint.setUp)
206            (TestPostGISShapestorePointSRID.setUp)
207            (TestPostGISShapestorePointExplicitGIDColumn.setUp): Fill the
208            instance variables needed by the new tests
209    
210    2004-03-11  Bernhard Herzog  <[email protected]>
211    
212            * Thuban/UI/classgen.py (GenQuantilesPanel.GetList): The row
213            numbers given to ReadValue are ordinals.
214    
215    2004-03-11  Bernhard Herzog  <[email protected]>
216    
217            Elimiate the requirement for PostGIS tables to have a column
218            called "gid".
219    
220            * Thuban/Model/postgisdb.py (PostGISTable.__init__): New parameter
221            id_column to specify which column to use to identify rows.  Also
222            new instance variables id_column and quoted_id_column
223            (PostGISTable.RowIdToOrdinal, PostGISTable.RowOrdinalToId)
224            (PostGISTable.ReadRowAsDict, PostGISTable.ReadValue)
225            (PostGISTable.SimpleQuery): Use the id column name provided to the
226            constructor instead of "gid"
227            (PostGISShapeStore.__init__): New parameter id_column analogously
228            to PostGISTable.__init__.  This parameter is simply passed through
229            to the base class constructor
230            (PostGISShapeStore._create_col_from_description): Fix typo in
231            doc-string
232            (PostGISShapeStore.Shape, PostGISShapeStore.AllShapes)
233            (PostGISShapeStore.ShapesInRegion): Use the id column name
234            provided to the constructor instead of "gid"
235    
236            * test/postgissupport.py
237            (PostgreSQLServer.get_default_static_data_db): New static table
238            landmarks_point_id with an id column != "gid.  Update the comments
239            a bit.
240            (skip_if_addgeometrycolumn_does_not_use_quote_ident): Fix typo in
241            doc-
242            (upload_shapefile): New parameter gid_column to use a name other
243            than "gid" for the column to store the shape ids
244    
245            * test/test_postgis_db.py (TableTests): New.  Mixin-class
246            containing all tests previously in TestPostGISTable.  The actual
247            tests are the same but the code is a bit more configurable to
248            allow for different id columns etc.
249            (TestPostGISTable): Derive from TableTests now for the actual
250            tests.
251            (TestPostGISTableExplicitGIDColumn): New. Like TestPostGISTable
252            except that it the landmarks_point_id table to test the id_column
253            parameter
254            (PointTests): Extend the doc-string
255            (TestPostGISShapestorePointExplicitGIDColumn)
256            (TestPostGISShapestorePointOIDAsGIDColumn): New classes derived
257            from PointTests to test the explicit id_column parameter.  One
258            tests with the name of the column holding the shape ids, the other
259            uses PostgreSQL's OID column.  For the latter a number of methods
260            have to be overwritten to make them independent of the actual id
261            values.
262    
263    2004-03-08  Silke Reimer  <[email protected]>
264    
265            Update debian directory:
266    
267            * debian/changelog: Added new version.
268            * deiban/rules: Updated management of patches (with cbds)
269            * debian/control: Added cbds to dependencies
270            * debian/patches/*: New. Adds better support for patches of thuban in
271                            debian
272            * debian/menu: Syntax of menu changed slightly
273            * debian/setup.py.patch: removed because it has been moved to
274                            debian/patechs/setup.py.patch
275            
276    
277    2004-02-26  Bernhard Herzog  <[email protected]>
278    
279            Create the Doc/technotes directory for text files with information
280            for developers
281    
282            * Doc/technotes/README: New. README for the technotes
283    
284            * Doc/technotes/coding_guidelines.txt: New. Coding guidelines for
285            Thuban
286    
287            * Doc/technotes/release_process.txt: New. Used to be
288            HOWTO-Release.  Now slightly adapted to technote formatting style.
289    
290            * HOWTO-Release: Removed.  It's contents are now in
291            Doc/technotes/release_process.txt
292    
293    2004-02-25  Bernhard Herzog  <[email protected]>
294    
295            * libraries/thuban/wxproj.cpp (get_wx_version): New.  Return the
296            version of wxWindows the module was compiled with so we can check
297            that against the wxPython version.
298    
299            * Thuban/version.py (thuban_branch, thuban_release): New variables
300            controlling which and how Thuban versions are shown.  See the
301            comments for details.
302            (verify_versions): Also check that the wx version that wxproj is
303            compiled against matches that of the wxPython we use at runtime
304    
305    2004-02-20  Bernhard Herzog  <[email protected]>
306    
307            * Extensions/wms/wms.py (epsg_code_to_projection): Use
308            get_system_proj_file to read the epsg projections.  The old way
309            depended on the current directory being the top Thuban directory.
310    
311    2004-02-20  Bernhard Herzog  <[email protected]>
312    
313            * Extensions/svgexport/test/test_svgmapwriter.py
314            (TestVirtualDC.test_clippath): Remove a debug print
315    
316    2004-02-20  Bernhard Herzog  <[email protected]>
317    
318            * Extensions/svgexport/__init__.py: New.  Turn
319            Extensions/svgexport into a package.
320    
321            * Extensions/svgexport/svgmapwriter.py: Reorder the imports and
322            doc-string a bit.  The doc-string must come first, otherwise it's
323            not a doc-string.  The __future__ import must be the first thing
324            after the doc-string.  Use only double quotes in doc-strings.
325            Single quotes trip up emacs syntax highlighting if the text
326            contains apostrophes.
327    
328    2004-02-20  Bernhard Herzog  <[email protected]>
329    
330            * Extensions/svgexport/test/__init__.py,
331            Extensions/svgexport/test/test_svgmapwriter.py: New. Initial test
332            suite for svgexport
333    
334            * test/runtests.py (find_test_modules): New. Function with the
335            module finding code from main.
336            (main): Use find_test_modules to figure out the default test
337            modules and take modules from Extensions.svgexport.test too.
338    
339    2004-02-19  Bernhard Herzog  <[email protected]>
340    
341            * Thuban/UI/application.py (ThubanApplication.OnInit): Make sure
342            the mainwindow has a reference to the map of the initial session.
343            This fixes a bug introduced with the fix for RT#2245
344    
345    2004-02-19  Bernhard Herzog  <[email protected]>
346    
347            * Extensions/svgexport/svgsaver.py,
348            Extensions/svgexport/svgmapwriter.py,
349            Extensions/svgexport/maplegend.py: Added again.  This time in the
350            correct place.
351    
352    2004-02-17  Bernhard Herzog  <[email protected]>
353    
354            Fix for RT#2245
355    
356            * Thuban/UI/application.py (ThubanApplication.OnInit): Initialize
357            instance variables before trying to create any windows.  Creating
358            windows can start an event loop if e.g. message boxes are popped
359            up for some reason, and event handlers, especially EVT_UPDATE_UI
360            may want to access things from the application.
361            (ThubanApplication.maps_changed): The mainwindow may not have been
362            created yet, so check whether it has been created before calling
363            its methods
364    
365            * Thuban/UI/view.py (MapCanvas.OnIdle): Only try to redraw if we
366            have a map
367    
368    2004-02-17  Bernhard Herzog  <[email protected]>
369    
370            * test/test_svgmapwriter.py, Extensions/svgsaver.py,
371            Extensions/svgmapwriter.py, Extensions/maplegend.py,
372            extensions/svgexport/svgsaver.py,
373            extensions/svgexport/svgmapwriter.py,
374            extensions/svgexport/maplegend.py: Removed.  These files were in
375            the wrong places or didn't work at all.
376    
377    2004-02-16  Bernhard Herzog  <[email protected]>
378    
379            * Thuban/UI/view.py (MapCanvas.Export): Remove accidentally added
380            line
381    
382    2004-02-16  Bernhard Herzog  <[email protected]>
383    
384            * Thuban/UI/view.py (MapCanvas.Export): Avoid UnboundLocalError.
385    
386    2004-02-15  Markus Rechtien  <[email protected]>
387            
388            * Extensions/svgexport/svgmapwriter.py: New. Adds the capability
389            to write a session to a file in SVG format.
390            * Extensions/svgexport/svgsaver.py: New. Uses svgmapwriter.py
391            to write a SVG map of a session.
392            * Extensions/svgexport/maplegend: New. Writes a basic maplegend
393            in SVG format for the current session.
394    
395    2004-02-13  Bernhard Herzog  <[email protected]>
396    
397            * Thuban/UI/mainwindow.py (MainWindow.AddDBLayer): When the layer
398            can't be created, return immediately after displaying the error
399            message.
400    
401    2004-02-11  Bernhard Herzog  <[email protected]>
402    
403            Handle postgis tables with more than one geometry column.
404    
405            * Thuban/Model/postgisdb.py
406            (PostGISTable._fetch_table_information): Delegate the creation of
407            column objects to a different method so that we can extend that in
408            derived classes
409            (PostGISTable._create_col_from_description): New. Column object
410            creation part of _fetch_table_information
411            (PostGISShapeStore._create_col_from_description): New. Extend
412            inherited method to handle geometry columns
413            (PostGISShapeStore.__init__): New parameter geometry_column to
414            specify which geometry column to use.  Optional but mandatory for
415            tables with more than one geometry column
416            (PostGISShapeStore._fetch_table_information): Also use the name of
417            the geometry column when looking for the srid
418            (PostGISShapeStore.ShapeType): Also use the name of the geometry
419            column when looking for the shape type
420    
421            * test/test_save.py (SaveSessionTest.test_save_postgis): Adapt
422            NonConnectionStore to changes in the PostGISShapeStore
423    
424            * test/test_postgis_db.py
425            (TestPostGISSpecialCases.test_shapestore_two_geom_cols): Test
426            PostGISShapeStore with tables having two geometry columns.
427    
428    2004-02-10  Bernhard Herzog  <[email protected]>
429    
430            Fix some postgis problems.  What remains to be done is real
431            handling of SRIDs as they affect how reprojection is done
432    
433            * Thuban/Model/postgisdb.py (quote_identifier): Fix typo in
434            doc-string
435            (PostGISShapeStore._fetch_table_information): New. Extend
436            inherited method to retrieve srid
437            (PostGISShapeStore.BoundingBox): Handle tables without data.
438            extent yields NULL for those
439            (PostGISShapeStore.ShapesInRegion): Use the srid of the table.
440    
441            * test/test_postgis_db.py
442            (TestPostGISSpecialCases.test_shapestore_empty_table): New test
443            for the special case of a table without any data
444            (TestPostGISShapestorePointSRID): New class with tests for a table
445            that uses srids
446            (PolygonTests): Fix a doc-string typo
447    
448            * test/postgissupport.py (PostGISDatabase.__init__): New parameter
449            reference_systems with a specification of spacial reference
450            systems to create in the new db.
451            (PostgreSQLServer.new_postgis_db)
452            (PostgreSQLServer.get_static_data_db): New parameter
453            reference_systems to be passed through ultimately to
454            PostGISDatabase.  In new_postgis_db also check whether an existing
455            db already has the right srids
456            (PostgreSQLServer.get_default_static_data_db): Add srids and a
457            table that uses srids
458            (PostGISDatabase.initdb): Create the entries for the reference
459            systems
460            (PostGISDatabase.has_data): Add reference_systems parameter to
461            check for those too
462            (upload_shapefile): New parameter srid to create tables with a
463            specific srid
464    
465    2004-02-06  Frank Koormann  <[email protected]>
466    
467            * po/pt_BR.po: Fixed charset
468    
469    2004-02-05  Frank Koormann  <[email protected]>
470    
471            * po/pt_BR.po: Fixed format string for error message, missing %s
472            added (Thuban/UI/application.py:273)
473    
474    2004-02-03  Frank Koormann  <[email protected]>
475            
476            First version of Portuguese (Brazilian) translation
477    
478            * po/pt_BR.po: New, translation of pot (2004-01-15 16:07+0300) for
479            Brazilian Portuguese by Eduardo Patto Kanegae.
480    
481            * Thuban/UI/about.py (About.__init.py__): Added Eduardo to the list of
482            translators.
483    
484    
485    2004-01-22  Frank Koormann  <[email protected]>
486    
487            * Doc/manual/thuban-manual.xml: Added section on installation of
488            Thuban under Win32 systems. Fixed image path references in the postgis
489            section. Some minor source formattings.
490    
491    2004-01-21  Frank Koormann  <[email protected]>
492    
493            Make Thuban remember path selections (at least for one application run).
494    
495            * Thuban/UI/application.py (Application.OnInit): Initialize path as a
496            attribute of application object. Path is a dictionary of
497            strings, currently with the items "data" and "projection".  
498            (Application.SetPath): New, stores path for the specified item.
499            (Application.Path): New, return path for the specified item.
500    
501            * Thuban/UI/mainwindow.py
502            (MainWindow.OpenSession, MainWindow.SaveSessionAs,
503            MainWindow.AddLayer, MainWindow.AddRasterLayer,
504            MainWindow.TableOpen): Access "data" path information of the
505            application.
506            
507            * Thuban/UI/projdialog.py (ProjFrame._OnImport, ProjFrame._OnExport):
508            Access "projection" path information of the application.
509    
510    2004-01-05  Bernhard Herzog  <[email protected]>
511    
512            * po/ru.po: Updated translations from Alex Shevlakov
513    
514    2004-01-05  Bernhard Herzog  <[email protected]>
515    
516            * po/Makefile, po/README: Move the description of how to generate
517            the translation statistics to the README.
518    
519    2003-12-23  Bernhard Herzog  <[email protected]>
520    
521            * NEWS: Update for 1.0.0
522    
523            * po/it.po: Another update from Maurizio Napolitano
524    
525    2003-12-23  Bernhard Herzog  <[email protected]>
526    
527            * po/it.po: Updated translation from Maurizio Napolitano
528    
529    2003-12-23  Bernhard Herzog  <[email protected]>
530    
531            * Thuban/UI/join.py (JoinDialog.__init__): Mark one more string
532            for translation
533    
534            * Thuban/UI/mainwindow.py (MainWindow.TableRename)
535            (MainWindow.RenameMap, MainWindow.RenameLayer): Mark some more
536            strings for translation
537    
538            * po/de.po: Update with the newly marked strings.
539    
540    2003-12-22  Bernhard Herzog  <[email protected]>
541    
542            * HOWTO-Release: Fix the places where version numbers have to be
543            updated
544    
545    2003-12-22  Bernhard Herzog  <[email protected]>
546    
547            * setup.py (setup call): 1.0.0, yeah!
548    
549            * Thuban/version.py (longversion): 1.0.0, yeah!
550    
551            * Thuban/Model/load.py (SessionLoader.__init__): Accept the
552            1.0.0 namespace too
553    
554            * Thuban/Model/save.py (SessionSaver.write_session): Save with
555            1.0.0 namespace
556    
557            * test/test_load.py (LoadSessionTest.dtd)
558            (TestSingleLayer.file_contents)
559            (TestNonAsciiColumnName.file_contents)
560            (TestLayerVisibility.file_contents)
561            (TestClassification.file_contents, TestLabels.file_contents)
562            (TestLayerProjection.file_contents)
563            (TestRasterLayer.file_contents, TestJoinedTable.file_contents)
564            (TestLabelLayer.file_contents, TestPostGISLayer.file_contents)
565            (TestPostGISLayerPassword.file_contents)
566            (TestLoadError.file_contents, TestLoadError.test): Update for
567            1.0.0 namespace
568    
569            * test/test_save.py (SaveSessionTest.dtd)
570            (SaveSessionTest.testEmptySession)
571            (SaveSessionTest.testSingleLayer)
572            (SaveSessionTest.testLayerProjection)
573            (SaveSessionTest.testRasterLayer)
574            (SaveSessionTest.testClassifiedLayer)
575            (SaveSessionTest.test_dbf_table)
576            (SaveSessionTest.test_joined_table)
577            (SaveSessionTest.test_save_postgis): Update for 1.0.0 namespace
578    
579    2003-12-22  Bernhard Herzog  <[email protected]>
580    
581            * Thuban/Model/load.py (SessionLoader.start_label): Make sure the
582            alignment flags are byte strings not unicode and that they have
583            valid values
584    
585            * test/test_load.py (TestLabelLayer): New. Test loading (and
586            indirectly saving) of maps with labels.
587    
588    2003-12-22  Bernhard Herzog  <[email protected]>
589    
590            * Thuban/UI/tableview.py (TableGrid.OnDestroy)
591            (TableGrid.__init__): Handle EVT_WINDOW_DESTROY in the grid to
592            unsubscribe all subscribers.
593            (LayerTableFrame.OnDestroy): Do not unsubscribe any messages from
594            self.grid since it may already have been destroyed.
595            Fixes RT #2256
596    
597    2003-12-19  Bernhard Herzog  <[email protected]>
598    
599            * po/fr.po, po/es.po: Updated translations from Daniel Calvelo
600    
601    2003-12-16  Bernhard Herzog  <[email protected]>
602            
603            * debian/bitmappath.patch, debian/setup.py.patch:
604                    added to ensure compliance with FHS for debian
605            * debian/rules, debian/changelog:
606                added patches in rules to ensure compliance with FHS for debian
607    
608    2003-12-16  Bernhard Herzog  <[email protected]>
609    
610            * po/Makefile (mo): Make the output a bit nicer so that it prints
611            statistics about the translations. Add a comment how produce even
612            nicer statistics with sed.
613    
614    2003-12-09  Frank Koormann   <[email protected]>
615    
616            * Resources/Projections/defaults.proj:
617            French projection sample with correct accents (UNICODE).
618    
619    2003-12-05  Bernhard Herzog  <[email protected]>
620    
621            * MANIFEST.in: Add the devtools directory
622    
623            * setup.py (setup call): Use license instead of licence. This
624            silences a deprecation warning on Python 2.3
625    
626    2003-12-05  Frank Koormann   <[email protected]>
627    
628            Documentation synced with 1.0rc1
629    
630            * Doc/manual/thuban-manual.xml:
631            Minor formatting changes and references to database layers .
632            Introduction.Internationalization: New section on i18n.
633            MapManagement.AddingandRemovingLayers: Added item on database layers.  
634            MapManagement.TheLegend: Added section and screenshot on popup menu.
635            ProjectionManagement: Updated screenshot and sentence on EPSG.
636            Appendix.SupportedDataSources: Added PostGIS.
637            Appendix.WorkingwithPostGIS: New section.
638    
639            * Doc/manual/images/6_projection.png: Updated screenshot including
640            EPSG checkboxes.
641    
642            * Doc/manual/images/3_5_popup_menu.png: New, popup menu screenshot.
643    
644            * Doc/manual/images/app_postgis_add_layer.png,
645            Doc/manual/images/app_postgis_db_add.png,
646            Doc/manual/images/app_postgis_db_management.png:
647            New screenshots focussing on database layers
648    
649    2003-12-05  Frank Koormann   <[email protected]>
650    
651            * Thuban/UI/projdialog.py (load_user_proj): If user.proj is missing
652            write warning to stderr instead of rising a warning dialog
653    
654    2003-12-03  Bernhard Herzog  <[email protected]>
655    
656            Fix for RT #2243
657    
658            * Thuban/UI/mainwindow.py (MainWindow.has_selected_shape_layer):
659            New. Like has_selected_layer but for shape layers only
660            (_has_selected_shape_layer): New. Like _has_selected_layer but for
661            shape layers only
662            (layer_show_table command, layer_jointable command): Use these
663            commands should only be available for shape layers
664    
665    2003-12-03  Bernhard Herzog  <[email protected]>
666    
667            * Thuban/UI/mainwindow.py (MainWindow.Unsubscribe): Deal with
668            publishers that are wx objects and may have been destroyed by wx
669            already. Fixes RT #2242.
670    
671    2003-12-03  Bernhard Herzog  <[email protected]>
672    
673            * po/ru.po: Updates from Alex Shevlakov
674    
675    2003-12-03  Silke Reimer <silkeintevation.de>
676    
677            * debian/control, debian/changelog: Added gdal-support to
678                    debian package, updated to new thuban version
679    
680    
681    2003-12-03  Bernhard Herzog  <[email protected]>
682    
683            * Thuban/Lib/version.py: New. Module for version number
684            manipulations. The version of make_tuple here also deals better
685            with more unusual version number strings, such as e.g.
686            "1.2+cvs20031111"
687    
688            * Thuban/version.py (make_tuple): Removed. It's now in
689            Thuban.Lib.version. Use that implementation instead.
690    
691            * test/test_lib_version.py: New. Tests for Thuban/Lib/version.py
692    
693    2003-12-02  Bernhard Herzog  <[email protected]>
694    
695            * MANIFEST.in: Add debian files
696    
697            * setup.py (setup call): Add packages for the Extensions so that
698            they're installed too
699            (data_files): Add READMEs and sample data from some Extensions
700    
701            * NEWS: Add note about the extensions in binary packages
702    
703    2003-12-02  Bernhard Herzog  <[email protected]>
704    
705            * Thuban/Model/save.py (SessionSaver.write_session): Save files
706            with the thuban-1.0rc1
707    
708            * Thuban/Model/load.py (SessionLoader.__init__): Recognize the
709            thuban-1.0rc1 namespace too
710    
711            * test/test_save.py (SaveSessionTest.dtd)
712            (SaveSessionTest.testEmptySession)
713            (SaveSessionTest.testSingleLayer)
714            (SaveSessionTest.testLayerProjection)
715            (SaveSessionTest.testRasterLayer)
716            (SaveSessionTest.testClassifiedLayer)
717            (SaveSessionTest.test_dbf_table)
718            (SaveSessionTest.test_joined_table)
719            (SaveSessionTest.test_save_postgis): Update to thuban-1.0rc1
720            namespace
721    
722            * test/test_load.py (LoadSessionTest.dtd): Update to thuban-1.0rc1
723            namespace
724            (TestSingleLayer.file_contents)
725            (TestNonAsciiColumnName.file_contents)
726            (TestLayerVisibility.file_contents)
727            (TestClassification.file_contents, TestLabels.file_contents)
728            (TestLayerProjection.file_contents)
729            (TestRasterLayer.file_contents, TestJoinedTable.file_contents)
730            (TestPostGISLayer.file_contents)
731            (TestPostGISLayerPassword.file_contents)
732            (TestLoadError.file_contents, TestLoadError.test): Update to
733            thuban-1.0rc1 namespace
734    
735    2003-12-01  Bernhard Herzog  <[email protected]>
736    
737            * setup.py (proj4_prefix, wx_prefix, gdal_prefix): Fix these for
738            nt to better match Intevation's current w32 setup
739    
740            * HOWTO-Release: Add note about updating MANIFEST.in
741    
742            * MANIFEST.in: Add the Extensions
743    
744            * NEWS: Update for 1.0rc1
745    
746    2003-12-01  Bernhard Herzog  <[email protected]>
747    
748            * Thuban/UI/mainwindow.py (MainWindow.AddLayer): Change the wild
749            cards for the dialog so that shapefiles ending in all uppercase
750            SHP are listed too
751    
752    2003-11-28  Bernhard Herzog  <[email protected]>
753    
754            * Thuban/version.py (longversion): Update to 1.0rc1
755    
756            * setup.py (setup call): Update version to 1.0rc1. Use the
757            [email protected] email address as author email instead of my
758            personal one.
759    
760    2003-11-28  Bernhard Herzog  <[email protected]>
761    
762            * po/de.po: Update german translation.
763    
764    2003-11-28  Bernhard Herzog  <[email protected]>
765    
766            Unify the filenames stored in .thuban files so that the .thuban
767            files are more platform independend
768    
769            * Thuban/Model/save.py (unify_filename): New. Unify filenames so
770            that they can be used on both windows and unix
771            (SessionSaver.prepare_filename): New. Handle all filename
772            transformations for filenames stored in the thuban file
773            (SessionSaver.write_data_containers, SessionSaver.write_layer):
774            Use prepare_filename
775    
776            * test/test_save.py (SaveSessionTest.testSingleLayer)
777            (SaveSessionTest.testLayerProjection)
778            (SaveSessionTest.testRasterLayer)
779            (SaveSessionTest.testClassifiedLayer)
780            (SaveSessionTest.test_dbf_table)
781            (SaveSessionTest.test_joined_table): Filenames are always stored
782            with slashes on all currently supported platforms so adapt all
783            tests to this
784    
785            * test/test_load.py (LoadSessionTest.filenames): With the new
786            filename scheme the filenames in the tests should be
787            understandable on all currently supported platforms so we turn
788            this into an empty list because we don't have to normalize them
789            anymore
790    
791    2003-11-28  Bernhard Herzog  <[email protected]>
792    
793            * test/test_layer.py (TestLayer.test_arc_layer_with_projection):
794            Add the ellipsoid to the projection since some Proj versions
795            complain if it's missing.
796    
797    2003-11-27  Bernhard Herzog  <[email protected]>
798    
799            Corect some bounding box projection problems
800    
801            * Thuban/Model/proj.py (Projection.InverseBBox): New. Inverse
802            version of ForwardBBox
803            (Projection._transform_bbox): New. common implementation of
804            ForwardBBox and InverseBBox
805            (Projection.ForwardBBox): Use _transform_bbox.
806    
807            * test/test_proj.py (TestProjection.test): Add test for
808            InverseBBox
809    
810            * Thuban/Model/layer.py (Layer.LatLongBoundingBox)
811            (Layer.ShapesBoundingBox, RasterLayer.LatLongBoundingBox): Use the
812            new InverseBBox method to determine the unprojected bounding box
813            (Layer.ShapesInRegion): Use the ForwardBBox method to project the
814            bbox.
815    
816            * test/test_layer.py (TestLayer.test_point_layer_with_projection):
817            Removed.
818            (TestLayer.test_arc_layer_with_projection): New. This test is
819            better able to test whether bounding boxes are projected correctly
820            than test_point_layer_with_projection
821    
822            * Thuban/UI/viewport.py (ViewPort.map_projection_changed): Use
823            InverseBBox to unproject bboxes
824    
825    2003-11-25  Bernhard Herzog  <[email protected]>
826    
827            * Thuban/UI/about.py (About.__init__): Make sure we have ASCII
828            source code.
829    
830    2003-11-25  Bernhard Herzog  <[email protected]>
831    
832            * Thuban/Model/layer.py (Layer.__getattr__): Removed. It was only
833            there for backwards compatibility and all code relying on that
834            should have been updated by now.
835    
836    2003-11-25  Bernhard Herzog  <[email protected]>
837    
838            * test/test_load.py (TestClassification.test): Add the missing
839            round trip test.
840            (TestClassification.file_contents): Update to the newest file
841            format
842    
843    2003-11-25  Bernhard Herzog  <[email protected]>
844    
845            Add very experimental (and possibly dangerous) extension to draw
846            polygons:
847    
848            * Extensions/drawshape/README: New. Brief installation
849            instructions
850    
851            * Extensions/drawshape/drawshape.py: New. Implementation of the
852            drawshape extensions
853    
854            * Extensions/drawshape/patch.diff: Patch to apply before the
855            extension can be used.
856    
857    2003-11-24  Bernhard Herzog  <[email protected]>
858    
859            * Thuban/Model/data.py (ShapefileStore._open_shapefile)
860            (ShapefileStore.__init__): Factor opening the shapefile into a
861            separate method (the new _open_shapefile). This makes the code a
862            bit more readable but the real reason is that it makes some evil
863            hacks easier. :-)
864    
865    2003-11-24  Bernhard Herzog  <[email protected]>
866    
867            * Thuban/Model/load.py (SessionLoader.check_attrs): If no
868            converter is specified for an attribute assume it's a string
869            containing only Latin1 characters. Update doc-string accordingly.
870            This change should fix many places where unicode objects might
871            accidentally enter Thuban.
872    
873            * test/test_load.py (TestNonAsciiColumnName): New test to check
874            what happens with column names in DBF files that contain non-ascii
875            characters
876    
877    2003-11-21  Bernhard Herzog  <[email protected]>
878    
879            Enable the experimental attribute editing again and introduce a
880            command line switch to actually activate it
881    
882            * Thuban/UI/main.py (options): New. Container for options set on
883            the commmand line
884            (main): Add the --enable-attribute-editing flag.
885    
886            * Thuban/UI/identifyview.py (IdentifyView.__init__): If attribute
887            editing is enabled use the grid ctrl which allows editing of the
888            values
889    
890            * Thuban/Model/transientdb.py (AutoTransientTable.write_record):
891            New. Just delegate this to the underlying table.
892    
893    2003-11-20  Bernhard Herzog  <[email protected]>
894    
895            * test/test_proj.py (ProjFileReadTests.test_read_unreadable_file):
896            Skip this test if run under non-posix systems since it only works
897            there
898    
899    2003-11-19  Bernhard Herzog  <[email protected]>
900    
901            * Thuban/Model/resource.py: Rework the way gdal support is
902            determined so that we can give a reason in the about why gdal is
903            not supported.
904            (gdal_support_status): New. Variable holding a string with the
905            reason for no gdal support
906    
907            * Thuban/UI/about.py (About.__init__): Add the reason why gdal is
908            not supported to the message
909    
910    2003-11-19  Bernhard Herzog  <[email protected]>
911    
912            Remove the old table interface and its test cases
913    
914            * Thuban/Model/table.py (OldTableInterfaceMixin): Removed.
915            (DBFTable, MemoryTable): Do not derive from OldTableInterfaceMixin
916            anymore
917    
918            * Thuban/Model/transientdb.py (TransientTableBase)
919            (AutoTransientTable): Do not derive from OldTableInterfaceMixin
920            anymore
921    
922            * test/test_table.py: Removed since the old interface it tests is
923            gone.
924    
925            * test/runtests.py (main): The old table interface is gone and
926            with it the deprecation warnings so remove the code that turns
927            these warnings into errors
928    
929    2003-11-19  Bernhard Herzog  <[email protected]>
930    
931            * test/test_table.py: Revert to revision 1.5 again. Changing the
932            tests to use the new table interface is completely wrong since the
933            whole purpose of the tests in this module is to test the old
934            interface.
935    
936    2003-11-18  Bernhard Herzog  <[email protected]>
937    
938            * Thuban/Model/postgisdb.py (PostGISConnection.MatchesParameters):
939            New. Test whether the connection matches a set of connection
940            parameters
941    
942            * Thuban/UI/dbdialog.py (DBFrame.conns_changed): Fix doc-string
943            (DBFrame.OnAdd): Use the new MatchesParameters method when looking
944            for existing connections with the same parameters and break out of
945            the loop correctly.
946    
947            * test/test_postgis_db.py (TestBriefDescription)
948            (TestPostGISSimple.test_brief_description): Rename
949            TestBriefDescription to TestPostGISSimple and the test method to
950            test_brief_description so that we can add more test methods.
951            (TestPostGISSimple.test_matches_parameters): New. Test the new
952            MatchesParameters method
953    
954    2003-11-18  Bernhard Herzog  <[email protected]>
955    
956            * Thuban/Lib/connector.py (Publisher): Introduce a new flag,
957            _was_destroyed, to indicate whether an publisher instance has
958            already been destroyed.
959            (Publisher.Unsubscribe): Only disconnect if the publisher has not
960            been destroyed yet.
961            (Publisher.Destroy): Set the _was_destroyed flag to true.
962    
963            * test/test_connector.py
964            (TestPublisher.test_unsubscribe_after_destroy): New. Test that
965            calling Unsubscribe after Destroy doesn't raise an exception
966    
967    2003-11-14  Bernhard Herzog  <[email protected]>
968    
969            * Thuban/UI/identifyview.py (IdentifyView.selected_shape): Fix
970            typo in doc-string
971    
972    2003-11-13  Bernhard Herzog  <[email protected]>
973    
974            Quote table and column names properly for postgis.
975    
976            * Thuban/Model/postgisdb.py (quote_identifier): New. Function to
977            quote an identifier for use in an sql statement
978            (PostGISColumn.__init__): Add the quoted_name attribute
979            (PostGISTable.__init__): New instance variable quoted_tablename
980            (PostGISTable._fetch_table_information): Use the quoted table
981            name. New isntance variable quoted_geo_col with a quoted version
982            of geometry_column
983            (PostGISTable.NumRows, PostGISTable.RowIdToOrdinal)
984            (PostGISTable.RowOrdinalToId): Use the quoted table name
985            (PostGISTable.ReadValue, PostGISTable.ValueRange)
986            (PostGISTable.UniqueValues, PostGISTable.SimpleQuery)
987            (PostGISShapeStore.BoundingBox, PostGISShapeStore.Shape)
988            (PostGISShapeStore.AllShapes, PostGISShapeStore.ShapesInRegion):
989            Use quoted table and column names
990    
991            * test/test_postgis_db.py (TestPostGISSpecialCases)
992            (TestPostGISIgnoredColumns): Rename the class to
993            TestPostGISSpecialCases because that better describes the new
994            cases
995            (TestPostGISSpecialCases.test_unsupported_types)
996            (TestPostGISSpecialCases.test): Rename the method to
997            test_unsupported_types because we need a more descriptive name now
998            that there are more methods
999            (TestPostGISSpecialCases.test_table_name_quoting)
1000            (TestPostGISSpecialCases.test_column_name_quoting)
1001            (TestPostGISSpecialCases.test_shapestore_name_quoting): New test
1002            cases to test quoting of table and column names in PostGISTable
1003            and PostGISShapeStore
1004    
1005            * test/postgissupport.py
1006            (skip_if_addgeometrycolumn_does_not_use_quote_ident): New. Skip if
1007            AddGeometryColumn desn't support table or column names with sapces
1008            or double quotes
1009    
1010    2003-11-12  Jan-Oliver Wagner <[email protected]>
1011    
1012            * Extensions/wms/__init__.py: New: Init to make this
1013            directory a package.
1014    
1015            * Extensions/wms/wms.py: New: Provide layers via OGC WMS.
1016    
1017    2003-11-11  Bernhard Herzog  <[email protected]>
1018    
1019            * Thuban/Model/resource.py (EPSG_DEPRECATED_PROJ_FILE): New.
1020            Constant for the file woth deprecated epsg projections
1021            (get_system_proj_file): Update doc-string
1022    
1023            * Thuban/UI/projdialog.py (ProjFrame.build_dialog): Add a space
1024            above the EPS widgets, introduce a check box for the deprecated
1025            eps projections and a label for the epsg widgets
1026            (ProjFrame._OnShowEPSG): Handle the deprecated EPSG projections
1027            too
1028    
1029    2003-11-11  Bernhard Herzog  <[email protected]>
1030    
1031            Avoid warnings when run under Python 2.3
1032    
1033            * Thuban/UI/baserenderer.py (BaseRenderer.draw_point_shape)
1034            (BaseRenderer.draw_label_layer): Coordinates must be ints.
1035    
1036            * Thuban/UI/renderer.py (MapRenderer.make_point): Turn this into a
1037            real method so that we can convert to int.
1038            (MapRenderer.label_font): The font size mist be an int.
1039    
1040            * Thuban/UI/common.py (Color2wxColour): The color values must be
1041            ints. Also, remove the unnecessary asserts.
1042    
1043            * test/test_load_0_8.py (TestUnicodeStrings.file_contents)
1044            (TestUnicodeStrings.test): Python source code should not contain
1045            non-ascii characters unless an encoding is specified in the file.
1046            Therefore use \x escapes in the string literals for non-ascii
1047            characters.
1048    
1049    2003-11-11  Bernhard Herzog  <[email protected]>
1050    
1051            * Thuban/Model/resource.py (get_system_proj_file): Add a filename
1052            parameter so that this function can be used for all proj files in
1053            Resource/Projections
1054            (DEFAULT_PROJ_FILE, EPSG_PROJ_FILE): New. Predefined filenames for
1055            get_system_proj_file
1056    
1057            * Thuban/UI/projdialog.py (ProjFrame.__init__): Instead of one
1058            ProjFile self.__sysProjFile use a dictionary of system ProjFile
1059            objects self._sys_proj_files
1060            (ProjFrame.build_dialog): Adapt to the new changes in the
1061            ProjectionList constructor. Add a check button to toggle whether
1062            EPSG projections are shown
1063            (ProjFrame._OnShowEPSG): New. Handler for the epsg check button
1064            events.
1065            (ProjFrame.load_user_proj, ProjFrame.load_system_proj): Only show
1066            the busy cursor if the files have not yet been loaded by the
1067            dialog.
1068            (ProjFrame.load_system_proj): Add a parameter for the name of the
1069            proj file. Maintain the dictionary of system projections
1070            self._sys_proj_files
1071    
1072            * Thuban/UI/projlist.py (ProjectionList): Merge the system_projs,
1073            user_projs parameters into one parameter proj_files which is a
1074            list of proj files.
1075            (ProjectionList._subscribe_proj_files)
1076            (ProjectionList._unsubscribe_proj_files): New. Move
1077            subscription/unsubscription of projfile messages to separate
1078            methods
1079            (ProjectionList.Destroy): The unsubscribe is now done in
1080            _unsubscribe_proj_files
1081            (ProjectionList.update_projections): We now have a list of proj
1082            file objects
1083            (ProjectionList.SetProjFiles): New method to set a new list of
1084            proj file objects
1085    
1086            * test/test_proj.py (ProjFileReadTests.test_get_system_proj_file):
1087            Specify explicitly which system proj file to load.
1088    
1089  2003-11-11  Bernhard Herzog  <[email protected]>  2003-11-11  Bernhard Herzog  <[email protected]>
1090    
1091          * Thuban/Model/load.py (SessionLoader.Destroy): New. Clear all          * Thuban/Model/load.py (SessionLoader.Destroy): New. Clear all

Legend:
Removed from v.1932  
changed lines
  Added in v.2146

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26