URI: 
       tmove get_status to InvoiceStore - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 74b0ed5f48c838d86ad655aaa2dc485ced78d59a
   DIR parent 0d4d06c58b86a70354f50b58e8a42507d417e28f
  HTML Author: ThomasV <thomasv@gitorious>
       Date:   Wed, 22 Apr 2015 13:36:07 +0200
       
       move get_status to InvoiceStore
       
       Diffstat:
         M gui/qt/main_window.py               |      12 +++++++-----
         M lib/paymentrequest.py               |      17 +++++++++--------
       
       2 files changed, 16 insertions(+), 13 deletions(-)
       ---
   DIR diff --git a/gui/qt/main_window.py b/gui/qt/main_window.py
       t@@ -1189,12 +1189,12 @@ class ElectrumWindow(QMainWindow):
        
            def payment_request_ok(self):
                pr = self.payment_request
       -        status = pr.get_status()
                key = self.invoices.add(pr)
       +        status = self.invoices.get_status(key)
                self.update_invoices_list()
                if status == PR_PAID:
       -            self.do_clear()
                    self.show_message("invoice already paid")
       +            self.do_clear()
                    self.payment_request = None
                    return
        
       t@@ -1306,7 +1306,7 @@ class ElectrumWindow(QMainWindow):
                l.clear()
                for pr in inv_list:
                    key = pr.get_id()
       -            status = pr.get_status()
       +            status = self.invoices.get_status(key)
                    domain = pr.get_domain()
                    date_str = format_time(pr.get_expiration_date())
                    item = QTreeWidgetItem( [ date_str, domain, pr.memo, self.format_amount(pr.get_amount(), whitespaces=True), pr_tooltips.get(status,'')] )
       t@@ -1485,7 +1485,9 @@ class ElectrumWindow(QMainWindow):
                grid.addWidget(QLabel(outputs_str), 5, 1)
                if pr.tx:
                    grid.addWidget(QLabel(_("Transaction ID") + ':'), 6, 0)
       -            grid.addWidget(QLabel(pr.tx), 6, 1)
       +            l = QLineEdit(pr.tx)
       +            l.setReadOnly(True)
       +            grid.addWidget(l, 6, 1)
                vbox.addLayout(grid)
                vbox.addLayout(Buttons(CloseButton(d)))
                d.exec_()
       t@@ -1508,7 +1510,7 @@ class ElectrumWindow(QMainWindow):
                    return
                key = str(item.data(0, 32).toString())
                pr = self.invoices.get(key)
       -        status = pr.get_status()
       +        status = self.invoices.get_status(key)
                menu = QMenu()
                menu.addAction(_("Details"), lambda: self.show_invoice(key))
                if status == PR_UNPAID:
   DIR diff --git a/lib/paymentrequest.py b/lib/paymentrequest.py
       t@@ -84,13 +84,6 @@ class PaymentRequest:
            def __str__(self):
                return self.raw
        
       -    def get_status(self):
       -        if self.tx is not None:
       -            return PR_PAID
       -        if self.has_expired():
       -            return PR_EXPIRED
       -        return PR_UNPAID
       -
            def parse(self, r):
                self.id = bitcoin.sha256(r)[0:16].encode('hex')
                try:
       t@@ -330,11 +323,19 @@ class InvoiceStore(object):
                with open(path, 'w') as f:
                    r = f.write(json.dumps(l))
        
       +    def get_status(self, key):
       +        pr = self.get(key)
       +        if pr.tx is not None:
       +            return PR_PAID
       +        if pr.has_expired():
       +            return PR_EXPIRED
       +        return PR_UNPAID
       +
            def add(self, pr):
                key = pr.get_id()
                if key in self.invoices:
                    print_error('invoice already in list')
       -            return False
       +            return key
                self.invoices[key] = pr
                self.save()
                return key