コード例 #1
0
 def create_box(self):
     ''' Create a box object '''
     try:
         game_level = self.get_argument('game_level', '')
         corp_uuid = self.get_argument('corporation_uuid', '')
         if Box.by_name(self.get_argument('name', '')) is not None:
             raise ValidationError("Box name already exists")
         elif Corporation.by_uuid(corp_uuid) is None:
             raise ValidationError("Corporation does not exist")
         elif GameLevel.by_number(game_level) is None:
             raise ValidationError("Game level does not exist")
         else:
             corp = Corporation.by_uuid(corp_uuid)
             level = GameLevel.by_number(game_level)
             box = Box(corporation_id=corp.id, game_level_id=level.id)
             box.name = self.get_argument('name', '')
             box.description = self.get_argument('description', '')
             box.autoformat = self.get_argument('autoformat', '') == 'true'
             box.difficulty = self.get_argument('difficulty', '')
             self.dbsession.add(box)
             self.dbsession.commit()
             if hasattr(self.request,
                        'files') and 'avatar' in self.request.files:
                 box.avatar = self.request.files['avatar'][0]['body']
             self.dbsession.commit()
             self.redirect('/admin/view/game_objects')
     except ValidationError as error:
         self.render('admin/create/box.html', errors=[
             str(error),
         ])
コード例 #2
0
 def create_box(self):
     ''' Create a box object '''
     try:
         game_level = self.get_argument('game_level', '')
         corp_uuid = self.get_argument('corporation_uuid', '')
         if Box.by_name(self.get_argument('name', '')) is not None:
             raise ValidationError("Box name already exists")
         elif Corporation.by_uuid(corp_uuid) is None:
             raise ValidationError("Corporation does not exist")
         elif GameLevel.by_number(game_level) is None:
             raise ValidationError("Game level does not exist")
         else:
             corp = Corporation.by_uuid(corp_uuid)
             level = GameLevel.by_number(game_level)
             box = Box(corporation_id=corp.id, game_level_id=level.id)
             box.name = self.get_argument('name', '')
             box.description = self.get_argument('description', '')
             box.autoformat = self.get_argument('autoformat', '') == 'true'
             box.difficulty = self.get_argument('difficulty', '')
             self.dbsession.add(box)
             self.dbsession.commit()
             if hasattr(self.request, 'files') and 'avatar' in self.request.files:
                 box.avatar = self.request.files['avatar'][0]['body']
             self.dbsession.commit()
             self.redirect('/admin/view/game_objects')
     except ValidationError as error:
         self.render('admin/create/box.html', errors=[str(error), ])
コード例 #3
0
 def create_box(self):
     """ Create a box object """
     try:
         game_level = self.get_argument("game_level", "")
         corp_uuid = self.get_argument("corporation_uuid", "")
         if Box.by_name(self.get_argument("name", "")) is not None:
             raise ValidationError("Box name already exists")
         elif GameLevel.by_number(game_level) is None:
             raise ValidationError("Game level does not exist")
         else:
             if Corporation.by_uuid(corp_uuid) is None:
                 if len(Corporation.all()) == 0:
                     # Create a empty Corp
                     corporation = Corporation()
                     corporation.name = ""
                     self.dbsession.add(corporation)
                     self.dbsession.commit()
                     corp_uuid = corporation.uuid
                 else:
                     raise ValidationError("Corporation does not exist")
             corp = Corporation.by_uuid(corp_uuid)
             level = GameLevel.by_number(game_level)
             box = Box(corporation_id=corp.id, game_level_id=level.id)
             box.name = self.get_argument("name", "")
             box.description = self.get_argument("description", "")
             box.flag_submission_type = FlagsSubmissionType[
                 self.get_argument("flag_submission_type", "")]
             box.difficulty = self.get_argument("difficulty", "")
             box.operating_system = self.get_argument(
                 "operating_system", "?")
             box.capture_message = self.get_argument("capture_message", "")
             box.value = self.get_argument("reward", 0)
             cat = Category.by_uuid(self.get_argument("category_uuid", ""))
             if cat is not None:
                 box.category_id = cat.id
             else:
                 box.category_id = None
             # Avatar
             avatar_select = self.get_argument("box_avatar_select", "")
             if avatar_select and len(avatar_select) > 0:
                 box._avatar = avatar_select
             elif hasattr(self.request,
                          "files") and "avatar" in self.request.files:
                 box.avatar = self.request.files["avatar"][0]["body"]
             self.dbsession.add(box)
             self.dbsession.commit()
             self.redirect("/admin/view/game_objects#%s" % box.uuid)
     except ValidationError as error:
         self.render("admin/create/box.html", errors=[str(error)])
