reports: Add BaseODS.lock_first_column() method.
This commit is contained in:
		
							parent
							
								
									d6821b1368
								
							
						
					
					
						commit
						8d3a0dbe4c
					
				
					 2 changed files with 25 additions and 5 deletions
				
			
		| 
						 | 
					@ -920,6 +920,22 @@ class BaseODS(BaseSpreadsheet[RT, ST], metaclass=abc.ABCMeta):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ### Sheets
 | 
					    ### Sheets
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def lock_first_column(self, sheet: Optional[odf.table.Table]=None) -> None:
 | 
				
			||||||
 | 
					        """Lock the first column of cells under the given sheet
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        This method sets all the appropriate settings to "lock" the first column
 | 
				
			||||||
 | 
					        of cells in a sheet, so it stays in view even as the viewer scrolls
 | 
				
			||||||
 | 
					        across the sheet. If a sheet is not given, works on ``self.sheet``.
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        if sheet is None:
 | 
				
			||||||
 | 
					            sheet = self.sheet
 | 
				
			||||||
 | 
					        config_map = self.ensure_config_map_entry(
 | 
				
			||||||
 | 
					            self.view, 'Tables', sheet.getAttribute('name'),
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					        self.set_config(config_map, 'PositionRight', 1, 'int')
 | 
				
			||||||
 | 
					        self.set_config(config_map, 'HorizontalSplitMode', 2, 'short')
 | 
				
			||||||
 | 
					        self.set_config(config_map, 'HorizontalSplitPosition', 1, 'short')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def lock_first_row(self, sheet: Optional[odf.table.Table]=None) -> None:
 | 
					    def lock_first_row(self, sheet: Optional[odf.table.Table]=None) -> None:
 | 
				
			||||||
        """Lock the first row of cells under the given sheet
 | 
					        """Lock the first row of cells under the given sheet
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -454,8 +454,12 @@ def test_ods_writer_date_style(ods_writer):
 | 
				
			||||||
    assert day.qname[1] == 'day'
 | 
					    assert day.qname[1] == 'day'
 | 
				
			||||||
    assert day.getAttribute('style') == 'long'
 | 
					    assert day.getAttribute('style') == 'long'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def test_ods_lock_first_row(ods_writer):
 | 
					@pytest.mark.parametrize('method_name,split_name,side_name', [
 | 
				
			||||||
    ods_writer.lock_first_row()
 | 
					    ('lock_first_row', 'Vertical', 'Bottom'),
 | 
				
			||||||
 | 
					    ('lock_first_column', 'Horizontal', 'Right'),
 | 
				
			||||||
 | 
					])
 | 
				
			||||||
 | 
					def test_ods_lock_first_cells(ods_writer, method_name, split_name, side_name):
 | 
				
			||||||
 | 
					    getattr(ods_writer, method_name)()
 | 
				
			||||||
    view_settings = get_child(
 | 
					    view_settings = get_child(
 | 
				
			||||||
        ods_writer.document.settings,
 | 
					        ods_writer.document.settings,
 | 
				
			||||||
        odf.config.ConfigItemSet,
 | 
					        odf.config.ConfigItemSet,
 | 
				
			||||||
| 
						 | 
					@ -467,9 +471,9 @@ def test_ods_lock_first_row(ods_writer):
 | 
				
			||||||
    sheet_name = ods_writer.sheet.getAttribute('name')
 | 
					    sheet_name = ods_writer.sheet.getAttribute('name')
 | 
				
			||||||
    config_entry = get_child(config_map, odf.config.ConfigItemMapEntry, name=sheet_name)
 | 
					    config_entry = get_child(config_map, odf.config.ConfigItemMapEntry, name=sheet_name)
 | 
				
			||||||
    for name, ctype, value in [
 | 
					    for name, ctype, value in [
 | 
				
			||||||
            ('PositionBottom', 'int', '1'),
 | 
					            (f'Position{side_name}', 'int', '1'),
 | 
				
			||||||
            ('VerticalSplitMode', 'short', '2'),
 | 
					            (f'{split_name}SplitMode', 'short', '2'),
 | 
				
			||||||
            ('VerticalSplitPosition', 'short', '1'),
 | 
					            (f'{split_name}SplitPosition', 'short', '1'),
 | 
				
			||||||
    ]:
 | 
					    ]:
 | 
				
			||||||
        child = get_child(config_entry, odf.config.ConfigItem, name=name)
 | 
					        child = get_child(config_entry, odf.config.ConfigItem, name=name)
 | 
				
			||||||
        assert child.getAttribute('type') == ctype
 | 
					        assert child.getAttribute('type') == ctype
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue