def __init__(self, *args, **kwargs): super(ShopGoodsForm, self).__init__(*args, **kwargs) # all shops objects = CM.SHOPS.objects.all() choices = [(obj.key, obj.name + " (" + obj.key + ")") for obj in objects] self.fields['shop'] = forms.ChoiceField(choices=choices) # available objects choices = get_all_pocketable_objects() self.fields['object'] = forms.ChoiceField(choices=choices) # Goods typeclasses typeclasses = TYPECLASS_SET.get_group("SHOP_GOODS") choices = [(key, cls.typeclass_name + " (" + key + ")") for key, cls in typeclasses.items()] self.fields['typeclass'] = forms.ChoiceField(choices=choices) # available units are common objects objects = CM.COMMON_OBJECTS.objects.all() choices = [(obj.key, obj.name + " (" + obj.key + ")") for obj in objects] self.fields['unit'] = forms.ChoiceField(choices=choices) localize_form_fields(self)
def __init__(self, *args, **kwargs): super(SkillsForm, self).__init__(*args, **kwargs) typeclasses = TYPECLASS_SET.get_group("SKILL") choices = [(key, cls.typeclass_name + " (" + key + ")") for key, cls in typeclasses.items()] self.fields['typeclass'] = forms.ChoiceField(choices=choices) choices = [("", "---------")] objects = CM.ICON_RESOURCES.objects.all() choices.extend([(obj.key, obj.name + " (" + obj.key + ")") for obj in objects]) self.fields['icon'] = forms.ChoiceField(choices=choices, required=False) choices = [("", "---------")] objects = CM.SKILL_TYPES.objects.all() choices.extend([(obj.key, obj.name + " (" + obj.key + ")") for obj in objects]) self.fields['main_type'] = forms.ChoiceField(choices=choices, required=False) self.fields['sub_type'] = forms.ChoiceField(choices=choices, required=False) localize_form_fields(self)
def __init__(self, *args, **kwargs): super(EquipmentsForm, self).__init__(*args, **kwargs) typeclasses = TYPECLASS_SET.get_group("EQUIPMENT") choices = [(key, cls.typeclass_name + " (" + key + ")") for key, cls in typeclasses.items()] self.fields['typeclass'] = forms.ChoiceField(choices=choices) objects = CM.EQUIPMENT_POSITIONS.objects.all() choices = [(obj.key, obj.name + " (" + obj.key + ")") for obj in objects] self.fields['position'] = forms.ChoiceField(choices=choices) objects = CM.EQUIPMENT_TYPES.objects.all() choices = [(obj.key, obj.name + " (" + obj.key + ")") for obj in objects] self.fields['type'] = forms.ChoiceField(choices=choices) choices = [("", "---------")] objects = CM.ICON_RESOURCES.objects.all() choices.extend([(obj.key, obj.name + " (" + obj.key + ")") for obj in objects]) self.fields['icon'] = forms.ChoiceField(choices=choices, required=False) localize_form_fields(self) EQUIPMENT_ATTRIBUTES_INFO.set_form_fields(self)
def __init__(self, *args, **kwargs): super(WorldNPCsForm, self).__init__(*args, **kwargs) # NPC's typeclass typeclasses = TYPECLASS_SET.get_group("NON_PLAYER") choices = [(key, cls.typeclass_name + " (" + key + ")") for key, cls in typeclasses.items()] self.fields['typeclass'] = forms.ChoiceField(choices=choices) # NPC's location rooms = CM.WORLD_ROOMS.objects.all() choices = [(r.key, r.name + " (" + r.key + ")") for r in rooms] self.fields['location'] = LocationField(choices=choices) # NPC's model choices = [("", "---------")] objects = CM.CHARACTER_MODELS.objects.all().values("key", "name").distinct() choices.extend([(obj["key"], obj["name"] + " (" + obj["key"] + ")") for obj in objects]) self.fields['model'] = forms.ChoiceField(choices=choices, required=False) # NPC's icon choices = [("", "---------")] objects = CM.ICON_RESOURCES.objects.all() choices.extend([(obj.key, obj.name + " (" + obj.key + ")") for obj in objects]) self.fields['icon'] = forms.ChoiceField(choices=choices, required=False) localize_form_fields(self)
def __init__(self, *args, **kwargs): super(WorldRoomsForm, self).__init__(*args, **kwargs) typeclasses = TYPECLASS_SET.get_group("ROOM") choices = [(key, cls.typeclass_name + " (" + key + ")") for key, cls in typeclasses.items()] self.fields['typeclass'] = forms.ChoiceField(choices=choices) choices = [("", "---------")] objects = CM.WORLD_AREAS.objects.all() choices.extend([(obj.key, obj.name + " (" + obj.key + ")") for obj in objects]) self.fields['location'] = forms.ChoiceField(choices=choices) choices = [("", "---------")] objects = CM.ICON_RESOURCES.objects.all() choices.extend([(obj.key, obj.name + " (" + obj.key + ")") for obj in objects]) self.fields['icon'] = forms.ChoiceField(choices=choices, required=False) choices = [("", "---------")] objects = CM.IMAGE_RESOURCES.objects.all() choices.extend([(obj.key, obj.name + " (" + obj.key + ")") for obj in objects]) self.fields['background'] = forms.ChoiceField(choices=choices, required=False) localize_form_fields(self)
def __init__(self, *args, **kwargs): super(QuestsForm, self).__init__(*args, **kwargs) typeclasses = TYPECLASS_SET.get_group("QUEST") choices = [(key, cls.typeclass_name + " (" + key + ")") for key, cls in typeclasses.items()] self.fields['typeclass'] = forms.ChoiceField(choices=choices) localize_form_fields(self)
def query_object_form(base_typeclass, obj_typeclass, obj_key): """ Query all data of an object. Args: base_typeclass: (string) candidate typeclass group. obj_typeclass: (string, optional) object's typeclass. If it is empty, use the typeclass of the object or use base typeclass as object's typeclass. obj_key: (string) object's key. If it is empty, query an empty form. """ candidate_typeclasses = TYPECLASS_SET.get_group(base_typeclass) if not candidate_typeclasses: raise MudderyError(ERR.no_table, "Can not find typeclass: %s" % base_typeclass) if not obj_typeclass: if obj_key: # Get typeclass from the object's record table_name = TYPECLASS("OBJECT").model_name record = general_query_mapper.get_record_by_key( table_name, obj_key) obj_typeclass = record.typeclass else: # Or use the base typeclass obj_typeclass = base_typeclass typeclass = TYPECLASS_SET.get(obj_typeclass) if not typeclass: raise MudderyError(ERR.no_table, "Can not find typeclass: %s" % obj_typeclass) table_names = typeclass.get_models() forms = [] for table_name in table_names: if obj_key: object_form = query_form(table_name, key=obj_key) else: object_form = query_form(table_name) forms.append({"table": table_name, "fields": object_form}) # add typeclasses if len(forms) > 0: for field in forms[0]["fields"]: if field["name"] == "typeclass": # set typeclass to the new value field["value"] = obj_typeclass field["type"] = "Select" field["choices"] = [ (key, cls.typeclass_name + " (" + key + ")") for key, cls in candidate_typeclasses.items() ] break return forms
def __init__(self, *args, **kwargs): super(CommonObjectsForm, self).__init__(*args, **kwargs) typeclasses = TYPECLASS_SET.get_group("COMMON_OBJECT") choices = [(key, cls.typeclass_name + " (" + key + ")") for key, cls in typeclasses.items()] self.fields['typeclass'] = forms.ChoiceField(choices=choices) self.fields['icon'] = ImageField(image_type="icon", required=False) localize_form_fields(self)
def __init__(self, *args, **kwargs): super(ShopsForm, self).__init__(*args, **kwargs) typeclasses = TYPECLASS_SET.get_group("SHOP") choices = [(key, cls.typeclass_name + " (" + key + ")") for key, cls in typeclasses.items()] self.fields['typeclass'] = forms.ChoiceField(choices=choices) self.fields['icon'] = IconField(required=False) localize_form_fields(self)
def __init__(self, *args, **kwargs): super(WorldAreasForm, self).__init__(*args, **kwargs) typeclasses = TYPECLASS_SET.get_group("AREA") choices = [(key, cls.typeclass_name + " (" + key + ")") for key, cls in typeclasses.items()] self.fields['typeclass'] = forms.ChoiceField(choices=choices) self.fields['background'] = ImageField(required=False) localize_form_fields(self)
def __init__(self, *args, **kwargs): super(FoodsForm, self).__init__(*args, **kwargs) typeclasses = TYPECLASS_SET.get_group("FOOD") choices = [(key, cls.typeclass_name + " (" + key + ")") for key, cls in typeclasses.items()] self.fields['typeclass'] = forms.ChoiceField(choices=choices) self.fields['icon'] = ImageField(image_type="icon", required=False) localize_form_fields(self) FOOD_ATTRIBUTES_INFO.set_form_fields(self)
def delete_object(base_typeclass, obj_key): """ Delete an object from all tables under the base typeclass. """ typeclasses = TYPECLASS_SET.get_group(base_typeclass) tables = set() for key, value in typeclasses.items(): tables.update(value.get_models()) for table in tables: try: general_query_mapper.delete_record_by_key(table, obj_key) except ObjectDoesNotExist: pass
def query_object_form(base_typeclass, obj_typeclass, obj_key): """ Query all data of an object. Args: base_typeclass: (string) candidate typeclass group. obj_typeclass: (string, optional) object's typeclass. If it is empty, use the typeclass of the object or use base typeclass as object's typeclass. obj_key: (string) object's key. If it is empty, query an empty form. """ candidate_typeclasses = TYPECLASS_SET.get_group(base_typeclass) if not candidate_typeclasses: raise MudderyError(ERR.no_table, "Can not find typeclass: %s" % base_typeclass) if not obj_typeclass: if obj_key: # Get typeclass from the object's record table_name = TYPECLASS("OBJECT").model_name record = general_query_mapper.get_record_by_key(table_name, obj_key) obj_typeclass = record.typeclass else: # Or use the base typeclass obj_typeclass = base_typeclass typeclass = TYPECLASS_SET.get(obj_typeclass) if not typeclass: raise MudderyError(ERR.no_table, "Can not find typeclass: %s" % obj_typeclass) table_names = typeclass.get_models() forms = [] for table_name in table_names: if obj_key: object_form = query_form(table_name, key=obj_key) else: object_form = query_form(table_name) forms.append({"table": table_name, "fields": object_form}) # add typeclasses if len(forms) > 0: for field in forms[0]["fields"]: if field["name"] == "typeclass": # set typeclass to the new value field["value"] = obj_typeclass field["type"] = "Select" field["choices"] = [(key, cls.typeclass_name + " (" + key + ")") for key, cls in candidate_typeclasses.items()] break return forms
def __init__(self, *args, **kwargs): super(WorldExitsForm, self).__init__(*args, **kwargs) typeclasses = TYPECLASS_SET.get_group("EXIT") choices = [(key, cls.typeclass_name + " (" + key + ")") for key, cls in typeclasses.items()] self.fields['typeclass'] = forms.ChoiceField(choices=choices) rooms = CM.WORLD_ROOMS.objects.all() choices = [(r.key, r.name + " (" + r.key + ")") for r in rooms] self.fields['location'] = LocationField(choices=choices) self.fields['destination'] = LocationField(choices=choices) localize_form_fields(self)
def __init__(self, *args, **kwargs): super(WorldObjectsForm, self).__init__(*args, **kwargs) typeclasses = TYPECLASS_SET.get_group("WORLD_OBJECT") choices = [(key, cls.typeclass_name + " (" + key + ")") for key, cls in typeclasses.items()] self.fields['typeclass'] = forms.ChoiceField(choices=choices) rooms = CM.WORLD_ROOMS.objects.all() choices = [(r.key, r.name + " (" + r.key + ")") for r in rooms] self.fields['location'] = LocationField(choices=choices) self.fields['icon'] = ImageField(image_type="icon", required=False) localize_form_fields(self)
def __init__(self, *args, **kwargs): super(SkillBooksForm, self).__init__(*args, **kwargs) typeclasses = TYPECLASS_SET.get_group("SKILL_BOOK") choices = [(key, cls.typeclass_name + " (" + key + ")") for key, cls in typeclasses.items()] self.fields['typeclass'] = forms.ChoiceField(choices=choices) # skills objects = CM.SKILLS.objects.all() choices = [(obj.key, obj.name + " (" + obj.key + ")") for obj in objects] self.fields['skill'] = forms.ChoiceField(choices=choices) # icons self.fields['icon'] = IconField(required=False) localize_form_fields(self)
def __init__(self, *args, **kwargs): super(CommonCharacterForm, self).__init__(*args, **kwargs) typeclasses = TYPECLASS_SET.get_group("CHARACTER") choices = [(key, cls.typeclass_name + " (" + key + ")") for key, cls in typeclasses.items()] self.fields['typeclass'] = forms.ChoiceField(choices=choices) # models choices = [("", "---------")] objects = CM.CHARACTER_MODELS.objects.all() model_keys = set([obj.key for obj in objects]) choices.extend([(model_key, model_key) for model_key in model_keys]) self.fields['model'] = forms.ChoiceField(choices=choices, required=False) self.fields['icon'] = IconField(required=False) localize_form_fields(self)
def delete_object(obj_key, base_typeclass=None): """ Delete an object from all tables under the base typeclass. """ if not base_typeclass: table_name = TYPECLASS("OBJECT").model_name record = general_query_mapper.get_record_by_key(table_name, obj_key) base_typeclass = record.typeclass typeclasses = TYPECLASS_SET.get_group(base_typeclass) tables = set() for key, value in typeclasses.items(): tables.update(value.get_models()) with transaction.atomic(): for table in tables: try: general_query_mapper.delete_record_by_key(table, obj_key) except ObjectDoesNotExist: pass