コード例 #4
0
    def edit_boxes(self):
        '''
        Edit existing boxes in the database, and log the changes
        '''
        try:
            box = Box.by_uuid(self.get_argument('uuid', ''))
            if box is None:
                raise ValidationError("Box does not exist")
            # Name
            name = self.get_argument('name', '')
            if name != box.name:
                if Box.by_name(name) is None:
                    logging.info("Updated box name %s -> %s" % (
                        box.name,
                        name,
                    ))
                    box.name = name
                else:
                    raise ValidationError("Box name already exists")
            # Corporation
            corp = Corporation.by_uuid(self.get_argument('corporation_uuid'))
            if corp is not None and corp.id != box.corporation_id:
                logging.info("Updated %s's corporation %s -> %s" % (
                    box.name,
                    box.corporation_id,
                    corp.id,
                ))
                box.corporation_id = corp.id
            elif corp is None:
                raise ValidationError("Corporation does not exist")
            # Description
            description = self.get_argument('description', '')
            if description != box._description:
                logging.info("Updated %s's description %s -> %s" % (
                    box.name,
                    box.description,
                    description,
                ))
                box.description = description
            # Difficulty
            difficulty = self.get_argument('difficulty', '')
            if difficulty != box.difficulty:
                logging.info("Updated %s's difficulty %s -> %s" % (
                    box.name,
                    box.difficulty,
                    difficulty,
                ))
                box.difficulty = difficulty
            # Avatar
            if 'avatar' in self.request.files:
                box.avatar = self.request.files['avatar'][0]['body']

            self.dbsession.add(box)
            self.dbsession.commit()
            self.redirect("/admin/view/game_objects")
        except ValidationError as error:
            self.render("admin/view/game_objects.html", errors=[
                str(error),
            ])
コード例 #5
0
 def del_corp(self):
     ''' Delete a corporation '''
     corp = Corporation.by_uuid(self.get_argument('uuid', ''))
     if corp is not None:
         logging.info("Delete corporation: %s" % corp.name)
         self.dbsession.delete(corp)
         self.dbsession.commit()
         self.redirect('/admin/view/game_objects')
     else:
         self.render('admin/view/game_objects.html',
                     errors=["Corporation does not exist in database."])
コード例 #6
0
 def create_box(self):
     ''' Create a box object '''
     try:
         game_level = self.get_argument('game_level', '')
         corp_uuid = self.get_argument('corporation_uuid', '')
         if Box.by_name(self.get_argument('name', '')) is not None:
             raise ValidationError("Box name already exists")
         elif Corporation.by_uuid(corp_uuid) is None:
             raise ValidationError("Corporation does not exist")
         elif GameLevel.by_number(game_level) is None:
             raise ValidationError("Game level does not exist")
         else:
             corp = Corporation.by_uuid(corp_uuid)
             level = GameLevel.by_number(game_level)
             box = Box(corporation_id=corp.id, game_level_id=level.id)
             box.name = self.get_argument('name', '')
             box.description = self.get_argument('description', '')
             box.flag_submission_type = FlagsSubmissionType[
                 self.get_argument('flag_submission_type', '')]
             box.difficulty = self.get_argument('difficulty', '')
             box.operating_system = self.get_argument(
                 'operating_system', '?')
             cat = Category.by_uuid(self.get_argument('category_uuid', ''))
             if cat is not None:
                 box.category_id = cat.id
             else:
                 box.category_id = None
             # Avatar
             avatar_select = self.get_argument('box_avatar_select', '')
             if avatar_select and len(avatar_select) > 0:
                 box._avatar = avatar_select
             elif hasattr(self.request,
                          'files') and 'avatar' in self.request.files:
                 box.avatar = self.request.files['avatar'][0]['body']
             self.dbsession.add(box)
             self.dbsession.commit()
             self.redirect("/admin/view/game_objects#%s" % box.uuid)
     except ValidationError as error:
         self.render('admin/create/box.html', errors=[
             str(error),
         ])
コード例 #7
0
 def del_corp(self):
     ''' Delete a corporation '''
     corp = Corporation.by_uuid(self.get_argument('uuid', ''))
     if corp is not None:
         logging.info("Delete corporation: %s" % corp.name)
         self.dbsession.delete(corp)
         self.dbsession.commit()
         self.redirect('/admin/view/game_objects')
     else:
         self.render('admin/view/game_objects.html',
             errors=["Corporation does not exist in database."]
         )
コード例 #8
0
 def del_corp(self):
     """ Delete a corporation """
     corp = Corporation.by_uuid(self.get_argument("uuid", ""))
     if corp is not None:
         logging.info("Delete corporation: %s" % corp.name)
         self.dbsession.delete(corp)
         self.dbsession.commit()
         self.redirect("/admin/view/game_objects")
     else:
         self.render(
             "admin/view/game_objects.html",
             errors=["Corporation does not exist in database."],
         )
コード例 #9
0
    def edit_boxes(self):
        '''
        Edit existing boxes in the database, and log the changes
        '''
        try:
            box = Box.by_uuid(self.get_argument('uuid', ''))
            if box is None:
                raise ValidationError("Box does not exist")
            # Name
            name = self.get_argument('name', '')
            if name != box.name:
                if Box.by_name(name) is None:
                    logging.info("Updated box name %s -> %s" % (
                        box.name, name,
                    ))
                    box.name = name
                else:
                    raise ValidationError("Box name already exists")
            # Corporation
            corp = Corporation.by_uuid(self.get_argument('corporation_uuid'))
            if corp is not None and corp.id != box.corporation_id:
                logging.info("Updated %s's corporation %s -> %s" % (
                    box.name, box.corporation_id, corp.id,
                ))
                box.corporation_id = corp.id
            elif corp is None:
                raise ValidationError("Corporation does not exist")
            # Description
            description = self.get_argument('description', '')
            if description != box._description:
                logging.info("Updated %s's description %s -> %s" % (
                    box.name, box.description, description,
                ))
                box.description = description
            # Difficulty
            difficulty = self.get_argument('difficulty', '')
            if difficulty != box.difficulty:
                logging.info("Updated %s's difficulty %s -> %s" % (
                    box.name, box.difficulty, difficulty,
                ))
                box.difficulty = difficulty
            # Avatar
            if 'avatar' in self.request.files:
                box.avatar = self.request.files['avatar'][0]['body']

            self.dbsession.add(box)
            self.dbsession.commit()
            self.redirect("/admin/view/game_objects")
        except ValidationError as error:
            self.render("admin/view/game_objects.html", errors=[str(error), ])
コード例 #10
0
 def _make_box(self, level_number):
     ''' Creates a box in the database '''
     corp = Corporation.by_uuid(self.get_argument('corporation_uuid'))
     level = GameLevel.by_number(level_number)
     box = Box(corporation_id=corp.id, game_level_id=level.id)
     box.name = self.get_argument('name', '')
     box.description = self.get_argument('description', '')
     box.autoformat = self.get_argument('autoformat', '') == 'true'
     box.difficulty = self.get_argument('difficulty', '')
     self.dbsession.add(box)
     self.dbsession.commit()
     if 'avatar' in self.request.files:
         box.avatar = self.request.files['avatar'][0]['body']
     return box
コード例 #11
0
 def create_box(self):
     ''' Create a box object '''
     try:
         game_level = self.get_argument('game_level', '')
         corp_uuid = self.get_argument('corporation_uuid', '')
         if Box.by_name(self.get_argument('name', '')) is not None:
             raise ValidationError("Box name already exists")
         elif Corporation.by_uuid(corp_uuid) is None:
             raise ValidationError("Corporation does not exist")
         elif GameLevel.by_number(game_level) is None:
             raise ValidationError("Game level does not exist")
         else:
             corp = Corporation.by_uuid(corp_uuid)
             level = GameLevel.by_number(game_level)
             box = Box(corporation_id=corp.id, game_level_id=level.id)
             box.name = self.get_argument('name', '')
             box.description = self.get_argument('description', '')
             box.flag_submission_type = FlagsSubmissionType[self.get_argument('flag_submission_type','')]
             box.difficulty = self.get_argument('difficulty', '')
             box.operating_system = self.get_argument('operating_system', '?')
             cat = Category.by_uuid(self.get_argument('category_uuid', ''))
             if cat is not None:
                 box.category_id = cat.id
             else:
                 box.category_id = None
             # Avatar
             avatar_select = self.get_argument('box_avatar_select', '')
             if avatar_select and len(avatar_select) > 0:
                 box._avatar = avatar_select
             elif hasattr(self.request, 'files') and 'avatar' in self.request.files:
                 box.avatar = self.request.files['avatar'][0]['body']
             self.dbsession.add(box)
             self.dbsession.commit()
             self.redirect("/admin/view/game_objects#%s" % box.uuid)
     except ValidationError as error:
         self.render('admin/create/box.html', errors=[str(error), ])
コード例 #12
0
 def edit_corporations(self):
     """ Updates corporation object in the database """
     try:
         corp = Corporation.by_uuid(self.get_argument("uuid", ""))
         if corp is None:
             raise ValidationError("Corporation does not exist")
         name = self.get_argument("name", "")
         if name != corp.name:
             logging.info("Updated corporation name %s -> %s" % (corp.name, name))
             corp.name = name
             self.dbsession.add(corp)
             self.dbsession.commit()
         self.redirect("/admin/view/game_objects")
     except ValidationError as error:
         self.render("admin/view/game_objects.html", errors=[str(error)])
コード例 #13
0
 def edit_corporations(self):
     ''' Updates corporation object in the database '''
     try:
         corp = Corporation.by_uuid(self.get_argument('uuid', ''))
         if corp is None:
             raise ValidationError("Corporation does not exist")
         name = self.get_argument('name', '')
         if name != corp.name:
             logging.info("Updated corporation name %s -> %s" % (
                 corp.name, name
             ))
             corp.name = name
             self.dbsession.add(corp)
             self.dbsession.commit()
         self.redirect('/admin/view/game_objects')
     except ValidationError as error:
         self.render("admin/view/game_objects.html", errors=[str(error), ])
コード例 #14
0
 def edit_corporations(self):
     ''' Updates corporation object in the database '''
     corp = Corporation.by_uuid(self.get_argument('uuid', ''))
     if corp is not None:
         try:
             name = self.get_argument('name', '')
             if name != corp.name:
                 logging.info("Updated corporation name %s -> %s" % (corp.name, name))
                 corp.name = name
                 self.dbsession.add(corp)
                 self.dbsession.commit()
             self.redirect('/admin/view/game_objects')
         except ValueError as error:
             self.render("admin/view/game_objects.html", errors=["%s" % error])
     else:
         self.render("admin/view/game_objects.html",
             errors=["Corporation does not exist"]
         )
コード例 #15
0
 def create_box(self):
     ''' Create a box object '''
     try:
         lvl = self.get_argument('game_level', '')
         game_level = abs(int(lvl)) if lvl.isdigit() else 0
         corp_uuid = self.get_argument('corporation_uuid', '')
         if Box.by_name(self.get_argument('name', '')) is not None:
             self.render("admin/create/box.html",
                 errors=["Box name already exists"]
             )
         elif Corporation.by_uuid(corp_uuid) is None:
             self.render("admin/create/box.html", errors=["Corporation does not exist"])
         elif GameLevel.by_number(game_level) is None:
             self.render("admin/create/box.html", errors=["Game level does not exist"])
         else:
             box = self._make_box(game_level)
             self.dbsession.commit()
             self.redirect('/admin/view/game_objects')
     except ValueError as error:
         self.render('admin/create/box.html', errors=["%s" % error])
