def save(self, id, delete, category='topics', **kwargs): """Save changes or create a topic or tag. See :class:`~mediacore.forms.categories.EditCategoryForm` for POST vars. :param id: Topic or tag ID :param category: ``topics`` or ``tags`` :param delete: If true the category is deleted rather than saved. :type delete: bool :rtype: JSON dict :returns: success bool category ``topics`` or ``tags`` """ model = self.select_model(category) item = fetch_row(model, id) if delete: DBSession.delete(item) item = None else: item.name = kwargs['name'] item.slug = get_available_slug(model, kwargs['slug'], item) DBSession.add(item) if request.is_xhr: return dict(success=True, category=item) else: redirect(action='index', category=category)
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)
def delete(self, id, **kwargs): """Delete a StorageEngine. :param id: Storage ID. :type id: ``int`` :returns: Redirect back to :meth:`index` after successful delete. """ engine = fetch_row(StorageEngine, id) files = engine.files for f in files: engine.delete(f.unique_id) DBSession.delete(engine) redirect(action='index', id=None)
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)
def delete(self, id, **kwargs): """Delete a StorageEngine. :param id: Storage ID. :type id: ``int`` :returns: Redirect back to :meth:`index` after successful delete. """ engine = fetch_row(StorageEngine, id) files = engine.files for f in files: engine.delete(f.unique_id) DBSession.delete(engine) redirect(action='index', id=None)
def delete(self, id, **kwargs): """Delete a PlayerPref. After deleting the PlayerPref, cleans up the players table, ensuring that each Player class is represented--if the deleted PlayerPref is the last example of that Player class, creates a new disabled PlayerPref for that Player class with the default settings. :param id: Player ID. :type id: ``int`` :returns: Redirect back to :meth:`index` after successful delete. """ player = fetch_row(PlayerPrefs, id) DBSession.delete(player) DBSession.flush() cleanup_players_table() redirect(action='index', id=None)
def delete(self, id, **kwargs): """Delete a PlayerPref. After deleting the PlayerPref, cleans up the players table, ensuring that each Player class is represented--if the deleted PlayerPref is the last example of that Player class, creates a new disabled PlayerPref for that Player class with the default settings. :param id: Player ID. :type id: ``int`` :returns: Redirect back to :meth:`index` after successful delete. """ player = fetch_row(PlayerPrefs, id) DBSession.delete(player) DBSession.flush() cleanup_players_table() redirect(action='index', id=None)
def edit_file(self, id, file_id, player_enabled, feed_enabled, toggle_feed, toggle_player, delete, **kwargs): """Save action for the :class:`~mediacore.forms.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, incl_trash=True) data = {} # try: try: file = [file for file in media.files if file.id == file_id][0] except IndexError: raise Exception, 'File does not exist.' if toggle_player: data['field'] = 'player_enabled' file.enable_player = data['value'] = not player_enabled DBSession.add(file) elif toggle_feed: data['field'] = 'feed_enabled' file.enable_feed = data['value'] = not feed_enabled # Raises an exception if it is the only feed enabled file for # an already published podcast episode. DBSession.add(file) elif delete: data['field'] = 'delete' DBSession.delete(file) media.files.remove(file) else: raise Exception, 'No action to perform.' data['success'] = True media.update_type() media.update_status() DBSession.add(media) # except Exception, e: # data['success'] = False # data['message'] = e.message if request.is_xhr: # 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 else: DBSession.flush() redirect(action='edit')