Exemple #1
0
    def post(self):
        try:
            section_id = self.request.GET['section_id']
        except:
            self.redirect("/error?msg=Key missing for deletion.")
            return

        user = users.get_current_user()

        if user:
            try:
                section = ndb.Key(urlsafe=section_id).get()
                chapter = Chapter.get_by_id(section.chapter)
                story = Story.get_by_id(chapter.story)
            except:
                self.redirect("/error?msg=Key was not found.")
                return

            self.redirect("/info?msg=Section deleted: " +
                          story.title.encode("ascii", "replace") + ": " +
                          chapter.title.encode("ascii", "replace") + " - " +
                          str(section.num) +
                          "&url=/manage_sections?chapter_id=" +
                          chapter.key.urlsafe())

            # Remove story
            model.remove_data.remove_section(section.key)
        else:
            self.redirect("/")
Exemple #2
0
    def get(self):
        try:
            chapter_id = self.request.GET['chapter_id']
        except:
            self.redirect("/error?msg=missing key for modifying")
            return

        user = users.get_current_user()

        if user:
            user_name = user.nickname()
            access_link = users.create_logout_url("/")

            try:
                chapter = ndb.Key(urlsafe=chapter_id).get()
                story = Story.get_by_id(chapter.story)
            except:
                self.redirect("/error?msg=key does not exist")
                return

            template_values = {
                "info": AppInfo,
                "user_name": user_name,
                "access_link": access_link,
                "story": story,
                "chapter": chapter,
            }

            jinja = jinja2.get_jinja2(app=self.app)
            self.response.write(
                jinja.render_template("modify_chapter.html",
                                      **template_values))
        else:
            self.redirect("/")
Exemple #3
0
    def post(self):
        try:
            id = self.request.GET['chapter_id']
        except:
            id = None

        if not id:
            self.redirect("/error?msg=Key missing for deletion (post).")
            return

        user = users.get_current_user()

        if user:
            try:
                chapter = ndb.Key(urlsafe=id).get()
                story = Story.get_by_id(chapter.story)
            except:
                self.redirect("/error?msg=Key was not found for deletion.")
                return

            self.redirect("/info?msg=Chapter deleted: " +
                          (story.title + ": " +
                           chapter.title).encode("ascii", "replace") +
                          "&url=/manage_chapters?story_id=" +
                          story.key.urlsafe())

            # Remove chapter
            model.remove_data.remove_chapter(chapter.key)
        else:
            self.redirect("/")
Exemple #4
0
    def post(self):
        try:
            character_id = self.request.GET['character_id']
        except:
            self.redirect("/error?msg=missing id for modification")
            return

        user = users.get_current_user()

        if user:
            # Get story by key
            try:
                character = ndb.Key(urlsafe=character_id).get()
                story = Story.get_by_id(character.story)
            except:
                self.redirect("/error?msg=key does not exist")
                return

            character.name = self.request.get("name", "").strip()
            character.summary = self.request.get("summary", "").strip()

            # Chk
            if len(character.name) < 1:
                self.redirect("/error?msg=Aborted modification: missing name")
                return

            # Chk title
            existing_characters = Character.query(
                Character.name == character.name)
            if (existing_characters and existing_characters.count() > 0
                    and existing_characters.get() != character):
                self.redirect("/error?msg=Character with name \"" +
                              character.title.encode("ascii", "replace") +
                              "\" already exists.")
                return

            # Save
            character.put()
            self.redirect("/info?msg=Character modified: \"" +
                          character.name.encode("ascii", "replace") + "@" +
                          story.title.encode("ascii", "replace") +
                          "\"&url=/manage_characters?story_id=" +
                          story.key.urlsafe())
        else:
            self.redirect("/")
Exemple #5
0
    def get(self):
        user = users.get_current_user()

        if user:
            user_name = user.nickname()

            try:
                chapter_id = self.request.GET['chapter_id']
            except:
                self.redirect("/error?msg=Key missing for management.")
                return

            try:
                chapter = ndb.Key(urlsafe=chapter_id).get()
                story = Story.get_by_id(chapter.story)
            except:
                self.redirect("/error?msg=Key was not found.")
                return

            sections = Section.query(
                Section.chapter == chapter.key.id()).order(Section.num)
            total_stats = count_chapter(chapter.key.id())
            access_link = users.create_logout_url("/")

            template_values = {
                "info": AppInfo,
                "user_name": user_name,
                "access_link": access_link,
                "story": story,
                "chapter": chapter,
                "sections": sections,
                "total_crs": total_stats["crs"],
                "total_ws": total_stats["ws"],
                "total_pgs": total_stats["pgs"]
            }

            jinja = jinja2.get_jinja2(app=self.app)
            self.response.write(
                jinja.render_template("sections.html", **template_values))
        else:
            self.redirect("/")
            return
Exemple #6
0
    def post(self):
        try:
            section_id = self.request.GET['section_id']
        except:
            self.redirect("/error?msg=missing key for modification")
            return

        user = users.get_current_user()

        if user:
            try:
                section = ndb.Key(urlsafe=section_id).get()
                chapter = Chapter.get_by_id(section.chapter)
                story = Story.get_by_id(chapter.story)
            except:
                self.redirect("/error?msg=key does not exist")
                return

            section.text = self.request.get("text", "").strip()

            # Chk
            if len(section.text) < 1:
                self.redirect(
                    "/error?msg=Aborted modification: missing section's text")
                return

            if section.num < 1:
                self.redirect(
                    "/error?msg=Aborted modification: missing section's number"
                )
                return

            # Save
            model.section.update(section)
            self.redirect("/info?msg=Section modified: \"" +
                          (story.title + ": " +
                           chapter.title).encode("ascii", "replace") + ": " +
                          str(section.num) +
                          "\"&url=/manage_sections?chapter_id=" +
                          chapter.key.urlsafe())
        else:
            self.redirect("/")
Exemple #7
0
    def get(self):
        try:
            id = self.request.GET['section_id']
        except:
            self.redirect("/error?msg=Key missing for deletion.")
            return

        user = users.get_current_user()

        if user:
            user_name = user.nickname()
            access_link = users.create_logout_url("/")

            try:
                section = ndb.Key(urlsafe=id).get()
                chapter = Chapter.get_by_id(section.chapter)
                story = Story.get_by_id(chapter.story)
            except:
                self.redirect("/error?msg=Key was not found.")
                return

            template_values = {
                "info": AppInfo,
                "user_name": user_name,
                "access_link": access_link,
                "story": story,
                "chapter": chapter,
                "section": section
            }

            jinja = jinja2.get_jinja2(app=self.app)
            self.response.write(
                jinja.render_template("delete_section.html",
                                      **template_values))
        else:
            self.redirect("/")