コード例 #16
0
    def edit_boxes(self):
        """
        Edit existing boxes in the database, and log the changes
        """
        try:
            box = Box.by_uuid(self.get_argument("uuid", ""))
            if box is None:
                raise ValidationError("Box does not exist")
            # Name
            name = self.get_argument("name", "")
            if name != box.name:
                if Box.by_name(name) is None:
                    logging.info("Updated box name %s -> %s" %
                                 (box.name, name))
                    box.name = name
                else:
                    raise ValidationError("Box name already exists")
            # Corporation
            corp = Corporation.by_uuid(
                self.get_argument("corporation_uuid", ""))
            if corp is not None and corp.id != box.corporation_id:
                logging.info("Updated %s's corporation %s -> %s" %
                             (box.name, box.corporation_id, corp.id))
                box.corporation_id = corp.id
            elif corp is None:
                raise ValidationError("Corporation does not exist")
            # Category
            cat = Category.by_uuid(self.get_argument("category_uuid", ""))
            if cat is not None and cat.id != box.category_id:
                logging.info("Updated %s's category %s -> %s" %
                             (box.name, box.category_id, cat.id))
                box.category_id = cat.id
            elif cat is None and cat != box.category_id:
                logging.info("Updated %s's category %s -> None" %
                             (box.name, box.category_id))
                box.category_id = None
            # System Type
            ostype = self.get_argument("operating_system", "")
            if ostype is not None and ostype != box.operating_system:
                logging.info("Updated %s's system type %s -> %s" %
                             (box.name, box.operating_system, ostype))
                box.operating_system = ostype
            # Description
            description = self.get_argument("description", "")
            if description != box._description:
                logging.info("Updated %s's description %s -> %s" %
                             (box.name, box.description, description))
                box.description = description
            # Difficulty
            difficulty = self.get_argument("difficulty", "")
            if difficulty != box.difficulty:
                logging.info("Updated %s's difficulty %s -> %s" %
                             (box.name, box.difficulty, difficulty))
                box.difficulty = difficulty
            # Flag submission type
            flag_submission_type = self.get_argument("flag_submission_type",
                                                     "")
            if (flag_submission_type is not None
                    and flag_submission_type != box.flag_submission_type):
                logging.info(
                    "Updated %s's flag submission type %s -> %s" %
                    (box.name, box.flag_submission_type, flag_submission_type))
                box.flag_submission_type = flag_submission_type
            # Capture Message
            capture_message = self.get_argument("capture_message", "")
            if capture_message != box.capture_message:
                logging.info("Updated %s's capture message %s -> %s" %
                             (box.name, box.capture_message, capture_message))
                box.capture_message = capture_message
            # Reward Value
            reward = self.get_argument("value", 0)
            if reward != box.value:
                logging.info("Updated %s's capture value %s -> %s" %
                             (box.name, box.value, reward))
                box.value = reward
            # Avatar
            avatar_select = self.get_argument("box_avatar_select", "")
            if avatar_select and len(avatar_select) > 0:
                box._avatar = avatar_select
            elif "avatar" in self.request.files:
                box.avatar = self.request.files["avatar"][0]["body"]

            self.dbsession.add(box)
            self.dbsession.commit()
            self.redirect("/admin/view/game_objects#%s" % box.uuid)
        except ValidationError as error:
            self.render("admin/view/game_objects.html",
                        success=None,
                        errors=[str(error)])
コード例 #17
0
    def edit_boxes(self):
        '''
        Edit existing boxes in the database, and log the changes
        '''
        try:
            box = Box.by_uuid(self.get_argument('uuid', ''))
            if box is None:
                raise ValidationError("Box does not exist")
            # Name
            name = self.get_argument('name', '')
            if name != box.name:
                if Box.by_name(name) is None:
                    logging.info("Updated box name %s -> %s" % (
                        box.name,
                        name,
                    ))
                    box.name = name
                else:
                    raise ValidationError("Box name already exists")
            # Corporation
            corp = Corporation.by_uuid(self.get_argument('corporation_uuid'))
            if corp is not None and corp.id != box.corporation_id:
                logging.info("Updated %s's corporation %s -> %s" % (
                    box.name,
                    box.corporation_id,
                    corp.id,
                ))
                box.corporation_id = corp.id
            elif corp is None:
                raise ValidationError("Corporation does not exist")
            # Category
            cat = Category.by_uuid(self.get_argument('category_uuid'))
            if cat is not None and cat.id != box.category_id:
                logging.info("Updated %s's category %s -> %s" % (
                    box.name,
                    box.category_id,
                    cat.id,
                ))
                box.category_id = cat.id
            elif cat is None and cat != box.category_id:
                logging.info("Updated %s's category %s -> None" % (
                    box.name,
                    box.category_id,
                ))
                box.category_id = None
            # System Type
            ostype = self.get_argument('operating_system')
            if ostype is not None and ostype != box.operating_system:
                logging.info("Updated %s's system type %s -> %s" % (
                    box.name,
                    box.operating_system,
                    ostype,
                ))
                box.operating_system = ostype
            # Description
            description = self.get_argument('description', '')
            if description != box._description:
                logging.info("Updated %s's description %s -> %s" % (
                    box.name,
                    box.description,
                    description,
                ))
                box.description = description
            # Difficulty
            difficulty = self.get_argument('difficulty', '')
            if difficulty != box.difficulty:
                logging.info("Updated %s's difficulty %s -> %s" % (
                    box.name,
                    box.difficulty,
                    difficulty,
                ))
                box.difficulty = difficulty
            # Avatar
            avatar_select = self.get_argument('box_avatar_select', '')
            if avatar_select and len(avatar_select) > 0:
                box._avatar = avatar_select
            elif 'avatar' in self.request.files:
                box.avatar = self.request.files['avatar'][0]['body']

            self.dbsession.add(box)
            self.dbsession.commit()
            self.redirect("/admin/view/game_objects#%s" % box.uuid)
        except ValidationError as error:
            self.render("admin/view/game_objects.html", errors=[
                str(error),
            ])
コード例 #18
0
    def edit_boxes(self):
        '''
        Edit existing boxes in the database, and log the changes
        '''
        try:
            box = Box.by_uuid(self.get_argument('uuid', ''))
            if box is None:
                raise ValidationError("Box does not exist")
            # Name
            name = self.get_argument('name', '')
            if name != box.name:
                if Box.by_name(name) is None:
                    logging.info("Updated box name %s -> %s" % (
                        box.name, name,
                    ))
                    box.name = name
                else:
                    raise ValidationError("Box name already exists")
            # Corporation
            corp = Corporation.by_uuid(self.get_argument('corporation_uuid'))
            if corp is not None and corp.id != box.corporation_id:
                logging.info("Updated %s's corporation %s -> %s" % (
                    box.name, box.corporation_id, corp.id,
                ))
                box.corporation_id = corp.id
            elif corp is None:
                raise ValidationError("Corporation does not exist")
            # Category
            cat = Category.by_uuid(self.get_argument('category_uuid'))
            if cat is not None and cat.id != box.category_id:
                logging.info("Updated %s's category %s -> %s" % (
                    box.name, box.category_id, cat.id,
                ))
                box.category_id = cat.id
            elif cat is None and cat != box.category_id:
                logging.info("Updated %s's category %s -> None" % (
                    box.name, box.category_id,
                ))
                box.category_id = None
            # System Type
            ostype = self.get_argument('operating_system')
            if ostype is not None and ostype != box.operating_system:
                logging.info("Updated %s's system type %s -> %s" % (
                    box.name, box.operating_system, ostype,
                ))
                box.operating_system = ostype
            # Description
            description = self.get_argument('description', '')
            if description != box._description:
                logging.info("Updated %s's description %s -> %s" % (
                    box.name, box.description, description,
                ))
                box.description = description
            # Difficulty
            difficulty = self.get_argument('difficulty', '')
            if difficulty != box.difficulty:
                logging.info("Updated %s's difficulty %s -> %s" % (
                    box.name, box.difficulty, difficulty,
                ))
                box.difficulty = difficulty
            # Flag submission type
            flag_submission_type = self.get_argument('flag_submission_type', '')
            if flag_submission_type is not None and flag_submission_type != box.flag_submission_type:
                logging.info("Updated %s's flag submission type %s -> %s" % (
                    box.name, box.flag_submission_type, flag_submission_type
                ))
                box.flag_submission_type = flag_submission_type
            # Avatar
            avatar_select = self.get_argument('box_avatar_select', '')
            if avatar_select and len(avatar_select) > 0:
                box._avatar = avatar_select
            elif 'avatar' in self.request.files:
                box.avatar = self.request.files['avatar'][0]['body']

            self.dbsession.add(box)
            self.dbsession.commit()
            self.redirect("/admin/view/game_objects#%s" % box.uuid)
        except ValidationError as error:
            self.render("admin/view/game_objects.html", errors=[str(error), ])