/[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 1582 by bh, Tue Aug 12 15:08:40 2003 UTC revision 1716 by jan, Fri Sep 12 08:33:23 2003 UTC
# Line 1  Line 1 
1    2003-09-12  Jan-Oliver Wagner <[email protected]>
2    
3            * Examples/simple_extensions/simple_tool.py: bugfix: Tool is now
4            in viewport, not anymore in view
5    
6    2003-09-04  Jan-Oliver Wagner <[email protected]>
7    
8            Introducing first Extension (gns2shp).
9    
10            * Extensions, Extensions/gns2shp, Extensions/gns2shp/test: New.
11    
12            * Extensions/__init__.py: New. init to make this dir a package.
13    
14            * Extensions/gns2shp/__init__.py: New. init to make this dir a package.
15    
16            * Extensions/gns2shp/test/README: New. some info on this test directory.
17    
18            * Extensions/gns2shp/test/ls.txt: New. test data set (Liechtenstein).
19    
20            * Extensions/gns2shp/test/test_gns2shp.py: New. Test for correct creation
21            of Shapefile from GNS text file format
22    
23            *
24    2003-09-03  Jan-Oliver Wagner <[email protected]>
25    
26            Fix/workaround for bug #2019:
27            https://intevation.de/rt/webrt?serial_num=2019
28    
29            * Thuban/UI/identifyview.py (IdentifyView.ID_STOP): New.
30            (IdentifyView.__init__): Added another button that allows to
31            stop the identify mode.
32            (IdentifyView.OnStop): New. Stops the identify mode.
33    
34    2003-09-03  Jan-Oliver Wagner <[email protected]>
35    
36            Introducing a new exception dialog that allows to exit the
37            application immediately.
38            This fixes bug #2060: https://intevation.de/rt/webrt?serial_num=2060
39    
40            * Thuban/UI/exceptiondialog.py: New. A special exception dialog.
41    
42            * Thuban/UI/application.py (ThubanApplication.ShowExceptionDialog):
43            Made strings available to translations. Exchanged the simple
44            ScrolledMessageDialog by the new ExceptionDialog.
45    
46    2003-09-01  Bernhard Herzog  <[email protected]>
47    
48            * NEWS: New. Summary of changes and release notes.
49    
50            * MANIFEST.in: Add NEWS
51    
52    2003-09-01  Bernhard Herzog  <[email protected]>
53    
54            * MANIFEST.in: Correct the include statement for the mo-files and
55            include the documentation too.
56    
57            * setup.py (data_files): Add the .mo files
58            (setup call): Up to version 0.9.0
59    
60    2003-09-01  Bernhard Herzog  <[email protected]>
61    
62            * Thuban/UI/dbdialog.py (ChooseDBTableDialog.__init__): Change the
63            parameter list to just parent and session
64            (ChooseDBTableDialog.__set_properties): Removed. Setting the
65            selection of empty list boxes is not allowed (and produces C++
66            assertion errors) and the rest of the setup is better done in
67            __init__ anyway.
68            (ChooseDBTableDialog.OnCancel, ChooseDBTableDialog.OnOK)
69            (ChooseDBTableDialog.OnLBDClick, DBDialog.OnOK): Use the Python
70            builtins True/False for booleans to avoid warnings from wxPython
71    
72            * Thuban/UI/mainwindow.py (MainWindow.AddDBLayer): Adapt to new
73            ChooseDBTableDialog constructor parameters.
74    
75    2003-09-01  Bernhard Herzog  <[email protected]>
76    
77            * Thuban/Model/postgisdb.py
78            (PostGISTable): Extend doc-string
79            (PostGISTable._fetch_table_information): Set the column index
80            correctly, pretending ignored columns don't exist.
81    
82            * test/test_postgis_db.py (TestPostGISIgnoredColumns): New tests
83            for postgis tables with data types not yet supported by thuban.
84    
85    2003-08-29  Bernhard Herzog  <[email protected]>
86    
87            * HOWTO-Release: Tweak item about running the tests.
88    
89    2003-08-29  Jan-Oliver Wagner <[email protected]>
90    
91            * /Doc/manual/thuban-manual.xml: updated to version 1.0pre2.
92    
93    2003-08-29  Bernhard Herzog  <[email protected]>
94    
95            Add some missing parameters to projections. Proj complains about
96            them on windows but for some reason not on Linux.
97    
98            * test/test_save.py (SaveSessionTest.testLayerProjection): Add
99            missing required projection parameters
100    
101            * test/test_proj.py (TestProjFile.test): Add missing required
102            projection parameters
103    
104            * test/test_load_0_8.py (TestLayerProjection.file_contents)
105            (TestLayerProjection.test): Add missing required projection
106            parameters and tests for them
107    
108            * test/test_load.py (TestLayerProjection.file_contents)
109            (TestLayerProjection.test): Add missing required projection
110            parameters and tests for them
111    
112            * test/test_layer.py (TestLayer.test_base_layer): Add missing
113            required projection parameters
114    
115    2003-08-29  Bernhard Herzog  <[email protected]>
116    
117            * libraries/pyprojection/Projection.i: Use pj_get_errno_ref to
118            access the pj_errno because directly accessing pj_errno doesn't
119            work on windows if the proj library is in a DLL
120    
121            * libraries/pyprojection/Projection_wrap.c: Update from Projection.i
122    
123    2003-08-28  Bernhard Herzog  <[email protected]>
124    
125            * test/test_proj.py: Import things from Thuban after calling
126            initthuban
127    
128            * test/test_load.py (LoadSessionTest.filenames): New class
129            variable with the filename attributes to normalize
130            (LoadSessionTest.check_format): Pass self.filenames to
131            sax_eventlist to normalize the filename attributes
132    
133            * test/xmlsupport.py: Add cvs keywords
134            (SaxEventLister.__init__): New parameter filenames which indicates
135            attributes that contain filenames
136            (SaxEventLister.startElementNS): Normalize the filename attributes
137            with os.path.normpath
138            (sax_eventlist): New parameter filenames to pass through to
139            SaxEventLister
140    
141            * test/test_derivedshapestore.py: Make this file callable as a
142            program to execute the tests
143            (TestDerivedShapeStoreExceptions.test_table_with_wrong_size): Bind
144            the session to self.session so that it gets destroyed properly
145    
146            * test/test_layer.py (TestLayer.tearDown): Call the session's
147            Destroy method
148    
149            * test/test_map.py (TestMapBase.tearDown): Destroy self.session
150            too if it exists
151            (TestMapAddLayer.test_add_layer): Bind the session to self.session
152            so that it gets destroyed properly
153    
154            * test/postgissupport.py (reason_for_not_running_tests): Add a
155            test for the existence of popen2.Popen4.
156    
157            * test/test_save.py (SaveSessionTest.tearDown): New. Provide a
158            reliable way to destroy the sessions created in the test cases
159            (SaveSessionTest.test_dbf_table): Bind the session to self.session
160            so that it gets destroyed properly
161            (SaveSessionTest.testLayerProjection): Bind the session to
162            self.session so that it gets destroyed properly
163    
164            * test/test_session.py (UnreferencedTablesTests.tearDown): Make
165            sure that the session is destroyed properly
166    
167            * test/test_shapefilestore.py: Make this callable as a program to
168            execute the tests
169    
170            * test/test_scalebar.py: Remove unnecessary import of _ from
171            Thuban
172    
173            * test/support.py (print_garbage_information): Call initthuban
174            here because it may be called indirectly from test cases that test
175            test support modules which do not use anything from thuban itself
176            (ThubanTestProgram.runTests): Remove unnecessary debug print
177    
178    2003-08-28  Bernhard Herzog  <[email protected]>
179    
180            * Thuban/version.py (longversion): Update to 0.9
181    
182            * Thuban/UI/mainwindow.py: Remove some unused imports
183    
184            * README: Add section about required additional software. Add date
185            and revision CVS keywords
186    
187            * HOWTO-Release: Add item about the translations. Add date and
188            revision CVs keywords and change formatting to match README a bit
189            better
190    
191            * po/de.po: Update for 0.9
192    
193            * test/README: Tweak the wording a little because many tests are
194            not really unittest.
195    
196    2003-08-27  Bernhard Herzog  <[email protected]>
197    
198            As preparation for the 0.9 release, switch thuban files to a
199            non-dev namespace
200    
201            * Thuban/Model/save.py (SessionSaver.write_session): Write files
202            with the http://thuban.intevation.org/dtds/thuban-0.9.dtd
203            namespace
204    
205            * Thuban/Model/load.py (SessionLoader.__init__): Accept the
206            http://thuban.intevation.org/dtds/thuban-0.9.dtd namespace too
207    
208            * test/test_save.py (SaveSessionTest.dtd)
209            (SaveSessionTest.testEmptySession)
210            (SaveSessionTest.testSingleLayer)
211            (SaveSessionTest.testLayerProjection)
212            (SaveSessionTest.testRasterLayer)
213            (SaveSessionTest.testClassifiedLayer)
214            (SaveSessionTest.test_dbf_table)
215            (SaveSessionTest.test_joined_table)
216            (SaveSessionTest.test_save_postgis): Update for new namespace
217    
218            * test/test_load.py (LoadSessionTest.dtd, TestSingleLayer)
219            (TestLayerVisibility.file_contents, TestLabels.file_contents)
220            (TestLayerProjection.file_contents)
221            (TestRasterLayer.file_contents, TestJoinedTable.file_contents)
222            (TestPostGISLayer.file_contents)
223            (TestPostGISLayerPassword.file_contents)
224            (TestLoadError.file_contents, TestLoadError.test): Update for new
225            namespace
226    
227    2003-08-27  Bernhard Herzog  <[email protected]>
228    
229            Make the table interface distinguish between row ids (an integer
230            that uniquely identifies a row) and row ordinals (a simple row
231            count from 0 to NumRows() - 1)
232    
233            * Thuban/Model/postgisdb.py (PostGISTable.RowIdToOrdinal)
234            (PostGISTable.RowOrdinalToId): New methods to conver between row
235            ids and row ordinals
236            (PostGISTable.ReadRowAsDict, PostGISTable.ReadValue): New keyword
237            parameter row_is_ordinal to indicate whether the row parameter is
238            the row id or the ordinal
239    
240            * Thuban/Model/transientdb.py (TransientTableBase.RowIdToOrdinal)
241            (TransientTableBase.RowOrdinalToId)
242            (AutoTransientTable.RowIdToOrdinal)
243            (AutoTransientTable.RowOrdinalToId): Same new methods as in
244            PostGISTable.
245            (TransientTableBase.ReadRowAsDict, TransientTableBase.ReadValue)
246            (AutoTransientTable.ReadRowAsDict, AutoTransientTable.ReadValue):
247            Same new parameter as in PostGISTable.
248    
249            * Thuban/Model/table.py (DBFTable.RowIdToOrdinal)
250            (DBFTable.RowOrdinalToId, MemoryTable.RowIdToOrdinal)
251            (MemoryTable.RowOrdinalToId): Same new methods as in PostGISTable.
252            (DBFTable.ReadValue, DBFTable.ReadRowAsDict)
253            (MemoryTable.ReadValue, MemoryTable.ReadRowAsDict): Same new
254            parameter as in PostGISTable.
255    
256            * Thuban/UI/tableview.py (DataTable.RowIdToOrdinal)
257            (DataTable.RowOrdinalToId): New methods to convert between row ids
258            and row ordinals.
259            (TableGrid.SelectRowById): New method to select a row based on its
260            ID as opposed to its ordinal
261            (DataTable.GetValue, TableGrid.OnRangeSelect)
262            (TableGrid.OnSelectCell, LayerTableGrid.select_shapes)
263            (QueryTableFrame.OnQuery, QueryTableFrame.get_selected)
264            (LayerTableFrame.__init__): Convert between row ids and row
265            ordinals as appropriate
266    
267            * test/postgissupport.py (PostGISDatabase.__init__): Add
268            doc-string.
269            (PostGISDatabase.initdb): The optional third item in a tuple in
270            tables is now a (key, value) list with additional arguments to
271            pass to upload_shapefile
272            (upload_shapefile): New parameter gid_offset to allow gids that
273            are not the same as the shapeids in the shapefile
274            (PostgreSQLServer.get_default_static_data_db): Use the new
275            gid_offset to make the gids in landmarks 1000 higher than the
276            shapeids in the shapefile
277    
278            * test/test_viewport.py
279            (TestViewportWithPostGIS.test_find_shape_at_point): Adapt to the
280            new shapeids in the landmarks table
281    
282            * test/test_transientdb.py
283            (TestTransientTable.run_iceland_political_tests)
284            (TestTransientTable.test_transient_joined_table): Add tests for
285            the new table methods and new keywords arguments.
286    
287            * test/test_postgis_db.py
288            (TestPostGISTable.test_read_row_as_dict_row_count_mode)
289            (TestPostGISTable.test_read_value_row_count_mode)
290            (TestPostGISTable.test_row_id_to_ordinal)
291            (TestPostGISTable.test_row_oridnal_to_id): New test for the new
292            table methods and the new arguments
293            (TestPostGISShapestorePoint.test_shapes_in_region)
294            (TestPostGISShapestorePoint.test_shape_raw_data)
295            (TestPostGISShapestorePoint.test_shape_points)
296            (TestPostGISShapestorePoint.test_shape_shapeid)
297            (TestPostGISShapestorePoint.test_all_shapes)
298            (TestPostGISTable.test_simple_query)
299            (TestPostGISTable.test_simple_query)
300            (TestPostGISTable.test_simple_query)
301            (TestPostGISTable.test_read_value)
302            (TestPostGISTable.test_read_row_as_dict): Adapt to the new
303            shapeids in the landmarks table
304    
305            * test/test_memory_table.py
306            (TestMemoryTable.test_read_row_as_dict_row_count_mode)
307            (TestMemoryTable.test_read_value_row_count_mode)
308            (TestMemoryTable.test_row_id_to_ordinal)
309            (TestMemoryTable.test_row_oridnal_to_id): New test for the new
310            table methods and the new arguments
311    
312            * test/test_dbf_table.py
313            (TestDBFTable.test_read_row_as_dict_row_count_mode)
314            (TestDBFTable.test_read_value_row_count_mode)
315            (TestDBFTable.test_row_id_to_ordinal)
316            (TestDBFTable.test_row_oridnal_to_id): New test for the new table
317            methods and the new arguments
318    
319    2003-08-26  Bernhard Herzog  <[email protected]>
320    
321            * Thuban/Model/postgisdb.py (PostGISShapeStore.BoundingBox): Use a
322            more postgis specific but much faster method to get the bounding
323            box
324    
325    2003-08-26  Bernhard Herzog  <[email protected]>
326    
327            * Thuban/Model/postgisdb.py (PostGISTable.Title)
328            (PostGISShapeStore.AllShapes): Add these missing methods.
329            (PostGISShapeStore.ShapesInRegion): No need to raise
330            StopIteration. We can simply return
331    
332            * test/test_postgis_db.py (TestPostGISTable.test_title)
333            (TestPostGISShapestorePoint.test_all_shapes): New tests for the
334            new methods
335    
336    2003-08-25  Bernhard Herzog  <[email protected]>
337    
338            * Thuban/Model/postgisdb.py (shapetype_map): Add MUTLIPOLYGON.
339    
340            * test/test_postgis_db.py (PolygonTests): New class containing
341            those tests from TestPostGISShapestorePolygon that can also be
342            used to test MUTLIPOLYGON tables
343            (TestPostGISShapestorePolygon): Most tests are now in PolygonTests
344            so derive from that
345            (TestPostGISShapestoreMultiPolygon): New class with tests for
346            MUTLIPOLYGON tables
347    
348            * test/postgissupport.py (PostGISDatabase.initdb): Allow the
349            tables argument to have tuples with three items to override the
350            WKT type used.
351            (PostgreSQLServer.get_default_static_data_db): Use the above to
352            create a polygon table with MUTLIPOLYGONs
353            (point_to_wkt, coords_to_point, polygon_to_wkt, coords_to_polygon)
354            (arc_to_wkt, coords_to_multilinestring): Rename from *_to_wkt to
355            coords_to*
356            (coords_to_multipolygon): New. Convert to MUTLIPOLYGON
357            (wkt_converter): New. Map WKT types to converters
358            (upload_shapefile): New parameter force_wkt_type to use a
359            different WKT type than the default
360    
361    2003-08-25  Bernhard Herzog  <[email protected]>
362    
363            * Thuban/UI/application.py
364            (ThubanApplication.run_db_param_dialog): New. Suitable as a
365            db_connection_callback. Main difference is that the dialog run
366            from this method doesn't have a parent so it can be used even when
367            there is no main window
368            (ThubanApplication.OpenSession): Use self.run_db_param_dialog if
369            no db_connection_callback was given. This way the dialog pops up
370            even when the .thuban file was given as a command line parameter.
371    
372    2003-08-25  Bernhard Herzog  <[email protected]>
373    
374            * Thuban/UI/view.py (MapCanvas.OnLeftUp): Release the the mouse
375            before calling MouseLeftUp. MouseLeftUp may pop up modal dialogs
376            which leads to an effectively frozen X session because the user
377            can only interact with the dialog but the mouse is still grabbed
378            by the canvas.
379            Also, call the tool's Hide method before MouseLeftUp because
380            MouseLeftUp may change the tool's coordinates.
381    
382    2003-08-25  Bernhard Herzog  <[email protected]>
383    
384            * Thuban/UI/application.py (ThubanApplication.OpenSession): Catch
385            LoadCancelled exceptions and handle them by returning immediately.
386    
387    2003-08-25  Bernhard Herzog  <[email protected]>
388    
389            GUI part of loading sessions with postgis connections which may
390            require user interaction to get passwords or updated parameters
391    
392            * Thuban/UI/dbdialog.py (DBDialog): Reimplement to make it look a
393            bit nucer and be more generic.
394            (DBFrame.OnAdd): Adapt to new DBDialog interface
395    
396            * Thuban/UI/application.py (ThubanApplication.OpenSession): New
397            optional parameter db_connection_callback which is passed to
398            load_session.
399    
400            * Thuban/UI/mainwindow.py (MainWindow.run_db_param_dialog): New.
401            Suitable as a db_connection_callback
402            (MainWindow.OpenSession): Use self.run_db_param_dialog as the
403            db_connection_callback of the application's OpenSession method
404    
405    
406    2003-08-25  Bernhard Herzog  <[email protected]>
407    
408            Basic loading of sessions containing postgis connections:
409    
410            * Thuban/Model/load.py (LoadError): Add doc-string
411            (LoadCancelled): New exception class to indicate a cancelled load
412            (SessionLoader.__init__): Add the db_connection_callback parameter
413            which will be used by the loader to get updated parameters and a
414            password for a database connection
415            (SessionLoader.__init__): Add the new XML elements to the
416            dispatchers dictionary
417            (SessionLoader.check_attrs): Two new conversions, ascii to convert
418            to a byte-string object and idref as a generic id reference
419            (SessionLoader.start_dbconnection)
420            (SessionLoader.start_dbshapesource): New. Handlers for the new XML
421            elements
422            (load_session): Add the db_connection_callback to pass through the
423            SessionLoader
424    
425            * test/test_load.py (TestPostGISLayer, TestPostGISLayerPassword):
426            New classes to test loading of sessions with postgis database
427            connections.
428    
429    2003-08-25  Bernhard Herzog  <[email protected]>
430    
431            * Thuban/UI/mainwindow.py (__ThubanVersion__): Remove this and
432            replace it and the comment with __BuildDate__ by the Source: and
433            Id: cvs keywords as used in the other files.
434    
435    2003-08-25  Bernhard Herzog  <[email protected]>
436    
437            * Thuban/Model/load.py (SessionLoader.check_attrs): Raise a
438            LoadError when a required attribute is missing. The code used to
439            be commented out for some reason, but probably should have been
440            active.
441    
442            * test/test_load.py (TestLoadError.test): Test the message in the
443            LoadError too to make sure it really is about the missing
444            attribute
445    
446    2003-08-22  Bernhard Herzog  <[email protected]>
447    
448            * test/test_save.py (SaveSessionTest.test_dbf_table)
449            (SaveSessionTest.test_joined_table): Add XML validation tests.
450    
451    2003-08-22  Bernhard Herzog  <[email protected]>
452    
453            Implement saving a session with a postgis connection
454    
455            * Resources/XML/thuban-0.9.dtd (dbconnection, dbshapesource) New
456            elements for database connections and shapestores using db
457            connections
458            (session): Add the dbconnections to the content model
459    
460            * Thuban/Model/save.py (SessionSaver.write_db_connections): New.
461            Write the db connections
462            (SessionSaver.write_session): Call write_db_connections to write
463            the connection before the data sources
464            (SessionSaver.write_data_containers): Handle postgis shapestores
465    
466            * test/test_save.py (SaveSessionTest.thubanids)
467            (SaveSessionTest.thubanidrefs): Update for new DTD
468            (SaveSessionTest.test_save_postgis): New. Test saving a session
469            with postgis connections
470    
471            * Thuban/Model/postgisdb.py (PostGISTable.DBConnection)
472            (PostGISTable.TableName): New accessor methods for the connection
473            and table name
474    
475            * test/test_postgis_db.py (TestPostGISTable.test_dbconn)
476            (TestPostGISTable.test_dbname): New methods to test the new
477            PostGISConnection methods
478    
479    2003-08-22  Bernhard Herzog  <[email protected]>
480    
481            * Thuban/Model/postgisdb.py (ConnectionError): New exception class
482            for exceptions occurring when establishing a Database connection
483            (PostGISConnection.connect): Catch psycopg.OperationalError during
484            connects and raise ConnectionError.
485    
486            * test/test_postgis_db.py (TestPostgisDBExceptions): New class for
487            tests for database exceptions
488    
489    2003-08-22  Bernhard Herzog  <[email protected]>
490    
491            Prepare the test suite for tests with required authentication
492    
493            * test/postgissupport.py (PostgreSQLServer.__init__): Add instance
494            variables with two predefined users/passwords, one for the admin
495            and one for a non-privileged user.
496            (PostgreSQLServer.createdb): Pass the admin name to initdb and add
497            the non-privileged user to the database and set the admin password
498            (PostgreSQLServer.wait_for_postmaster): Use the admin user name.
499            Better error reporting
500            (PostgreSQLServer.connection_params)
501            (PostgreSQLServer.connection_string): New methods to return
502            information about how to connect to the server
503            (PostgreSQLServer.execute_sql): New. Convenience method to execute
504            SQL statements
505            (PostgreSQLServer.require_authentication): Toggle whether the
506            server requires authentication
507            (PostgreSQLServer.create_user, PostgreSQLServer.alter_user): New.
508            Add or alter users
509            (PostGISDatabase.initdb): Pass the admin name one the
510            subprocesses' command lines. Grant select rights on
511            geometry_columns to everybody.
512            (upload_shapefile): Use the admin name and password when
513            connecting. Grant select rights on the new table to everybody.
514    
515            * test/test_viewport.py (TestViewportWithPostGIS.setUp): Use the
516            server's new methods to get the connection parameters.
517    
518            * test/test_postgis_session.py (TestSessionWithPostGIS.setUp)
519            (TestSessionWithPostGIS.test_remove_dbconn_exception): Use the
520            server's new methods to get the connection parameters.
521    
522            * test/test_postgis_db.py
523            (TestPostGISConnection.test_gis_tables_empty)
524            (TestPostGISConnection.test_gis_tables_non_empty)
525            (PostGISStaticTests.setUp): Use the server's new methods to get
526            the connection parameters.
527    
528    2003-08-22  Bernhard Herzog  <[email protected]>
529    
530            * Thuban/UI/about.py (About.__init__): Add the psycopg version.
531    
532            * Thuban/version.py: Add psycopg version
533    
534            * Thuban/Model/postgisdb.py (psycopg_version): New. Return the
535            version of the psycopg module
536    
537    2003-08-22  Bernhard Herzog  <[email protected]>
538    
539            * Thuban/UI/dbdialog.py (DBPwdDlg): Removed because it's not used.
540            (DBFrame.OnEdit): Removed because it's not used and wouldn't work
541            at the moment. The functionality should probably be implemented
542            some time, though.
543            (DBFrame.OnRemove): Display a message if the connection can't be
544            removed because it's still in use.
545    
546    2003-08-22  Jan-Oliver Wagner <[email protected]>
547    
548            * Thuban/UI/about.py (About.__init__): split up the huge about
549            text into elements/lists for easier translation. This fixes bug
550            https://intevation.de/rt/webrt?serial_num=2058
551            Also, made some forgotten string available for the i18n.
552    
553    2003-08-21  Bernhard Herzog  <[email protected]>
554    
555            Make postgis support really optional including insensitive menu
556            items.
557    
558            * Thuban/Model/postgisdb.py (has_postgis_support): New. Return
559            whether the postgis is supported.
560    
561            * Thuban/UI/dbdialog.py: Put the psycopg import into try..except
562            to make postgis support optional
563    
564            * Thuban/UI/mainwindow.py (_has_postgis_support): New. Context
565            version of Thuban.Model.postgisdb.has_postgis_support
566            (database_management command): Make it only sensitive if postgis
567            is supported.
568    
569    2003-08-21  Jan-Oliver Wagner <[email protected]>
570    
571            * Doc/manual/thuban-manual.xml: Added CVS revision for rev-history.
572            (section Adding and Removing Layers): Added text and described
573            multi-selection.
574            (chapter Extensions): New.
575    
576    2003-08-21  Jan-Oliver Wagner <[email protected]>
577    
578            * Thuban/UI/mainwindow.py (MainWindow.AddLayer): Changed dialog
579            settings to allow multiple files to load into the map.
580            Also reduced selection to *.shp as a default.
581    
582    2003-08-20  Bernhard Herzog  <[email protected]>
583    
584            Add dialogs and commands to open database connections and add
585            database layers.
586    
587            * Thuban/UI/mainwindow.py (MainWindow.DatabaseManagement): New
588            method to open the database connection management dialog
589            (MainWindow.AddDBLayer): New method to add a layer from a database
590            (_has_dbconnections): New helper function to use for sensitivity
591            (database_management command, layer_add_db command): New commands
592            that call the above new methods.
593            (main_menu): Add the new commands to the menu.
594    
595            * Thuban/Model/postgisdb.py (PostGISConnection.__init__)
596            (PostGISConnection.connect): Establish the actual connection in a
597            separate method and call it in __init__. This makes it easier to
598            override the behavior in test cases
599            (PostGISConnection.BriefDescription): New method to return a brief
600            description for use in dialogs.
601    
602            * test/test_postgis_db.py (NonConnection): DB connection that
603            doesn't actually connect
604            (TestBriefDescription): New class with tests for the new
605            BriefDescription method
606    
607    2003-08-19  Jan-Oliver Wagner <[email protected]>
608    
609            Moved anything from extensions to libraries.
610    
611            * libraries: New.
612    
613            * libraries/ pyprojection, pyshapelib, shapelib, thuban: New.
614    
615            * libraries/pyprojection/ LICENSE, MANIFEST.in, Projection.i,
616            Projection.py, Projection_wrap.c, setup.py, swighelp.txt: These files have
617            been moved here from thuban/extensions/pyprojection/
618            See there in the Attic for the older history.
619    
620            * libraries/pyshapelib/ COPYING, ChangeLog, NEWS, README, dbflib.i,
621            dbflib.py, dbflib_wrap.c, pyshapelib_api.h, pytest.py, setup.py,
622            shapelib.i, shapelib.py, shapelib_wrap.c, shptreemodule.c: These files
623            have been moved here from thuban/extensions/pyshapelib/
624            See there in the Attic for the older history.
625    
626            * libraries/shapelib/ dbfopen.c, shapefil.h, shpopen.c, shptree.c: These
627            files have been moved here from thuban/extensions/shapelib/
628            See there in the Attic for the older history.
629    
630            * libraries/thuban/ bmpdataset.cpp, cpl_mfile.cpp, cpl_mfile.h,
631            gdalwarp.cpp, wxproj.cpp: These files have been moved here from
632            thuban/extensions/thuban/
633            See there in the Attic for the older history.
634    
635            * MANIFEST.in, setup.cfg, setup.py: renamed extensions to libraries.
636    
637            * extensions/thuban/ bmpdataset.cpp, cpl_mfile.cpp, cpl_mfile.h,
638            gdalwarp.cpp, wxproj.cpp: Moved to libraries/thuban.
639    
640            * extensions/shapelib/ dbfopen.c, shapefil.h, shpopen.c, shptree.c:
641            Moved to libraries/shapelib.
642    
643            * extensions/pyshapelib/ COPYING, NEWS, dbflib.py, pytest.py,
644            shapelib.py, README, dbflib_wrap.c, setup.py, shapelib_wrap.c,
645            ChangeLog, dbflib.i, pyshapelib_api.h, shapelib.i, shptreemodule.c:
646            Moved to libraries/pyshapelib.
647    
648            * extensions/pyprojection/ MANIFEST.in, Projection.py, setup.py,
649            LICENSE, Projection.i, Projection_wrap.c, swighelp.txt:
650            Moved to libraries/pyprojection.
651    
652            * extensions/ pyprojection, pyshapelib, shapelib, thuban: Removed.
653    
654            * extensions: Removed.
655    
656    2003-08-19  Bernhard Herzog  <[email protected]>
657    
658            * test/test_viewport.py (ViewPortTest): We don't use the
659            facilities of FileTestMixin so don't derive from it.
660            (TestViewportWithPostGIS): New class with tests for using a
661            viewport on a map with postgis layers.
662    
663    2003-08-19  Bernhard Herzog  <[email protected]>
664    
665            Add the db connection management to the session.
666    
667            * Thuban/Model/session.py (Session.__init__): New instance
668            variable db_connections
669            (Session.AddDBConnection, Session.DBConnections)
670            (Session.HasDBConnections, Session.CanRemoveDBConnection)
671            (Session.RemoveDBConnection): New methods to manage and query the
672            db connections managed by the session
673            (Session.OpenDBShapeStore): New method to open a shapestore from a
674            db connection
675    
676            * Thuban/Model/messages.py (DBCONN_REMOVED, DBCONN_ADDED): New
677            messages for the db connection handling in the session
678    
679            * test/test_postgis_session.py: New. test cases for the session's
680            db connection handling with postgis connections
681    
682    2003-08-19  Bernhard Herzog  <[email protected]>
683    
684            Add very basic postgis database support and the corresponding test
685            cases. The test cases require a PostgreSQL + postgis installation
686            but no existing database. The database will be created
687            automatically by the test cases
688    
689            * test/README: Add note about skipped tests and the requirements
690            of the postgis tests.
691    
692            * Thuban/Model/postgisdb.py: New. Basic postgis database support.
693    
694            * test/test_postgis_db.py: New. Test cases for the postgis
695            support.
696    
697            * Thuban/Model/wellknowntext.py: New. Parser for well-known-text
698            format
699    
700            * test/test_wellknowntext.py: New. Test cases for the
701            wellknowntext parser
702    
703            * test/postgissupport.py: New. Support module for tests involving
704            a postgis database.
705    
706            * test/support.py (execute_as_testsuite): Shut down the postmaster
707            if it's still running after the tests
708    
709            * Thuban/Model/data.py (RAW_WKT): New constant for raw data in
710            well known text format
711    
712    2003-08-19  Jan-Oliver Wagner <[email protected]>
713    
714            * Examples/simple_extensions/hello_world.py: New. Raises a Hello World
715            message dialog.
716    
717    2003-08-18  Bernhard Herzog  <[email protected]>
718    
719            * test/support.py (ThubanTestResult.printErrors): Indent the
720            reason for the skips in the output to make it a bit more readable.
721            (execute_as_testsuite): New helper function to run a test suite
722            and print some more information.
723            (run_tests): Use execute_as_testsuite to run the tests
724    
725            * test/runtests.py (main): Use execute_as_testsuite to run the
726            tests
727    
728    2003-08-18  Bernhard Herzog  <[email protected]>
729    
730            Fix some bugs in Thuban and the test suite that were uncovered by
731            changes introduced in Python 2.3:
732    
733            * Thuban/Model/table.py (DBFTable.__init__): Make sure the
734            filename is an absolute name
735    
736            * Thuban/Model/layer.py (RasterLayer.__init__): Make sure the
737            filename is an absolute name
738    
739            * test/test_save.py (SaveSessionTest.testRasterLayer): Use a
740            unique filename to save to and use the correct relative filename
741            in the expected output.
742            (SaveSessionTest.test_dbf_table): Use the correct relative
743            filename in the expected output.
744    
745            * test/test_layer.py (TestLayer.test_raster_layer): Update the
746            test to check whether the filename is absolute.
747    
748    2003-08-18  Jan-Oliver Wagner <[email protected]>
749    
750            * Thuban/UI/about.py (About.__init__): Added Silke Reimer.
751    
752    2003-08-15  Bernhard Herzog  <[email protected]>
753    
754            Change the way shapes are returned by a shape store. The
755            ShapesInRegion method returns an iterator over actual shape
756            objects instead of a list of shape ids.
757    
758            * Thuban/Model/data.py (ShapefileShape.ShapeID): New. Return shape
759            id.
760            (ShapefileStore.ShapesInRegion): Return an iterator over the
761            shapes which yields shape objects instead of returning a list of
762            shape ids
763            (ShapefileStore.AllShapes): New. Return an iterator over all
764            shapes in the shape store
765            (DerivedShapeStore.AllShapes): New. Like in ShapefileStore
766    
767            * Thuban/Model/layer.py (Layer.ShapesInRegion): Update
768            doc-string.
769    
770            * Thuban/UI/baserenderer.py
771            (BaseRenderer.layer_ids, BaseRenderer.layer_shapes): Rename to
772            layer_shapes and make it return an iterator containg shapes
773            instead of a list of ids.
774            (BaseRenderer.draw_shape_layer): Update doc-string; Adapt to
775            layer_shapes() change
776    
777            * Thuban/UI/renderer.py (ScreenRenderer.layer_ids)
778            (ScreenRenderer.layer_shapes): Rename as in BaseRenderer
779    
780            * Thuban/UI/viewport.py (ViewPort._find_shape_in_layer): Adapt to
781            changes in the ShapesInRegion return value.
782            (ViewPort._get_hit_tester): Remove commented out code
783    
784            * test/mockgeo.py (SimpleShapeStore.ShapesInRegion): Adapt to the
785            new return value.
786            (SimpleShapeStore.AllShapes): New. Implement this method too.
787    
788            * test/test_layer.py (TestLayer.test_arc_layer)
789            (TestLayer.test_polygon_layer, TestLayer.test_point_layer)
790            (TestLayer.test_point_layer_with_projection)
791            (TestLayer.test_derived_store): Adapt to changes in the
792            ShapesInRegion return value.
793    
794            * test/test_shapefilestore.py
795            (TestShapefileStoreArc.test_shapes_in_region)
796            (TestShapefileStorePolygon.test_shapes_in_region)
797            (TestShapefileStorePoint.test_shapes_in_region): Adapt to changes
798            in the ShapesInRegion return value.
799            (TestShapefileStorePoint.test_all_shapes)
800            (TestShapefileStoreArc.test_shape_shapeid): New tests for the new
801            methods
802    
803            * test/test_derivedshapestore.py
804            (TestDerivedShapeStore.test_shapes_in_region): Adapt to changes in
805            the ShapesInRegion return value.
806            (TestDerivedShapeStore.test_all_shapes)
807            (TestDerivedShapeStore.test_shape_shapeid): New tests for the new
808            methods
809    
810    2003-08-15  Bernhard Herzog  <[email protected]>
811    
812            Make the renderers deal correctly with raw vs. python level
813            representation of shape geometries
814    
815            * Thuban/UI/baserenderer.py (BaseRenderer.low_level_renderer):
816            Return a flag useraw in addition to the callable and the parameter
817            to indicate whether the callable can deal with the raw shape data
818            or uses the higher level python lists of coordinates. The callable
819            now should accept either the raw data or the return value of the
820            shape's Points() method.
821            (BaseRenderer.draw_shape_layer): Adapt to the low_level_renderer
822            change
823            (BaseRenderer.projected_points): Instead of the shape id use the
824            points list as parameter.
825            (BaseRenderer.draw_polygon_shape, BaseRenderer.draw_arc_shape)
826            (BaseRenderer.draw_point_shape): Adapt to projected_points()
827            change and accept the points list as parameter instead of the
828            shape id.
829    
830            * Thuban/UI/renderer.py (MapRenderer.low_level_renderer): Return
831            the useraw flag as required by the BaseRenderer
832            (ScreenRenderer.draw_shape_layer): Adapt to low-level renderer
833            changes.
834    
835            * test/test_baserenderer.py
836            (TestBaseRenderer.test_point_with_classification): New test for
837            rendering a map with classifications.
838    
839    2003-08-15  Bernhard Herzog  <[email protected]>
840    
841            * Thuban/UI/viewport.py (ViewPort.find_shape_at)
842            (ViewPort._find_shape_in_layer, ViewPort._find_shape_in_layer)
843            (ViewPort._get_hit_tester, ViewPort.projected_points)
844            (ViewPort._hit_point, ViewPort._hit_arc, ViewPort._hit_polygon)
845            (ViewPort._find_label_at): Split the find_shape_at method into
846            several new methods and use the functions in the hit-test module.
847    
848            * Thuban/UI/hittest.py: New module with Python-level hit-testing
849            functions
850    
851            * test/test_hittest.py: New. Test for the new hittest module
852    
853    2003-08-15  Bernhard Herzog  <[email protected]>
854    
855            * Thuban/Model/layer.py (Layer.ShapesInRegion): Apply the layer
856            projection to all corners of the bounding box to get a better
857            approximation of the projected bounding box
858    
859            * test/test_layer.py (TestLayer.test_point_layer_with_projection):
860            New. Test coordinate handling of a layer with a projection.
861            Catches the bug fixed in Layer.ShapesInRegion
862    
863    2003-08-15  Bernhard Herzog  <[email protected]>
864    
865            Move some of the mock objects in test_baserenderer into their own
866            module so they can easily be used from other tests
867    
868            * test/mockgeo.py: New test helper module with some mock objects
869            for geometry related things like shapes, shapestores and
870            projections.
871    
872            * test/test_mockgeo.py: New. Tests for the new helper module
873    
874            * test/test_baserenderer.py: Some of the mock-objects are in
875            mockgeo now.
876    
877    2003-08-12  Jan-Oliver Wagner <[email protected]>
878    
879            * Thuban/UI/about.py (About.__init__): Added Bj�rn Broscheit.
880    
881  2003-08-12  Bernhard Herzog  <[email protected]>  2003-08-12  Bernhard Herzog  <[email protected]>
882    
883          * po/de.po: New. German translations by Bjoern Broscheit          * po/de.po: New. German translations by Bjoern Broscheit

Legend:
Removed from v.1582  
changed lines
  Added in v.1716

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26