Пример #1
0
def insert_initial_data():
    try:
        admin = User(
            username='******',
            password=app.config.get('ADMIN_PASSWORD')
        )
        db.session.add(admin)
        db.session.commit()
    except IntegrityError:
        db.session.rollback()
        return

    admin_note = Note(
        title='Hello world',
        content=('Lorem ipsum dolor sit amet, consectetur '
        'adipiscing elit, sed do eiusmod tempor incididunt...'),
        owner=admin
    )
    db.session.add(admin_note)

    admin_note = Note(
        title='flag',
        content=app.config.get('FLAG'),
        owner=admin
    )
    db.session.add(admin_note)
    db.session.commit()
Пример #2
0
    def post(self):
        user = users.get_current_user()
        if user is None:
            self.error(401)

        self._create_note(user)

        note = Note(title=self.request.get('title'),
                    content=self.request.get('content'))
        note.put()

        note = Note(parent=ndb.Key("User", user.nickname()),
                    title=self.request.get('title'),
                    content=self.request.get('content'))
        note.put()

        item_titles = self.request.get('checklist_items').split(',')
        for item_title in item_titles:
            item = CheckListItem(parent=note.key, title=item_title)
            item.put()
            note.checklist_items.append(item.key)
        note.put()

        logout_url = users.create_logout_url(self.request.uri)
        template_context = {
            'user': user.nickname(),
            'logout_url': logout_url,
        }
        self.response.out.write(template.render(template_context))

        def _render_template(self, template_name, context=None):
            if context is None:
                context = {}

            user = users.get_current_user()
            ancestor_key = ndb.Key("User", user.nickname())
            qry = Note.owner_query(ancestor_key)
            context['notes'] = qry.fetch()

            template = jinja_env, get_template(template_name)
            return template.render(context)

            self.response.out.write(
                self._render_template('main.html', template_context))

        @ndb.transactional
        def _create_note(self, user):
            note = Note(parent=ndb.Key("User", user.nickname()),
                        title=self.request.get('title'),
                        content=self.request.get('content'))

        note.put()

        item_titles = self.request.get('checklist_items').split(',')
        for item_title in item_titles:
            item = CheckListItem(parent=note.key, title=item_title)
            item.put()
            note.checklist_items.append(item.key)
        note.put()
Пример #3
0
def hour_notification():
    while True:
        now = datetime.now()
        offset = 60 - (now.second + (now.microsecond / 1000000))
        dt = int(now.timestamp() + offset)
        sleep(offset)
        [
            notification(Note(*note))
            for note in Note().select(f'datetime={dt + 3600}')
        ]
Пример #4
0
def day_notification(time='09:00'):
    notification_time = datetime.strptime(time, '%H:%M').time()
    while True:
        now = datetime.now()
        notification_dt = int(
            datetime.combine(now.date(), notification_time).timestamp())
        if now.time() > notification_time:
            notification_dt += 86400
        now_dt = int(now.timestamp())
        sleep(notification_dt - now_dt)
        [
            notification(Note(*note)) for note in Note().select(
                f'datetime BETWEEN {now_dt} AND {now_dt + 86400}')
        ]
Пример #5
0
def new_note():

    if session.get('user'):
        if request.method == 'POST':
            title = request.form['title']

            text = request.form['noteText']

            from datetime import date
            today = date.today()

            today = today.strftime("%m-%d-%Y")

            privacy = request.form['privacy']

            new_record = Note(title, text, today, session['user_id'], privacy)
            db.session.add(new_record)
            db.session.commit()

            return redirect(url_for('get_notes'))

        else:
            return render_template('new.html', user=session['user'])
    else:
        return redirect(url_for('login'))
Пример #6
0
def new_note():
    # check if a user is saved in session
    if session.get('user'):

        # check method used for request
        if request.method == "POST":
            # get title data
            title = request.form["title"]
            # get note data
            text = request.form["noteText"]
            # create date stamp
            from datetime import date
            today = date.today()
            # format date mm/dd/yyyy
            today = today.strftime("%m-%d-%Y")
            new_record = Note(title, text, today, session['user_id'])
            db.session.add(new_record)
            db.session.commit()

            return redirect(url_for('get_notes'))

        else:
            # GET request - show new note form
            return render_template("new.html", user=session['user'])
    else:
        # user is not in session redirect to login
        return redirect(url_for('login'))
Пример #7
0
def add_applicant_note(applicant_user_id,
                       text,
                       title=None,
                       is_chat_log=False,
                       current_user=None):
    application = Application.get_submitted_for_user(applicant_user_id)
    if application is None:
        raise BadRequestException('User {} is not an applicant'.format(
            User.get(applicant_user_id).name))
    else:
        if not is_recruiter(current_user):
            raise ForbiddenException('Current user is not a recruiter')
        elif (application.recruiter_id != current_user.id
              and not is_senior_recruiter(current_user)):
            raise ForbiddenException(
                'Current recruiter has not claimed applicant {}'.format(
                    applicant_user_id))
        note = Note(
            text=text,
            title=title,
            application_id=application.id,
            is_chat_log=is_chat_log,
            author_id=current_user.id,
        )
        db.session.add(note)
        db.session.commit()
        return {'status': 'ok'}
Пример #8
0
def note():
    req_title = request.form.get('title')
    req_content = request.form.get('content')

    if not req_title or not req_content:
        flash('title or content is blank', category='danger')
        return redirect(url_for('index'))

    if len(req_title) > app.config.get('NOTE_TITLE_MAX_LENGTH'):
        flash(f'too long title (max length: {app.config.get("NOTE_TITLE_MAX_LENGTH")})', category='danger')
        return redirect(url_for('index'))

    if len(req_content) > app.config.get('NOTE_CONTENT_MAX_LENGTH'):
        flash(f'too long content (max length: {app.config.get("NOTE_CONTENT_MAX_LENGTH")})', category='danger')
        return redirect(url_for('index'))

    new_note = Note(
        title=req_title,
        content=req_content,
        author=current_user
    )
    db.session.add(new_note)
    db.session.commit()

    flash('added new note successfully', category='success')
    return redirect(url_for('index'))
Пример #9
0
 def post(self):
     note = self.request.get('note')
     if len(note) > 1500:
         note = note[:1500]
     user = users.get_current_user()
     Note(user_id=user.user_id(), content=note).put()
     self.redirect('/')
Пример #10
0
def new_note(request):
    if request.method == 'POST' and 'b2' in request.POST :
        form = NewNote(request.POST)
        if form.is_valid():
            new = Note()
            new.owner = request.session['username']
            new.head = form.cleaned_data["heading"]
            new.content = form.cleaned_data["content"]
            con = Markdown()
            new.md = con.convert(new.content)
            new.save()
            return HttpResponseRedirect("./")
    if request.method == 'POST' and 'b1' in request.POST :
        form = NewNote(request.POST)
        if form.is_valid():
            con=Markdown()
            request.session['temp'] = con.convert(form.cleaned_data['content'])

            return HttpResponseRedirect('preview')
    data = [i for i in Note.objects.all() if i.owner == request.session['username']]

    context = dict()
    context['data'] = data
    context['form'] = NewNote()
    context['username'] = request.session['username']
    temp = loader.get_template('notes/newnote.html')
    return HttpResponse(temp.render(context, request))
Пример #11
0
def new_note():
    # retrieve user from database
    # a_user = db.session.query(User).filter_by(email='*****@*****.**').one()
    # check if a user is saved in session
    if session.get('user'):
        # check method used for request
        # print('request method is', request.method)
        if request.method == 'POST':
            # get title data
            title = request.form['title']
            # get note data
            text = request.form['noteText']
            # create date stamp
            from datetime import date
            today = date.today()
            # format date mm/dd/yyyy
            today = today.strftime('%m-%d-%Y')
            newEntry = Note(title, text, today, session['user_id'])
            db.session.add(newEntry)
            db.session.commit()
            return redirect(url_for('get_notes'))
        else:
            return render_template('new.html', user=session['user'])
    else:
        # user is not in session redirect to login
        return redirect(url_for('login'))
Пример #12
0
def add_notes_form(username):
    """ GET: Display a form to add notes.
        POST: Add a new note and redirect to /users/<username>
    """

    if CURRENT_USER not in session:
        flash("You are not authorized to view this page.")
        return redirect("/login")

    elif username != session[CURRENT_USER]:
        flash("You are not authorized to access another user's page.")
        logged_in_user = session[CURRENT_USER]
        return redirect(f"/users/{logged_in_user}")

    form = NoteForm()
    user = User.query.get_or_404(username)

    if form.validate_on_submit():
        title = form.title.data
        content = form.content.data
        note = Note(title=title, content=content)
        user.notes.append(note)

        db.session.commit()

        return redirect(f'/users/{username}')
    else:
        return render_template("new_note.html", user=user, form=form)
Пример #13
0
    def _create_note(self, user, title, content, attachments):

        note = Note(parent=ndb.Key("User", user.nickname()),
                    title=title,
                    content=content)
        note.put()

        if attachments:
            bucket_name = app_identity.get_default_gcs_bucket_name()
            for file_name, file_content in attachments:
                content_t = mimetypes.guess_type(file_name)[0]
                real_path = os.path.join('/', bucket_name, user.user_id(), file_name)

                with cloudstorage.open(real_path, 'w', content_type=content_t,
                                       options={'x-goog-acl': 'public-read'}) as f:
                    f.write(file_content.decode())

                key = blobstore.create_gs_key('/gs' + real_path)
                try:
                    url = images.get_serving_url(key, size=0)
                    thumbnail_url = images.get_serving_url(key, size=150, crop=True)
                except images.TransformationError, images.NotImageError:
                    url = "http://storage.googleapis.com{}".format(real_path)
                    thumbnail_url = None

                f = NoteFile(parent=note.key, name=file_name,
                             url=url, thumbnail_url=thumbnail_url,
                             full_path=real_path)
                f.put()
                note.files.append(f.key)

            note.put()
def new_note():
    # check if a user is saved in session
    if session.get('user'):
        # check method used for request
        if request.method == 'POST':
            # get title data
            title = request.form['title']
            # get note data
            text = request.form['noteText']
            # create data stamp
            from datetime import date
            today = date.today()
            # format data mm/dd/yyyy
            today = today.strftime("%m-%d-%Y")
            new_record = Note(title, text, today, session['user_id'])
            db.session.add(new_record)
            db.session.commit()

            return redirect(url_for('get_notes'))

        else:
            #GET request - show new note form
            #retrieve user from database
            a_user = db.session.query(User).filter_by(
                id=session['user_id']).one()
            return render_template('new.html', user=a_user)
    else:
        # user is not in session redirect to login
        return redirect(url_for('login'))
Пример #15
0
def new_note():
    # check if a user is saved in session
    if session.get('user'):
        if request.method == 'POST':
            title = request.form['title']
            text = request.form['noteText']
            from datetime import date
            from datetime import datetime
            today = date.today()
            now = datetime.now()
            timestamp = now.strftime("%I:%M:%S")
            today = today.strftime("%m-%d-%Y")
            views = 0
            new_record = Note(title, text, today,
                              timestamp, views, session['user_id'])
            db.session.add(new_record)
            db.session.commit()

            return redirect(url_for('get_notes'))
        else:
            # GET request - show new note form
            # retrieve user from database
            a_user = db.session.query(User).filter_by(id=session['user_id']).one()
            return render_template('new.html', user=session['user'])
    else:
        return redirect(url_for('login'))
Пример #16
0
def publish_note(request):

    if request.POST['flag'] == 'index':

        id = request.POST['userid']
        pub = Publisher.objects.filter(id=id)[0]
        return render(request, 'edit.html', {'pub': pub})
    else:

        username = request.POST['id']
        title = request.POST['title']
        content = request.POST['content']
        flag = request.POST['flag']
        timer = time.strftime("%Y-%m-%d %X", time.localtime())

        note = Note(title=title,
                    time=timer,
                    content=content,
                    publisher_id=username)
        note.save()
        #待修改
        #增刷新个人主页帖子window.location.reload;
        return HttpResponse(
            '<script type="text/javascript">alert("发布成功");window.history.go(-2);</script>'
        )
Пример #17
0
def my_notes():
    user = User.query.filter_by(id=current_user.id).first()

    form = CreateNoteForm(meta={'csrf_context': session})
    if form.validate_on_submit():
        heading = form.heading.data
        title = form.title.data
        body = form.body.data
        public = form.public.data
        note = Note(title=title,
                    heading=heading,
                    body=body,
                    owner=user,
                    public=public)
        db.session.add(note)

        shares_list = {row.strip() for row in form.shares.data.split()}
        for user_name in shares_list:
            share = Share(note=note, user_name=user_name)
            db.session.add(share)

        db.session.commit()

        flash('Notatka została dodana', 'alert alert-success')

    notes = user.notes
    return render_template('my_notes.html', form=form, notes=notes)
Пример #18
0
def new():
    pcfg = {"title": "New note"}

    form = NoteForm()

    if form.validate_on_submit():
        a = Note()
        a.title = form.title.data
        a.cat = form.cat.data
        a.note = form.note.data
        a.user_id = current_user.id

        db.session.add(a)
        db.session.commit()

        flash("Success updating note: {0}".format(a.title), "success")
        return redirect(url_for("bp_notes.notes"))

    logbooks = (db.session.query(Logbook.id, Logbook.name, func.count(
        Log.id)).join(Log).filter(Logbook.user_id == current_user.id).group_by(
            Logbook.id).all())
    return render_template("notes/new.jinja2",
                           pcfg=pcfg,
                           form=form,
                           logbooks=logbooks)
Пример #19
0
def handle_add_notes(username):
    """ Display form to add notes for the logged in user.
        Add new note and redirect to user detail.
    """

    if session.get('user_id') != username:
        flash("You are not authorized to add notes to this user!")
        return redirect('/')

    form = NoteForm()

    if form.validate_on_submit():

        new_note = Note()
        form.populate_obj(new_note)
        new_note.owner = username

        db.session.add(new_note)
        db.session.commit()

        flash("Note has been added")

        return redirect(f"/users/{username}")
    else:
        return render_template("add_notes.html", form=form)
Пример #20
0
def add_note(username):
    """
    If GET, displays a form to add a new note
    If POST, processes new note and redirects to user's info page
    """
    #fail fast
    #redirect and flash first
    user = User.query.get_or_404(username)

    if "username" not in session or username != session["username"]:
        flash("You cannot add a note from this user")
        return redirect("/")

    form = NoteForm()

    if form.validate_on_submit():
        title = form.title.data
        content = form.content.data
        new_note = Note(title=title, content=content, owner=user.username)
        db.session.add(new_note)
        db.session.commit()
        return redirect(f"/users/{user.username}")

    else:
        return render_template("new_note_form.html", form=form)
Пример #21
0
def post():
    if request.method == 'POST':
        note = Note(title=request.form['title'], body=request.form['note'])
        db.session.add(note)
        db.session.commit()
        return redirect(url_for('index'))
    return render_template('post.html')
Пример #22
0
def new_note():
    if session.get('user'):

        #check method used for request
        if request.method == 'POST':
            #get title data
            title = request.form['title']
            #get note data
            text = request.form['noteText']
            #create data stamp
            from datetime import date
            today = date.today()
            # format date mm/dd/yyyy
            today = today.strftime("%m-%d-%Y")
            new_record = Note(title, text, today, session['user_id'])
            db.session.add(new_record)
            db.session.commit()

            return redirect(url_for('get_notes'))

        else:
            return render_template('new.html', user=session['user'])

    else:
        return render_template(url_for('login'))
Пример #23
0
 def to_internal_value(self, validated_data):
     logging.debug('create note')
     note = Note(
         note=validated_data.get('note'),
         user=self.context.get('request').user
     )
     return note
Пример #24
0
    def _create_note(self, user, file_name, file_path):
        note = Note(parent=ndb.Key("User", user.nickname()),
                    title=self.request.get('title'),
                    content=self.request.get('content'))

        item_titles = self.request.get('checklist_items').split(',')
        for item_title in item_titles:
            if not item_title:
                continue
            item = CheckListItem(title=item_title)
            note.checklist_items.append(item)

        note.put()

        if file_name and file_path:
            url, thumbnail_url = self._get_urls_for(file_name)

            f = NoteFile(parent=note.key,
                         name=file_name,
                         url=url,
                         thumbnail_url=thumbnail_url,
                         full_path=file_path)
            f.put()
            note.files.append(f.key)
            note.put()

        inc_note_counter()
Пример #25
0
    def test_delete_ticket_note(self):
        # Create our two users and make them owners of the same ticket.
        self.add_users_to_db()
        ticket = Ticket(id=3,
                        status=0,
                        createdAt=datetime.date.today(),
                        updatedAt=datetime.date.today())
        self.session.add(ticket)
        users = self.session.query(User).all()
        for user in users:
            owner = Ownership(owner_id=user.id,
                              ticket_id=3,
                              createdAt=datetime.date.today(),
                              updatedAt=datetime.date.today())
            self.session.add(owner)
        note = Note(id=6,
                    poster_id=users[0].id,
                    ticket_id=3,
                    message="My message to the world",
                    status=2,
                    type=3,
                    createdAt=datetime.date.today(),
                    updatedAt=datetime.date.today())
        self.session.add(note)
        self.session.commit()

        # Now delete the note and verify it is gone.
        response = self.app.delete('/portal/ticket/note/6')
        response.status == "200 OK"
        result = self.session.query(Note).first()
        assert result is None
Пример #26
0
def user_notes_add(username):
    """ Show notes add form or handle note to add."""

    if session.get("username") != username:
        flash("You must be logged in to view!")
        return redirect("/")

    form = AddNoteForm()

    if form.validate_on_submit():
        user = User.query.get(username)

        title = form.title.data
        content = form.content.data
        owner = user.username

        new_note = Note(
            title=title,
            content=content,
            owner=owner,
        )

        db.session.add(new_note)
        db.session.commit()

        return redirect(f"/users/{user.username}")

    else:
        return render_template("user_notes_add.html", form=form)
Пример #27
0
def add_new_note(username):
    """ display form to add a new note and 
        adds new note to user notes """

    form = NewNoteForm()

    if "user_id" not in session:
        flash("User access not allowed - must be logged in")
        return redirect('/')
    else:
        if session["user_id"] == username:
            if form.validate_on_submit():

                title = form.title.data
                content = form.content.data
                note = Note(title=title, content=content, owner=username)

                db.session.add(note)
                db.session.commit()

                return redirect(f"/users/{username}") 
            else:
                return render_template("note_add_new.html", form=form)

        return redirect("/login")
Пример #28
0
def save():
    title = request.form['ntitle']
    body = request.form['nbody']
    note = Note(title, body, session['uid'])
    db.session.add(note)
    db.session.commit()
    flash('Note saved successfully.')
    return redirect("/")
Пример #29
0
 def post(self):
     parsed_args = parser.parse_args()
     note = Note(title=parsed_args['title'], body=parsed_args['body'],
                 date= datetime.now().strftime("%a, %d/%m/%Y"),
                 archived = False)
     session.add(note)
     session.commit()
     return note, 201
Пример #30
0
def index():
    if request.method == 'POST' and request.form.get('content'):
        note = Note(content=request.form['content'])
        Note.save(note)
        return redirect(url_for('index'))

    notes = Note.list_public()
    return render_template('index.html', notes=notes)