Browse Source

Only delete movie from selected list. fixes #176

tags/build/2.0.0.pre1
Ruud 13 years ago
parent
commit
353916be2d
  1. 34
      couchpotato/core/plugins/movie/main.py
  2. 3
      couchpotato/core/plugins/movie/static/list.js
  3. 3
      couchpotato/core/plugins/movie/static/movie.js
  4. 3
      couchpotato/static/scripts/page/wanted.js

34
couchpotato/core/plugins/movie/main.py

@ -79,6 +79,7 @@ class MoviePlugin(Plugin):
'desc': 'Delete a movie from the wanted list',
'params': {
'id': {'desc': 'Movie ID(s) you want to delete.', 'type': 'int (comma separated)'},
'delete_from': {'desc': 'Delete movie from this page', 'type': 'string: all (default), wanted, manage'},
}
})
@ -358,20 +359,45 @@ class MoviePlugin(Plugin):
ids = [x.strip() for x in params.get('id').split(',')]
for movie_id in ids:
self.delete(movie_id)
self.delete(movie_id, delete_from = params.get('delete_from', 'all'))
return jsonified({
'success': True,
})
def delete(self, movie_id):
def delete(self, movie_id, delete_from = None):
db = get_session()
movie = db.query(Movie).filter_by(id = movie_id).first()
if movie:
db.delete(movie)
db.commit()
if delete_from == 'all':
db.delete(movie)
db.commit()
else:
done_status = fireEvent('status.get', 'done', single = True)
total_releases = len(movie.releases)
total_deleted = 0
new_movie_status = None
for release in movie.releases:
if delete_from == 'wanted' and release.status_id != done_status.get('id'):
db.delete(release)
total_deleted += 1
new_movie_status = 'done'
elif delete_from == 'manage' and release.status_id == done_status.get('id'):
db.delete(release)
total_deleted += 1
new_movie_status = 'active'
db.commit()
if total_releases == total_deleted:
db.delete(movie)
db.commit()
elif new_movie_status:
new_status = fireEvent('status.get', new_movie_status, single = True)
movie.status_id = new_status.get('id')
db.commit()
return True

3
couchpotato/core/plugins/movie/static/list.js

@ -253,7 +253,8 @@ var MovieList = new Class({
(e).preventDefault();
Api.request('movie.delete', {
'data': {
'id': ids.join(',')
'id': ids.join(','),
'delete_from': self.options.identifier
},
'onSuccess': function(){
qObj.close();

3
couchpotato/core/plugins/movie/static/movie.js

@ -4,11 +4,12 @@ var Movie = new Class({
action: {},
initialize: function(self, options, data){
initialize: function(list, options, data){
var self = this;
self.data = data;
self.view = options.view || 'thumbs';
self.list = list;
self.profile = Quality.getProfile(data.profile_id) || {};
self.parent(self, options);

3
couchpotato/static/scripts/page/wanted.js

@ -206,7 +206,8 @@ window.addEvent('domready', function(){
function(){
Api.request('movie.delete', {
'data': {
'id': self.movie.get('id')
'id': self.movie.get('id'),
'delete_from': self.movie.list.options.identifier
},
'onComplete': function(){
movie.set('tween', {

Loading…
Cancel
Save