diff --git a/eos b/eos index ff0ffa77f..6efa234c6 160000 --- a/eos +++ b/eos @@ -1 +1 @@ -Subproject commit ff0ffa77ff5159f7b0ad7a30b7a56a4ebe978049 +Subproject commit 6efa234c6680f399fd997c1db10a05aee59e0696 diff --git a/service/fit.py b/service/fit.py index fb9353107..69304f777 100644 --- a/service/fit.py +++ b/service/fit.py @@ -171,14 +171,20 @@ class Fit(object): def getFit(self, fitID): if fitID is None: return None - fit = eos.db.getFit(fitID) - sFlt = Fleet.getInstance() - if sFlt.isInLinearFleet(fit) is False: - sFlt.removeAssociatedFleetData(fit) - self.recalc(fit) - fit.fill() - eos.db.commit() + inited = getattr(fit, "inited", None) + if inited is None or inited is False: + sFlt = Fleet.getInstance() + f = sFlt.getLinearFleet(fit) + if f is None: + sFlt.removeAssociatedFleetData(fit) + fit.fleet = None + else: + fit.fleet = f + self.recalc(fit) + fit.fill() + eos.db.commit() + fit.inited = True return fit def searchFits(self, name): @@ -645,7 +651,4 @@ class Fit(object): def recalc(self, fit): fit.clear() - if fit.fleet is not None: - fit.fleet.recalculateLinear() - else: - fit.calculateModifiedAttributes() + fit.calculateModifiedAttributes() diff --git a/service/fleet.py b/service/fleet.py index b536c9316..7001aa5ea 100644 --- a/service/fleet.py +++ b/service/fleet.py @@ -83,7 +83,7 @@ class Fleet(object): def setLinearFleetCom(self, boostee, booster): if boostee == booster: return - if self.isInLinearFleet(boostee) is False: + if self.getLinearFleet(boostee) is None: self.removeAssociatedFleetData(boostee) self.makeLinearFleet(boostee) squadIDs = set(eos.db.getSquadsIDsWithFitID(boostee.ID)) @@ -97,7 +97,7 @@ class Fleet(object): def setLinearWingCom(self, boostee, booster): if boostee == booster: return - if self.isInLinearFleet(boostee) is False: + if self.getLinearFleet(boostee) is None: self.removeAssociatedFleetData(boostee) self.makeLinearFleet(boostee) squadIDs = set(eos.db.getSquadsIDsWithFitID(boostee.ID)) @@ -111,7 +111,7 @@ class Fleet(object): def setLinearSquadCom(self, boostee, booster): if boostee == booster: return - if self.isInLinearFleet(boostee) is False: + if self.getLinearFleet(boostee) is None: self.removeAssociatedFleetData(boostee) self.makeLinearFleet(boostee) squadIDs = set(eos.db.getSquadsIDsWithFitID(boostee.ID)) @@ -122,20 +122,20 @@ class Fleet(object): else: self.removeAssociatedFleetData(boostee) - def isInLinearFleet(self, fit): + def getLinearFleet(self, fit): sqIDs = eos.db.getSquadsIDsWithFitID(fit.ID) if len(sqIDs) != 1: - return False + return None s = eos.db.getSquad(sqIDs[0]) if len(s.members) != 1: - return False + return None w = s.wing if len(w.squads) != 1: - return False + return None f = w.gang if len(f.wings) != 1: - return False - return True + return None + return f def removeAssociatedFleetData(self, fit): squadIDs = set(eos.db.getSquadsIDsWithFitID(fit.ID)) @@ -172,7 +172,7 @@ class Fleet(object): return True def loadLinearFleet(self, fit): - if self.isInLinearFleet(fit) is False: + if self.getLinearFleet(fit) is None: return None squadID = eos.db.getSquadsIDsWithFitID(fit.ID)[0] s = eos.db.getSquad(squadID)