diff --git a/gui/droneView.py b/gui/droneView.py index 020e3d288..f897a6bde 100644 --- a/gui/droneView.py +++ b/gui/droneView.py @@ -154,5 +154,5 @@ class DroneView(d.Display): cFit = service.Fit.getInstance() fit = cFit.getFit(self.mainFrame.getActiveFit()) - menu = ContextMenu.getMenu((fit.drones[sel],), "drone") + menu = ContextMenu.getMenu((self.drones[sel],), "drone") self.PopupMenu(menu) diff --git a/service/fit.py b/service/fit.py index 4f7ebe2d6..0d21f8d3f 100644 --- a/service/fit.py +++ b/service/fit.py @@ -308,12 +308,17 @@ class Fit(object): fit = eos.db.getFit(fitID) item = eos.db.getItem(itemID, eager=("attributes", "group.category")) if item.category.name == "Drone": - d = fit.drones.find(item) - if d is None or d.amountActive == d.amount or d.amount >= max(5, fit.extraAttributes["maxActiveDrones"]): - d = eos.types.Drone(item) - fit.drones.append(d) + drone = None + for d in fit.drones.find(item): + if d is not None and d.amountActive == 0 and d.amount < max(5, fit.extraAttributes["maxActiveDrones"]): + drone = d + break - d.amount += 1 + if drone is None: + drone = eos.types.Drone(item) + fit.drones.append(drone) + + drone.amount += 1 eos.db.commit() fit.clear() fit.calculateModifiedAttributes()