From edfdb4a443ab89d8d0dcb0952aab96423b4544fc Mon Sep 17 00:00:00 2001 From: Cédric Bonhomme Date: Tue, 23 May 2017 23:26:25 +0200 Subject: Added database migration script. --- src/web/controllers/bookmark.py | 7 +++++-- src/web/models/bookmark.py | 2 +- src/web/models/tag.py | 2 +- src/web/views/bookmark.py | 20 ++++++++++++++------ 4 files changed, 21 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/web/controllers/bookmark.py b/src/web/controllers/bookmark.py index c8423414..b5413243 100644 --- a/src/web/controllers/bookmark.py +++ b/src/web/controllers/bookmark.py @@ -22,8 +22,11 @@ class BookmarkController(AbstractController): .delete() for tag in attrs['tags']: - BookmarkTagController(self.user_id) \ - .update({'id': tag.id}, {'bookmark_id': filters["id"]}) + BookmarkTagController(self.user_id).create( + **{'text': tag.text, + 'id': tag.id, + 'bookmark_id': tag.bookmark_id, + 'user_id': tag.user_id}) del attrs['tags'] return super().update(filters, attrs) diff --git a/src/web/models/bookmark.py b/src/web/models/bookmark.py index 6eee3cba..a01e6973 100644 --- a/src/web/models/bookmark.py +++ b/src/web/models/bookmark.py @@ -43,7 +43,7 @@ class Bookmark(db.Model, RightMixin): id = db.Column(db.Integer(), primary_key=True) href = db.Column(db.String(), default="") title = db.Column(db.String(), default="") - description = db.Column(db.String(), default="FR") + description = db.Column(db.String(), default="") shared = db.Column(db.Boolean(), default=False) to_read = db.Column(db.Boolean(), default=False) time = db.Column(db.DateTime(), default=datetime.utcnow) diff --git a/src/web/models/tag.py b/src/web/models/tag.py index 623808f0..76467c0b 100644 --- a/src/web/models/tag.py +++ b/src/web/models/tag.py @@ -24,7 +24,7 @@ class BookmarkTag(db.Model): text = db.Column(db.String, unique=False) # foreign keys - user_id = db.Column(db.Integer, db.ForeignKey('user.id')) + user_id = db.Column(db.Integer, db.ForeignKey('user.id', ondelete='CASCADE')) bookmark_id = db.Column(db.Integer, db.ForeignKey('bookmark.id', ondelete='CASCADE')) # relationships diff --git a/src/web/views/bookmark.py b/src/web/views/bookmark.py index c3a6e7bd..b5666248 100644 --- a/src/web/views/bookmark.py +++ b/src/web/views/bookmark.py @@ -55,25 +55,33 @@ def process_form(bookmark_id=None): if not form.validate(): return render_template('edit_bookmark.html', form=form) - tags = [] - for tag in form.tags.data.split(','): - new_tag = tag_contr.create(text= tag.strip(), user_id= current_user.id) - tags.append(new_tag) - bookmark_attr = {'href': form.href.data, 'description': form.description.data, 'title': form.title.data, - 'tags': tags, 'shared': form.shared.data, 'to_read': form.to_read.data} if bookmark_id is not None: + tags = [] + for tag in form.tags.data.split(','): + new_tag = tag_contr.create(text=tag.strip(), user_id=current_user.id, + bookmark_id=bookmark_id) + tags.append(new_tag) + bookmark_attr['tags'] = tags bookmark_contr.update({'id': bookmark_id}, bookmark_attr) flash(gettext('Bookmark successfully updated.'), 'success') return redirect(url_for('bookmark.form', bookmark_id=bookmark_id)) # Create a new bookmark new_bookmark = bookmark_contr.create(**bookmark_attr) + tags = [] + for tag in form.tags.data.split(','): + new_tag = tag_contr.create(text=tag.strip(), user_id=current_user.id, + bookmark_id=new_bookmark.id) + tags.append(new_tag) + bookmark_attr['tags'] = tags + bookmark_contr.update({'id': new_bookmark.id}, bookmark_attr) + flash(gettext('Bookmark successfully created.'), 'success') -- cgit