some more minor quest fixes
This commit is contained in:
parent
97c37e7762
commit
14c8079afc
3 changed files with 21 additions and 17 deletions
|
@ -0,0 +1 @@
|
||||||
|
import c3nav.mapdata.quests.simple # noqa
|
|
@ -9,23 +9,6 @@ from c3nav.mapdata.models.geometry.space import RangingBeacon
|
||||||
from c3nav.mapdata.quests.base import register_quest, Quest, ChangeSetModelForm
|
from c3nav.mapdata.quests.base import register_quest, Quest, ChangeSetModelForm
|
||||||
|
|
||||||
|
|
||||||
@register_quest
|
|
||||||
@dataclass
|
|
||||||
class RangingBeaconAltitudeQuest(Quest):
|
|
||||||
quest_type = "ranging_beacon_altitude"
|
|
||||||
quest_type_label = _('Ranging Beacon Altitude')
|
|
||||||
form_class = RangingBeaconAltitudeQuestForm
|
|
||||||
obj: RangingBeacon
|
|
||||||
|
|
||||||
@property
|
|
||||||
def point(self) -> Point:
|
|
||||||
return mapping(self.obj.geometry)
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def _qs_for_request(cls, request):
|
|
||||||
return RangingBeacon.qs_for_request(request).select_related('space').filter(altitude_quest=True)
|
|
||||||
|
|
||||||
|
|
||||||
class RangingBeaconAltitudeQuestForm(ChangeSetModelForm):
|
class RangingBeaconAltitudeQuestForm(ChangeSetModelForm):
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
|
@ -50,3 +33,20 @@ class RangingBeaconAltitudeQuestForm(ChangeSetModelForm):
|
||||||
@property
|
@property
|
||||||
def changeset_title(self):
|
def changeset_title(self):
|
||||||
return f'Altitude Quest: {self.instance.title}'
|
return f'Altitude Quest: {self.instance.title}'
|
||||||
|
|
||||||
|
|
||||||
|
@register_quest
|
||||||
|
@dataclass
|
||||||
|
class RangingBeaconAltitudeQuest(Quest):
|
||||||
|
quest_type = "ranging_beacon_altitude"
|
||||||
|
quest_type_label = _('Ranging Beacon Altitude')
|
||||||
|
form_class = RangingBeaconAltitudeQuestForm
|
||||||
|
obj: RangingBeacon
|
||||||
|
|
||||||
|
@property
|
||||||
|
def point(self) -> Point:
|
||||||
|
return mapping(self.obj.geometry)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def _qs_for_request(cls, request):
|
||||||
|
return RangingBeacon.qs_for_request(request).select_related('space').filter(altitude_quest=True)
|
||||||
|
|
|
@ -1369,6 +1369,7 @@ c3nav = {
|
||||||
_modal_click: function (e) {
|
_modal_click: function (e) {
|
||||||
if (!c3nav.modal_noclose && (e.target.id === 'modal' || e.target.id === 'close-modal')) {
|
if (!c3nav.modal_noclose && (e.target.id === 'modal' || e.target.id === 'close-modal')) {
|
||||||
history.back();
|
history.back();
|
||||||
|
if (c3nav._questsControl) c3nav._questsControl.reloadQuests();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
_href_modal_open_tab: function (location) {
|
_href_modal_open_tab: function (location) {
|
||||||
|
@ -1927,6 +1928,7 @@ c3nav = {
|
||||||
if (!c3nav.map) return;
|
if (!c3nav.map) return;
|
||||||
if (c3nav._questsControl) {
|
if (c3nav._questsControl) {
|
||||||
if (!Object.keys(c3nav.user_data.quests).length) c3nav.map.removeControl(c3nav._questsControl);
|
if (!Object.keys(c3nav.user_data.quests).length) c3nav.map.removeControl(c3nav._questsControl);
|
||||||
|
c3nav._questsControl = null;
|
||||||
} else {
|
} else {
|
||||||
if (Object.keys(c3nav.user_data.quests).length) c3nav._questsControl = (new QuestsControl()).addTo(c3nav.map);
|
if (Object.keys(c3nav.user_data.quests).length) c3nav._questsControl = (new QuestsControl()).addTo(c3nav.map);
|
||||||
}
|
}
|
||||||
|
@ -2491,6 +2493,7 @@ QuestsControl = L.Control.extend({
|
||||||
},
|
},
|
||||||
|
|
||||||
reloadQuests: function() {
|
reloadQuests: function() {
|
||||||
|
if (!this.questsActive) return;
|
||||||
c3nav_api.get('map/quests/')
|
c3nav_api.get('map/quests/')
|
||||||
.then((data) => {
|
.then((data) => {
|
||||||
for (const quest of data) {
|
for (const quest of data) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue