Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 5 additions & 8 deletions mapflow/dialogs/main_dialog.py
Original file line number Diff line number Diff line change
@@ -1,22 +1,19 @@
import sys
from pathlib import Path
from typing import Iterable, Optional, List
from datetime import datetime

from PyQt5 import uic
from PyQt5.QtCore import Qt, pyqtSignal
from PyQt5.QtGui import QPalette
from PyQt5.QtWidgets import (QWidget, QPushButton, QCheckBox, QTableWidgetItem, QStackedLayout, QLabel, QToolButton,
QAction, QMenu, QAbstractItemView, QHeaderView, QVBoxLayout, QButtonGroup, QTableWidget)
from PyQt5.QtWidgets import (QWidget, QPushButton, QCheckBox, QTableWidgetItem, QStackedLayout, QLabel, QToolButton,
QAction, QMenu, QAbstractItemView)
from qgis.core import QgsMapLayerProxyModel, QgsSettings

from . import icons
from ..config import config, ConfigColumns
from ..entity.billing import BillingType
from ..schema import BillingType, UserRole
from ..entity.provider import ProviderInterface
from ..functional import helpers
from ..schema.project import MapflowProject, UserRole
from ..schema.catalog import ProductType

ui_path = Path(__file__).parent/'static'/'ui'

Expand Down Expand Up @@ -240,8 +237,8 @@ def setup_for_billing(self, billing_type: BillingType):
"""
set the UI elements according to user's billing type
"""
credits_used = billing_type == billing_type.credits
balance_visible = billing_type != billing_type.none
credits_used = billing_type == BillingType.credits
balance_visible = billing_type != BillingType.none

self.topUpBalanceButton.setVisible(credits_used)
self.labelCoins_1.setVisible(False) # credits_used
Expand Down
5 changes: 2 additions & 3 deletions mapflow/dialogs/processing_dialog.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,8 @@
from PyQt5 import uic
from PyQt5.QtWidgets import QWidget, QDialogButtonBox

from ..entity.processing import Processing
from .icons import plugin_icon
from ..schema.processing import UpdateProcessingSchema
from ..schema.processing import UpdateProcessingSchema, ProcessingDTO

ui_path = Path(__file__).parent/'static'/'ui'

Expand All @@ -27,7 +26,7 @@ def on_name_change(self):
self.ok.setEnabled(True)
self.ok.setToolTip("")

def setup(self, processing: Processing):
def setup(self, processing: ProcessingDTO):
if not processing:
raise TypeError("Can edit only existing processing!")
self.setWindowTitle(self.tr("Edit processing {}").format(processing.name))
Expand Down
199 changes: 0 additions & 199 deletions mapflow/entity/processing.py

This file was deleted.

39 changes: 35 additions & 4 deletions mapflow/entity/status.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
from dataclasses import dataclass
from datetime import datetime
from enum import Enum
from typing import Optional

from PyQt5.QtCore import QObject

from ..schema.base import Serializable, SkipDataClass


class ProcessingStatusDict(QObject):
def __init__(self):
Expand Down Expand Up @@ -72,8 +77,12 @@ def is_cancelled(self):
def is_awaiting(self):
return self == ProcessingStatus.awaiting

@property
def is_terminal(self):
return self.is_ok or self.is_failed or self.is_refunded or self.is_cancelled


class ProcessingReviewStatus(NamedEnum):
class ProcessingReviewStatusEnum(NamedEnum):
none = None
in_review = 'IN_REVIEW'
not_accepted = 'NOT_ACCEPTED'
Expand All @@ -84,14 +93,36 @@ def __init__(self, value):
super().__init__(value)
self.value_map = ProcessingReviewStatusDict().value_map


@dataclass
class ProcessingReviewStatus(Serializable, SkipDataClass):
reviewStatus: Optional[ProcessingReviewStatusEnum] = None
inReviewUntil: Optional[datetime] = None

@classmethod
def from_dict(cls, data: Optional[dict]):
"""Handle None input by returning instance with defaults."""
if data is None:
return cls()
return super().from_dict(data)

def __post_init__(self):
if self.inReviewUntil:
self.inReviewUntil = datetime.strptime(self.inReviewUntil, '%Y-%m-%dT%H:%M:%S.%f%z').astimezone()
self.reviewStatus = ProcessingReviewStatusEnum(self.reviewStatus)

@property
def is_in_review(self):
return self == ProcessingReviewStatus.in_review
return self.reviewStatus == ProcessingReviewStatusEnum.in_review

@property
def is_not_accepted(self):
return self == ProcessingReviewStatus.not_accepted
return self.reviewStatus == ProcessingReviewStatusEnum.not_accepted

@property
def is_none(self):
return self == ProcessingReviewStatus.none
return self.reviewStatus == ProcessingReviewStatusEnum.none

@property
def is_accepted(self):
return self.reviewStatus == ProcessingReviewStatusEnum.accepted
3 changes: 3 additions & 0 deletions mapflow/errors/errors.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,3 +52,6 @@ def to_str(self, raw=False):
'\n Contact us to resolve the issue! help@geoalert.io').format(exception=str(e),
code=self.code)
return message

def __reduce__(self):
return (self.__class__, (self.code, self.parameters, self.message))
Loading
Loading