Ejemplo n.º 1
0
    def on_validate(self):
        idx_counter = self.comboCounter.currentIndex()
        value_counter = int(self.lEdit.text())

        if idx_counter == 0 or value_counter == "":
            self.close()
            return

        allcounters = Counter.findAll()
        counter = allcounters[idx_counter-1]

        r = Recording(counter.id, self.current_date, value_counter)
        r.insert()

        self.closed.emit()
        self.close()
Ejemplo n.º 2
0
DB.open('example.db')

#### Add some counters
elec = Counter("Electricité")
elec.insert()
print(elec)

gaz = Counter("Gaz")
gaz.insert()
print(gaz)

print("")

#### List all the counters
print("List all : ")
allcounters = Counter.findAll()
for c in allcounters:
    print(str(c))



#### Put some recordings
r = Recording(elec.id, datetime.datetime.strptime("2015-10-01", "%Y-%m-%d"), 1000)
r.insert()
r = Recording(elec.id, datetime.datetime.strptime("2015-10-05", "%Y-%m-%d"), 1500)
r.insert()


r = Recording(gaz.id, datetime.datetime.strptime("2015-10-01", "%Y-%m-%d"), 100)
r.insert()
r = Recording(gaz.id, datetime.datetime.strptime("2015-10-10", "%Y-%m-%d"), 200)
Ejemplo n.º 3
0
    def __init__(self, parent):
        super(RegisterDialog, self).__init__(parent)
        self.setModal(True)
        self.setWindowTitle("Registe a new counter entry")
        vbox = QVBoxLayout()

        # Setting up the widgets for selecting the counter
        hbox1 = QHBoxLayout()
        label = QLabel("Select the counter")
        hbox1.addWidget(label)

        self.comboCounter = QComboBox()
        self.comboCounter.addItem("None")
        allcounters = Counter.findAll()
        for c in allcounters:
            self.comboCounter.addItem(c.name)
        hbox1.addWidget(self.comboCounter)

        vbox.addLayout(hbox1)

        # Setting up the widgets for providing the value

        hbox2 = QHBoxLayout()
        label = QLabel("Value")
        hbox2.addWidget(label)

        self.lEdit = QLineEdit()
        hbox2.addWidget(self.lEdit)

        vbox.addLayout(hbox2)

        # Setting up the widgets to provide the date
        hbox3 = QHBoxLayout()
        label = QLabel("Date")
        hbox3.addWidget(label)

        self.calendar = QCalendarWidget()
        self.calendar.clicked.connect(self.on_cal_clicked)
        hbox3.addWidget(self.calendar)

        vbox.addLayout(hbox3)

        # Adding the push buttons to validate the entry of cancel it
        hbox4 = QHBoxLayout()
        okbutton = QPushButton("Ok")
        okbutton.clicked.connect(self.on_validate)

        hbox4.addWidget(okbutton)

        cancelbutton = QPushButton("Cancel")
        cancelbutton.clicked.connect(self.close)
        hbox4.addWidget(cancelbutton)


        vbox.addLayout(hbox4)


        self.setLayout(vbox)
        self.resize(QSize(100,100))

        now = datetime.datetime.now()
        self.current_date = datetime.datetime(now.year, now.month, now.day, 12)
Ejemplo n.º 4
0
    def setupTabs(self):
        #self.tabs.currentChanged.disconnect(self.currentTabChanged)
        while(self.tabs.count() > 0):
            self.tabs.removeTab(0)

        self.tables = {}
        allcounters = Counter.findAll()
        for c in allcounters:
            tab = QWidget(self.tabs)
            hl = QHBoxLayout()
            tab.setLayout(hl)
            
            recordings = Recording.findByIdCounter(c.id)

            tw = QTableWidget(len(recordings), 5)
            self.tables["%i"%c.id] = tw
            column_names = ("Id","Counter", "Date", "Value", "Remove ?")
            tw.setHorizontalHeaderLabels(column_names)

            # Fill the table with the recordings
            for i, r in enumerate(recordings):
                # The id of the recording in the table of recordings
                item = QTableWidgetItem("{}".format(r.id))
                item.setFlags(QtCore.Qt.NoItemFlags)
                tw.setItem (i, 0, item)
                
                # The id of the associated counter
                item = QTableWidgetItem("{}".format(r.idcounter))
                item.setFlags(QtCore.Qt.NoItemFlags)
                tw.setItem (i, 1, item)

                # The date when the recording has been made
                item = QTableWidgetItem(r.date.strftime("%Y-%m-%d %H:%M:%S"))
                item.setFlags(QtCore.Qt.NoItemFlags)
                tw.setItem (i, 2, item)

                # The value can be edited
                item = QTableWidgetItem("{}".format(r.value))
                item.setFlags(QtCore.Qt.ItemIsEditable | QtCore.Qt.ItemIsEnabled)

                tw.setItem (i, 3, item)

                but = QPushButton("Remove")
                but.clicked.connect(partial(self.on_removeClicked, counter_id=c.id, recording_id=r.id))
                #item = QTableWidgetItem(but)
                #tw.setItem(i, 4, but)
                #tw.setIndexWidget()
                tw.setCellWidget(i, 4, but)

            tw.cellChanged.connect(partial(self.on_cellChanged, counter_id=c.id))

            # We allow sorting and we sort by decreasing date
            # to get the most recent recordings at the top
            tw.setSortingEnabled(True)
            tw.sortByColumn(2, QtCore.Qt.DescendingOrder)

            # Ajust the width of the columns to better see the contents
            tw.resizeColumnsToContents()
            tw.setFixedWidth(600)
            hl.addWidget(tw)

            #### Plot the data
            canvas = self.plot_data(recordings)
            hl.addWidget(canvas)


            self.tabs.addTab(tab,str(c.id) + "-" + c.name)