| Total Complexity | 4 | 
| Total Lines | 21 | 
| Duplicated Lines | 0 % | 
| 1 | import csv | ||
| 8 | class ExportCommand(BotCommand): | ||
| 9 | command = '/export' | ||
| 10 | |||
| 11 | def default(self, message): | ||
| 12 | from tempfile import mkstemp | ||
| 13 | |||
| 14 | tab = self.get_tab(message.chat.id) | ||
| 15 | |||
| 16 | csvhandle, csvfilename = mkstemp(suffix='.csv', prefix='verese-export-') | ||
| 17 | with os.fdopen(csvhandle, 'wb') as csvfile: | ||
| 18 | csvwriter = csv.writer(csvfile, delimiter=',') | ||
| 19 | csvwriter.writerow(['Person', 'Amount', 'Date', 'Reason']) | ||
| 20 | for entry in tab.entries: | ||
| 21 | user = self._db.root.users[entry.user_id] | ||
| 22 |                 user_repr = '{} {}'.format(user.first_name, user.last_name).strip() | ||
| 23 |                 row = [u'{}'.format(x).encode('utf-8') | ||
| 24 | for x in [user_repr, entry.amount, entry.date, entry.reason]] | ||
| 25 | csvwriter.writerow(row) | ||
| 26 | |||
| 27 | self.bot.sendDocument(chat_id=message.chat.id, document=open(csvfilename, 'rb')) | ||
| 28 | os.unlink(csvfilename) | ||
| 29 |