本文整理汇总了Python中mediacore.model.meta.DBSession.delete方法的典型用法代码示例。如果您正苦于以下问题:Python DBSession.delete方法的具体用法?Python DBSession.delete怎么用?Python DBSession.delete使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类mediacore.model.meta.DBSession
的用法示例。
在下文中一共展示了DBSession.delete方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: save_fields
# 需要导入模块: from mediacore.model.meta import DBSession [as 别名]
# 或者: from mediacore.model.meta.DBSession import delete [as 别名]
def save_fields(**result):
"""Save SEO settings to the database on a Media item save.
When the :attr:`mediacore.plugin.events.Admin.MediaController.save`
event is triggered it receives the dict of values returned by
:meth:`mediacore.controllers.admin.media.MediaController.save`.
The SEO values are extracted from tmpl_context.form_values and if
a value was entered it is saved. If a valid setting was found, but
it does not have a value, we remove it form the given media item.
:param result: A dict of form values for the Media item
:param type: dict
:returns: A dict of form values for the Media item
:rtpye: dict
"""
media = Media.query.get(result['media_id'])
for key, value in tmpl_context.form_values['seo'].iteritems():
meta_key = u'seo_%s' % key
if value:
media.meta[meta_key] = value
elif meta_key in media.meta:
DBSession.delete(media._meta[meta_key])
return result
示例2: test_metagroup_assignment_does_not_fail_if_groups_are_not_found_in_db
# 需要导入模块: from mediacore.model.meta import DBSession [as 别名]
# 或者: from mediacore.model.meta.DBSession import delete [as 别名]
def test_metagroup_assignment_does_not_fail_if_groups_are_not_found_in_db(self):
DBSession.delete(self.anonymous)
DBSession.delete(self.authenticated)
DBSession.flush()
user = User.example()
self.assert_user_groups([], user)
示例3: save
# 需要导入模块: from mediacore.model.meta import DBSession [as 别名]
# 或者: from mediacore.model.meta.DBSession import delete [as 别名]
def save(self, id, email_address, display_name, login_details,
delete=None, **kwargs):
"""Save changes or create a new :class:`~mediacore.model.auth.User` instance.
:param id: User ID. If ``"new"`` a new user is created.
:type id: ``int`` or ``"new"``
:returns: Redirect back to :meth:`index` after successful save.
"""
user = fetch_row(User, id)
if delete:
DBSession.delete(user)
redirect(action='index', id=None)
user.display_name = display_name
user.email_address = email_address
user.user_name = login_details['user_name']
password = login_details['password']
if password is not None and password != '':
user.password = password
if login_details['group']:
group = fetch_row(Group, login_details['group'])
user.groups = [group]
else:
user.groups = []
DBSession.add(user)
DBSession.flush()
redirect(action='index', id=None)
示例4: save
# 需要导入模块: from mediacore.model.meta import DBSession [as 别名]
# 或者: from mediacore.model.meta.DBSession import delete [as 别名]
def save(self, id, delete=None, **kwargs):
"""Save changes or create a category.
See :class:`~mediacore.forms.admin.settings.categories.CategoryForm` for POST vars.
:param id: Category ID
:param delete: If true the category is to be deleted rather than saved.
:type delete: bool
:rtype: JSON dict
:returns:
success
bool
"""
if tmpl_context.form_errors:
if request.is_xhr:
return dict(success=False, errors=tmpl_context.form_errors)
else:
# TODO: Add error reporting for users with JS disabled?
return redirect(action="edit")
cat = fetch_row(Category, id)
if delete:
DBSession.delete(cat)
data = dict(success=True, id=cat.id, parent_options=unicode(category_form.c["parent_id"].display()))
else:
cat.name = kwargs["name"]
cat.slug = get_available_slug(Category, kwargs["slug"], cat)
if kwargs["parent_id"]:
parent = fetch_row(Category, kwargs["parent_id"])
if parent is not cat and cat not in parent.ancestors():
cat.parent = parent
else:
cat.parent = None
DBSession.add(cat)
DBSession.flush()
data = dict(
success=True,
id=cat.id,
name=cat.name,
slug=cat.slug,
parent_id=cat.parent_id,
parent_options=unicode(category_form.c["parent_id"].display()),
depth=cat.depth(),
row=unicode(
category_row_form.display(
action=url_for(id=cat.id), category=cat, depth=cat.depth(), first_child=True
)
),
)
if request.is_xhr:
return data
else:
redirect(action="index", id=None)
示例5: disassociate_video_id
# 需要导入模块: from mediacore.model.meta import DBSession [as 别名]
# 或者: from mediacore.model.meta.DBSession import delete [as 别名]
def disassociate_video_id(self, media_file, video_id):
# Create a meta_key for this MediaCore::MediaFile -> Panda::Video pairing.
# This is sort of a perversion of the meta table, but hey, it works.
meta_key = u"%s%s" % (META_VIDEO_PREFIX, video_id)
mfm = DBSession.query(MediaFilesMeta)\
.filter(MediaFilesMeta.media_files_id==media_file.id)\
.filter(MediaFilesMeta.key==meta_key)
for x in mfm:
DBSession.delete(x)
示例6: edit_file
# 需要导入模块: from mediacore.model.meta import DBSession [as 别名]
# 或者: from mediacore.model.meta.DBSession import delete [as 别名]
def edit_file(self, id, file_id, file_type=None, delete=None, **kwargs):
"""Save action for the :class:`~mediacore.forms.admin.media.EditFileForm`.
Changes or delets a :class:`~mediacore.model.media.MediaFile`.
:param id: Media ID
:type id: :class:`int`
:rtype: JSON dict
:returns:
success
bool
message
Error message, if unsuccessful
status_form
Rendered XHTML for the status form, updated to reflect the
changes made.
"""
media = fetch_row(Media, id)
data = dict(success=False)
try:
file = [file for file in media.files if file.id == int(file_id)][0]
except IndexError:
data['message'] = 'File no longer exists.'
if file_type:
file.type = file_type
DBSession.add(file)
data['success'] = True
elif delete:
file_path = file.file_path
DBSession.delete(file)
transaction.commit()
if file_path:
helpers.delete_files([file_path], 'media')
media = fetch_row(Media, id)
data['success'] = True
else:
data['message'] = 'No action to perform.'
if data['success']:
data['file_type'] = file.type
media.update_type()
media.update_status()
DBSession.add(media)
DBSession.flush()
# Return the rendered widget for injection
status_form_xhtml = unicode(update_status_form.display(
action=url_for(action='update_status'), media=media))
data['status_form'] = status_form_xhtml
return data
示例7: delete
# 需要导入模块: from mediacore.model.meta import DBSession [as 别名]
# 或者: from mediacore.model.meta.DBSession import delete [as 别名]
def delete(self, id, **kwargs):
"""Delete a user.
:param id: User ID.
:type id: ``int``
:returns: Redirect back to :meth:`index` after successful delete.
"""
user = fetch_row(User, id)
DBSession.delete(user)
if request.is_xhr:
return dict(success=True)
redirect(action='index', id=None)
示例8: delete
# 需要导入模块: from mediacore.model.meta import DBSession [as 别名]
# 或者: from mediacore.model.meta.DBSession import delete [as 别名]
def delete(self, id, **kwargs):
"""Delete a group.
:param id: Group ID.
:type id: ``int``
:returns: Redirect back to :meth:`index` after successful delete.
"""
group = fetch_row(Group, id)
DBSession.delete(group)
if request.is_xhr:
return dict(success=True)
redirect(action='index', id=None)
示例9: save
# 需要导入模块: from mediacore.model.meta import DBSession [as 别名]
# 或者: from mediacore.model.meta.DBSession import delete [as 别名]
def save(self,
id,
email_address,
display_name,
login_details,
delete=None,
**kwargs):
"""Save changes or create a new :class:`~mediacore.model.auth.User` instance.
:param id: User ID. If ``"new"`` a new user is created.
:type id: ``int`` or ``"new"``
:returns: Redirect back to :meth:`index` after successful save.
"""
user = fetch_row(User, id)
if delete:
DBSession.delete(user)
redirect(action='index', id=None)
user.display_name = display_name
user.email_address = email_address
user.user_name = login_details['user_name']
password = login_details['password']
if password is not None and password != '':
user.password = password
if login_details['group']:
group = fetch_row(Group, login_details['group'])
user.groups = [group]
else:
user.groups = []
DBSession.add(user)
# Check if we're changing the logged in user's own password
logged_in_user = request.environ['repoze.who.identity']['user']
if user.user_id == logged_in_user.user_id \
and password is not None and password != '':
DBSession.commit()
# repoze.who sees the Unauthorized response and clears the cookie,
# forcing a fresh login with the new password
raise webob.exc.HTTPUnauthorized().exception
redirect(action='index', id=None)
示例10: save
# 需要导入模块: from mediacore.model.meta import DBSession [as 别名]
# 或者: from mediacore.model.meta.DBSession import delete [as 别名]
def save(self, id, slug, title, author_name, author_email,
description, notes, details, podcast, tags, categories,
delete=None, **kwargs):
"""Save changes or create a new :class:`~mediacore.model.media.Media` instance.
Form handler the :meth:`edit` action and the
:class:`~mediacore.forms.admin.media.MediaForm`.
Redirects back to :meth:`edit` after successful editing
and :meth:`index` after successful deletion.
"""
media = fetch_row(Media, id)
if delete:
file_paths = helpers.thumb_paths(media)
for f in media.files:
file_paths.append(f.file_path)
# Remove the file from the session so that SQLAlchemy doesn't
# try to issue an UPDATE to set the MediaFile.media_id to None.
# The database ON DELETE CASCADE handles everything for us.
DBSession.expunge(f)
DBSession.delete(media)
transaction.commit()
helpers.delete_files(file_paths, 'media')
redirect(action='index', id=None)
media.slug = get_available_slug(Media, slug, media)
media.title = title
media.author = Author(author_name, author_email)
media.description = description
media.notes = notes
media.duration = details['duration'] # validator converts hh:mm:ss to secs
media.podcast_id = podcast
media.set_tags(tags)
media.set_categories(categories)
media.update_status()
DBSession.add(media)
DBSession.flush()
if id == 'new':
helpers.create_default_thumbs_for(media)
redirect(action='edit', id=media.id)
示例11: save
# 需要导入模块: from mediacore.model.meta import DBSession [as 别名]
# 或者: from mediacore.model.meta.DBSession import delete [as 别名]
def save(self, id, display_name, group_name, delete=None, **kwargs):
"""Save changes or create a new :class:`~mediacore.model.auth.Group` instance.
:param id: Group ID. If ``"new"`` a new group is created.
:type id: ``int`` or ``"new"``
:returns: Redirect back to :meth:`index` after successful save.
"""
group = fetch_row(Group, id)
if delete:
DBSession.delete(group)
redirect(action='index', id=None)
group.display_name = display_name
group.group_name = group_name
DBSession.add(group)
redirect(action='index', id=None)
示例12: save
# 需要导入模块: from mediacore.model.meta import DBSession [as 别名]
# 或者: from mediacore.model.meta.DBSession import delete [as 别名]
def save(
self, id, slug, title, subtitle, author_name, author_email, description, details, feed, delete=None, **kwargs
):
"""Save changes or create a new :class:`~mediacore.model.podcasts.Podcast` instance.
Form handler the :meth:`edit` action and the
:class:`~mediacore.forms.admin.podcasts.PodcastForm`.
Redirects back to :meth:`edit` after successful editing
and :meth:`index` after successful deletion.
"""
podcast = fetch_row(Podcast, id)
if delete:
file_paths = thumb_paths(podcast).values()
DBSession.delete(podcast)
DBSession.commit()
helpers.delete_files(file_paths, Podcast._thumb_dir)
redirect(action="index", id=None)
if not slug:
slug = title
if slug != podcast.slug:
podcast.slug = get_available_slug(Podcast, slug, podcast)
podcast.title = title
podcast.subtitle = subtitle
podcast.author = Author(author_name, author_email)
podcast.description = description
podcast.copyright = details["copyright"]
podcast.category = details["category"]
podcast.itunes_url = feed["itunes_url"]
podcast.feedburner_url = feed["feedburner_url"]
podcast.explicit = {"yes": True, "clean": False}.get(details["explicit"], None)
if id == "new":
DBSession.add(podcast)
DBSession.flush()
create_default_thumbs_for(podcast)
redirect(action="edit", id=podcast.id)
示例13: save
# 需要导入模块: from mediacore.model.meta import DBSession [as 别名]
# 或者: from mediacore.model.meta.DBSession import delete [as 别名]
def save(self, id, delete=False, **kwargs):
"""Save changes or create a tag.
See :class:`~mediacore.forms.admin.settings.tags.TagForm` for POST vars.
:param id: Tag ID
:rtype: JSON dict
:returns:
success
bool
"""
if tmpl_context.form_errors:
if request.is_xhr:
return dict(success=False, errors=tmpl_context.form_errors)
else:
# TODO: Add error reporting for users with JS disabled?
return redirect(action='edit')
tag = fetch_row(Tag, id)
if delete:
DBSession.delete(tag)
data = dict(success=True, id=tag.id)
else:
tag.name = kwargs['name']
tag.slug = get_available_slug(Tag, kwargs['slug'], tag)
DBSession.add(tag)
DBSession.flush()
data = dict(
success = True,
id = tag.id,
name = tag.name,
slug = tag.slug,
row = unicode(tag_row_form.display(tag=tag)),
)
if request.is_xhr:
return data
else:
redirect(action='index', id=None)
示例14: save
# 需要导入模块: from mediacore.model.meta import DBSession [as 别名]
# 或者: from mediacore.model.meta.DBSession import delete [as 别名]
def save(self, id, slug, title, subtitle, author_name, author_email,
description, details, feed, delete=None, **kwargs):
"""Save changes or create a new :class:`~mediacore.model.podcasts.Podcast` instance.
Form handler the :meth:`edit` action and the
:class:`~mediacore.forms.admin.podcasts.PodcastForm`.
Redirects back to :meth:`edit` after successful editing
and :meth:`index` after successful deletion.
"""
podcast = fetch_row(Podcast, id)
if delete:
DBSession.delete(podcast)
DBSession.commit()
delete_thumbs(podcast)
redirect(action='index', id=None)
if not slug:
slug = title
if slug != podcast.slug:
podcast.slug = get_available_slug(Podcast, slug, podcast)
podcast.title = title
podcast.subtitle = subtitle
podcast.author = Author(author_name, author_email)
podcast.description = description
podcast.copyright = details['copyright']
podcast.category = details['category']
podcast.itunes_url = feed['itunes_url']
podcast.feedburner_url = feed['feedburner_url']
podcast.explicit = {'yes': True, 'clean': False}.get(details['explicit'], None)
if id == 'new':
DBSession.add(podcast)
DBSession.flush()
create_default_thumbs_for(podcast)
redirect(action='edit', id=podcast.id)
示例15: save
# 需要导入模块: from mediacore.model.meta import DBSession [as 别名]
# 或者: from mediacore.model.meta.DBSession import delete [as 别名]
def save(self, id, email_address, display_name, login_details, delete=None, **kwargs):
"""Save changes or create a new :class:`~mediacore.model.auth.User` instance.
:param id: User ID. If ``"new"`` a new user is created.
:type id: ``int`` or ``"new"``
:returns: Redirect back to :meth:`index` after successful save.
"""
user = fetch_row(User, id)
if delete:
DBSession.delete(user)
redirect(action="index", id=None)
user.display_name = display_name
user.email_address = email_address
user.user_name = login_details["user_name"]
password = login_details["password"]
if password is not None and password != "":
user.password = password
if login_details["groups"]:
query = DBSession.query(Group).filter(Group.group_id.in_(login_details["groups"]))
user.groups = list(query.all())
else:
user.groups = []
DBSession.add(user)
# Check if we're changing the logged in user's own password
if user.id == request.perm.user.id and password is not None and password != "":
DBSession.commit()
# repoze.who sees the Unauthorized response and clears the cookie,
# forcing a fresh login with the new password
raise webob.exc.HTTPUnauthorized().exception
redirect(action="index", id=None)