diff --git a/src/Model/Friction/Friction.py b/src/Model/Friction/Friction.py index 22c4a78912310ebe07ff27c30af2b747e857b204..db1a60db772c318dd57fdfdf3fe8ab8b5c9ecaac 100644 --- a/src/Model/Friction/Friction.py +++ b/src/Model/Friction/Friction.py @@ -129,6 +129,15 @@ class Friction(SQLSubModel): def has_edge(self): return self._edge is not None + def has_coefficient(self): + return ( + self._begin_strickler is not None and + self._end_strickler is not None + ) + + def is_full_defined(self): + return self.has_edge() and self.has_coefficient() + @property def begin_kp(self): return self._begin_kp diff --git a/src/View/Frictions/PlotStricklers.py b/src/View/Frictions/PlotStricklers.py index 2f180e68f72795753f5ae374dc7cd956d9782e74..6e5c4e0c366eb31e0d6b89331884fe06ea246da4 100644 --- a/src/View/Frictions/PlotStricklers.py +++ b/src/View/Frictions/PlotStricklers.py @@ -16,6 +16,8 @@ # -*- coding: utf-8 -*- +import logging + from tools import timer, flatten from View.Tools.PamhyrPlot import PamhyrPlot @@ -23,13 +25,20 @@ from PyQt5.QtCore import ( QCoreApplication ) +logger = logging.getLogger() + _translate = QCoreApplication.translate class PlotStricklers(PamhyrPlot): def draw_frictions(self, frictions, color="r"): - lst = frictions - lst.sort(key=lambda s: s.begin_kp) + lst = sorted( + filter( + lambda f: f.is_full_defined(), + frictions + ), + key=lambda s: s.begin_kp + ) coef = flatten( map( diff --git a/src/tools.py b/src/tools.py index bd413d37f8600a949133ad09d85d50992c87361e..d3c2ddcc266086e3434c55da7158f11773f949b4 100644 --- a/src/tools.py +++ b/src/tools.py @@ -199,10 +199,7 @@ def flatten(lst): Returns: returns a list of element """ - if not lst: - return [] - - return reduce(list.__add__, lst) + return reduce(list.__add__, lst, []) def timestamp(dt: datetime):