Пример #1
0
 def attachment(self, date, sequence, extension):
     day = Day.find(date=datetime.datetime.strptime(date, "%Y-%m-%d").date())
     page = day.pages[int(sequence)]
     response = flask.make_response(page.binary)
     response.headers['Content-Type'] = page.content_type()
     response.headers['Content-Disposition'] = 'inline; filename="{0}"'.format(page.filename())
     return response
Пример #2
0
 def test_newlines(self):
     "see if a whole horde of weird newlines screws anything up"
     journal_buffer = TextFileJournalBuffer()
     journal_buffer.process_list(["tests/data/excessive_newlines.txt"])
     journal_buffer.save_entries()
     a_day = Day.find(date="2012-10-04")
     self.assertEqual(a_day.render(), self.correct_output)
Пример #3
0
    def test_twodays(self):
        "ensure journals with several days in them continue to work"
        journal_buffer = TextFileJournalBuffer()
        journal_buffer.process_list(["tests/data/two_days.txt"])
        journal_buffer.save_entries()
        self.assertEqual(8, Entry.query.count(),
                         "expected number of objects in DB")

        # now concatenate some days and verify that it matches
        buf = Day.find(date="2012-10-04").render() + \
            Day.find(date="2012-10-05").render() + \
            Day.find(date="2012-10-06").render() + \
            Day.find(date="2012-10-07").render()

        self.assertEqual(buf, self.correct_twodays,
                         "multiple days are output correctly")
Пример #4
0
 def delete_page(self, date, sequence):
     day = Day.find(date=datetime.datetime.strptime(date, "%Y-%m-%d").date())
     idx = int(sequence)
     active_page = day.pages.pop(idx)
     active_page.delete()
     db.session.commit()
     return flask.redirect(flask.url_for('.day_view', date=date))
Пример #5
0
 def day_view(self, date):
     day = Day.find(date=datetime.datetime.strptime(date, "%Y-%m-%d").date())
     if day:
         day_str = re.sub(r'(\d\d\d\d)', '<a name="\g<1>"></a>\n\g<1>', day.render())
         return self.render('journal_explorer/day_view.html', day=day, day_str=day_str)
     else:
         return flask.redirect(flask.url_for('admin.index'))
Пример #6
0
 def day_view(self, date):
     day = Day.find(date=datetime.datetime.strptime(date, "%Y-%m-%d").date())
     if day:
         day_str = re.sub(r'(\d\d\d\d)', '<a name="\g<1>"></a>\n\g<1>', day.render())
         return self.render('journal_explorer/day_view.html', day=day, day_str=day_str)
     else:
         return flask.redirect(flask.url_for('admin.index'))
Пример #7
0
 def attachment(self, date, sequence, extension):
     day = Day.find(date=datetime.datetime.strptime(date, "%Y-%m-%d").date())
     page = day.pages[int(sequence)]
     response = flask.make_response(page.binary)
     response.headers['Content-Type'] = page.content_type()
     response.headers['Content-Disposition'] = 'inline; filename="{0}"'.format(page.filename())
     return response
Пример #8
0
 def test_merge(self):
     "combine two files with interwoven timestamps"
     journal_buffer = TextFileJournalBuffer()
     journal_buffer.process_list(
         ["tests/data/source_a.txt", "tests/data/source_b.txt"])
     journal_buffer.save_entries()
     a_day = Day.find(date="2012-10-04")
     self.assertEqual(a_day.render(), self.correct_merge)
Пример #9
0
 def move_page_down(self, date, sequence):
     day = Day.find(date=datetime.datetime.strptime(date, "%Y-%m-%d").date())
     if int(sequence) < len(day.pages)-1:
         active_page = day.pages.pop(int(sequence))
         day.pages.reorder()
         day.pages.insert(int(sequence)+1, active_page)
         day.pages.reorder()
         db.session.commit()
     return flask.redirect(flask.url_for('.day_view', date=date))
Пример #10
0
 def move_page_down(self, date, sequence):
     day = Day.find(date=datetime.datetime.strptime(date, "%Y-%m-%d").date())
     if int(sequence) < len(day.pages)-1:
         active_page = day.pages.pop(int(sequence))
         day.pages.reorder()
         day.pages.insert(int(sequence)+1, active_page)
         day.pages.reorder()
         db.session.commit()
     return flask.redirect(flask.url_for('.day_view', date=date))
Пример #11
0
 def nearest_day_view(self, date):
     day = Day.find(date=datetime.datetime.strptime(date, "%Y-%m-%d").date())
     if day:
         return flask.redirect(flask.url_for('.day_view', date=day.date))
     else:
         day = Day.query.order_by(Day.date).filter(Day.date > date).first()
         if day:
             return flask.redirect(flask.url_for('.day_view', date=day.date))
     # if no dates are found, redirect to home page
     return flask.redirect(flask.url_for('admin.index'))
Пример #12
0
    def test_textfile_batch_create(self):
        "Create objects in the database."
        journal_buffer = TextFileJournalBuffer()
        journal_buffer.process_list(
            ["tests/data/source_a.txt", "tests/data/source_b.txt"])

        # create objects
        journal_buffer.save_entries()
        self.assertEqual(8, Entry.query.count(),
                         "expected number of objects in DB")

        # use Journal Model to verify that objects were created
        a_day = Day.find(date="2012-10-04")
        self.assertEqual(8, a_day.entries.count(),
                         "expected number of entries returned")

        # and this should not exist
        a_day = Day.find(date="2012-10-05")
        self.assertIsNone(a_day, "there are no entries for the 5th")
Пример #13
0
 def download(self, date):
     day = Day.find(date=datetime.datetime.strptime(date, "%Y-%m-%d").date())
     if day:
         response = flask.make_response(day.render_pdf())
         response.headers['Content-Type'] = 'application/pdf'
         disposition_str = 'attachment; filename="{0}.pdf"'.format(day.date)
         response.headers['Content-Disposition'] = disposition_str
         return response
     else:
         return flask.redirect(flask.url_for('.day_view', date=date))
Пример #14
0
 def download(self, date):
     day = Day.find(date=datetime.datetime.strptime(date, "%Y-%m-%d").date())
     if day:
         response = flask.make_response(day.render_pdf())
         response.headers['Content-Type'] = 'application/pdf'
         disposition_str = 'attachment; filename="{0}.pdf"'.format(day.date)
         response.headers['Content-Disposition'] = disposition_str
         return response
     else:
         return flask.redirect(flask.url_for('.day_view', date=date))
Пример #15
0
 def nearest_day_view(self, date):
     day = Day.find(date=datetime.datetime.strptime(date, "%Y-%m-%d").date())
     if day:
         return flask.redirect(flask.url_for('.day_view', date=day.date))
     else:
         day = Day.query.order_by(Day.date).filter(Day.date > date).first()
         if day:
             return flask.redirect(flask.url_for('.day_view', date=day.date))
         else:
             day = Day.query.order_by(Day.date.desc()).filter(Day.date < date).first()
             if day:
                 return flask.redirect(flask.url_for('.day_view', date=day.date))
     # if no dates are found, redirect to home page
     return flask.redirect(flask.url_for('admin.index'))
Пример #16
0
 def markdown_view(self, date):
     day = Day.find(date=datetime.datetime.strptime(date, "%Y-%m-%d").date())
     if day:
         return day.render_markdown()
     else:
         return flask.redirect(flask.url_for('admin.index'))
Пример #17
0
 def delete_page(self, date, sequence):
     day = Day.find(date=datetime.datetime.strptime(date, "%Y-%m-%d").date())
     active_page = day.pages.pop(int(sequence))
     active_page.delete()
     db.session.commit()
     return flask.redirect(flask.url_for('.day_view', date=date))
Пример #18
0
 def markdown_view(self, date):
     day = Day.find(date=datetime.datetime.strptime(date, "%Y-%m-%d").date())
     if day:
         return day.render_markdown()
     else:
         return flask.redirect(flask.url_for('admin.index'))
Пример #19
0
 def upload_file(self, date):
     day = Day.find(date=datetime.datetime.strptime(date, "%Y-%m-%d").date())
     file_handle = flask.request.files['file']
     if day and file_handle:
         day.attach(file_handle.read())
     return flask.redirect(flask.url_for('.day_view', date=date))
Пример #20
0
 def preview(self, date, sequence):
     day = Day.find(date=datetime.datetime.strptime(date, "%Y-%m-%d").date())
     page = day.pages[int(sequence)]
     response = flask.make_response(page.preview)
     response.headers['Content-Type'] = 'image/jpeg'
     return response
Пример #21
0
 def preview(self, date, sequence):
     day = Day.find(date=datetime.datetime.strptime(date, "%Y-%m-%d").date())
     page = day.pages[int(sequence)]
     response = flask.make_response(page.preview)
     response.headers['Content-Type'] = 'image/jpeg'
     return response
Пример #22
0
 def upload_file(self, date):
     day = Day.find(date=datetime.datetime.strptime(date, "%Y-%m-%d").date())
     file_handle = flask.request.files['file']
     if day and file_handle:
         day.attach(file_handle.read())
     return flask.redirect(flask.url_for('.day_view', date=date))