- for row, book in enumerate(books):
- for col, col_name in enumerate(columns):
- value = getattr(book, col_name)
- if value is None:
- value = u''
- elif not isinstance(value, (string_type, unicode_type)):
- value = str(value)
- grid.SetCellValue(row, col, value)
+ row = 0
+ for author in sorted(books_by_author):
+ grid.SetCellAlignment(row, 0, wx.ALIGN_LEFT, wx. ALIGN_CENTRE)
+ grid.SetCellSize(row, 0, 1, len(columns))
+ grid.SetCellValue(row, 0, u'%s' % (author,))
+ row += 1
+ books = books_by_author[author]
+ series = None
+ for book in books:
+ if book.series != series:
+ if book.series:
+ value = book.series
+ else:
+ value = u'Вне серий'
+ grid.SetCellAlignment(row, 0,
+ wx.ALIGN_LEFT, wx. ALIGN_CENTRE)
+ grid.SetCellSize(row, 0, 1, len(columns))
+ grid.SetCellValue(row, 0,
+ u'%s — %s' % (book.author1, value))
+ row += 1
+ series = book.series
+ for col, col_name in enumerate(columns):
+ value = getattr(book, col_name)
+ if value is None:
+ value = u''
+ elif not isinstance(value, (string_type, unicode_type)):
+ value = str(value)
+ grid.SetCellValue(row, col, value)
+ row += 1