Exemple #1
0
 def write(self):
     """Заносим выбранную пользователем дату в переменную data,
      и записываем дату и название заметки в главное окно"""
     data = self.calendarWidget.selectedDate()
     day = data.day()
     month = data.month()
     year = data.year()
     data = datetime(year=year, month=month, day=day)
     text = self.NoteText.text().strip()
     # Добавляем эту заметку в базу данных notes
     try:
         cur.execute("INSERT INTO notes VALUES(NULL, ?, ?, ?, ?)", (
             data.strftime('%Y'),
             data.strftime('%m'),
             data.strftime('%d'),
             text,
         )).fetchall()
         con.commit()
         # Добавляем заметку в главное окно
         self.mainWindow.listWidget.addItem(
             data.strftime('%d.%m.%Y') + ' - ' + text + '\n')
         self.close()
     except Exception:
         create_message_window(
             self, 'Заметка под таким названием уже существует')
         self.close()
Exemple #2
0
 def clear_event(self):
     """Удаляет выбранный ивент"""
     try:
         start, end = get_start_and_end(self.EventView.currentItem().text())
     except AttributeError:
         create_message_window(self, 'Событие не выбрано')
         return
     cur.execute('''DELETE FROM events 
                     WHERE start_hour = ? and start_minute = ? and end_hour = ? and 
                     end_minute = ? and day = ?''',
                 (*start, *end, self.day_n))
     con.commit()
     self.EventView.takeItem(self.EventView.currentRow())
     self.event_description.setText('')
Exemple #3
0
 def edit_event(self):
     """Редактирует выбранный ивент"""
     try:
         name = self.EventView.currentItem().text().split('-')[1].strip()
         start, end = get_start_and_end(self.EventView.currentItem().text())
         text = self.get_description(start, end)
     except AttributeError:
         create_message_window(self, 'Событие не выбрано')
         return
     dialog = EventDialog(self, edit=True)
     dialog.event_name.setText(name)
     dialog.event_text.setText(text)
     dialog.event_start.setTime(QTime(*start))
     dialog.event_end.setTime(QTime(*end))
     dialog.exec()
Exemple #4
0
 def create_event(self, start, end, name, event_text):
     """Создает ивент в EventView"""
     time = [start.hour, start.minute, end.hour, end.minute]
     t = [str(i).rjust(2, '0') for i in time]
     text = 'c {}:{} по {}:{} - {}'.format(*t, name)
     # проверка что введенный интервал времение не пересекается с временем других ивентов
     if self.is_normal_events(start, end):
         try:
             cur.execute('''INSERT INTO events VALUES(NULL, ?, ?, ?, ?, ?, ?, ?)''',
                         (self.mainwindow.day_n, *time, name, event_text))
             con.commit()
         except Exception as e:
             print(e)
         self.mainwindow.EventView.addItem(text)
         return True
     else:
         create_message_window(self, 'Введите другой инервал времни')
 def clear_event(self):
     """При удалении какого либо элемента, мы делаем
     проверку на то, выбран ли элемент"""
     if self.listWidget.currentRow() == -1:
         # Если элемент не выбран: мы выводим окно с надписью: 'Не выбран элемент'
         create_message_window(self, 'Не выбран элемент')
     else:
         # Если же элемент для удаления выбран:
         text = self.listWidget.currentItem().text()
         data, name = text[:10], text[13:].strip()
         day, month, year = list(map(int, data.split('.')))
         # Удаляем его из нашей базы данных
         arr = cur.execute("DELETE FROM notes WHERE (year LIKE ? AND month LIKE ?"
                           " AND day LIKE ? AND name LIKE ?)", (int(year), int(month),
                                                                int(day), name,)).fetchall()
         con.commit()
         # А также из списка заметок
         self.listWidget.takeItem(self.listWidget.currentRow())
Exemple #6
0
def load_excel_in_week(window, day=None):
    """Загружает информацию из таблицы excel в таблицу events из БД"""
    file_name = QFileDialog.getOpenFileName(window, 'Выберите таблицу', '',
                                            '(*.xlsx)')[0]
    try:
        workbook = xlrd.open_workbook(file_name)
    except FileNotFoundError:
        return
    days = workbook.sheet_names()
    if day:
        days = [day]
    for day in days:
        try:
            day_n = get_number_day(day)
            worksheet = workbook.sheet_by_name(day)
            data = get_data_from_worksheet(worksheet)
            cur.execute('''DELETE FROM events WHERE day = ?''', (day_n, ))
            load_data_in_list_widget(data, day_n)
        except xlrd.biffh.XLRDError:
            pass
        except TypeError as e:
            print(e)
            create_message_window(window, 'Ошибка чтения таблицы')
    create_message_window(window, 'Таблица загружена')
Exemple #7
0
def create_excel(window, days):
    """Создаем таблицу из наших ивентов"""
    # выбор названия файла
    file_name, ok_pressed = QInputDialog.getText(
        window, "Название файла", "Введите желаемое название файла")
    # если название файла не введено то ничего не делаем
    # получаем путь папки куда сохранить файл
    if not ok_pressed or not file_name:
        return
    folder_way = QFileDialog.getExistingDirectory(window)
    if not folder_way:
        return
    # сохраняем сгенерированную таблицу в указанную папку
    try:
        workbook = xlsxwriter.Workbook(f'{folder_way}/{file_name}.xlsx')
    except FileNotFoundError:
        return
    for day in days:
        worksheet = workbook.add_worksheet(day)
        day_n = get_number_day(day)
        # вносим данные в таблицу
        give_info_in_table(worksheet, day_n)
    create_message_window(window, 'Таблица создана')
    workbook.close()