From 4e8c837f733236d30b6201b4e6a74f05496adc35 Mon Sep 17 00:00:00 2001 From: Remy Date: Thu, 11 Aug 2011 00:42:27 -0700 Subject: [PATCH] Added Manage Artist section under Manage --- data/css/style.css | 1 + data/interfaces/default/artist.html | 2 +- data/interfaces/default/manage.html | 10 ++++ data/interfaces/default/manageartists.html | 69 ++++++++++++++++++++++ headphones/webserve.py | 28 +++++++++ 5 files changed, 109 insertions(+), 1 deletion(-) create mode 100644 data/interfaces/default/manageartists.html diff --git a/data/css/style.css b/data/css/style.css index 8b7803e7..552c9a5b 100755 --- a/data/css/style.css +++ b/data/css/style.css @@ -143,6 +143,7 @@ div#main { margin: 0; padding: 80px 0 0 0; } table#artist_table { background-color: white; width: 100%; padding: 20px; } +table#artist_table th#select { text-align: left; } table#artist_table th#name { text-align: left; min-width: 200px; } table#artist_table th#status { text-align: left; min-width: 50px; } table#artist_table th#album { text-align: left; min-width: 300px; } diff --git a/data/interfaces/default/artist.html b/data/interfaces/default/artist.html index 241df532..4b296eda 100644 --- a/data/interfaces/default/artist.html +++ b/data/interfaces/default/artist.html @@ -74,7 +74,7 @@ %> - + ${album['AlbumTitle']} ${album['ReleaseDate']} diff --git a/data/interfaces/default/manage.html b/data/interfaces/default/manage.html index 8b891317..3e6f7452 100644 --- a/data/interfaces/default/manage.html +++ b/data/interfaces/default/manage.html @@ -2,8 +2,18 @@ <%! import headphones %> +<%def name="headerIncludes()"> +
+ +
+ <%def name="body()"> +
+

+

Scan Music Library


Where do you keep your music?

diff --git a/data/interfaces/default/manageartists.html b/data/interfaces/default/manageartists.html new file mode 100644 index 00000000..d1762cb2 --- /dev/null +++ b/data/interfaces/default/manageartists.html @@ -0,0 +1,69 @@ +<%inherit file="base.html" /> + +<%def name="body()"> +
+

Manage Artists

+

+
+

+ + selected artists + +

+ + + + + + + + + + %for artist in artists: + <% + if artist['Status'] == 'Paused': + grade = 'X' + elif artist['Status'] == 'Loading': + grade = 'C' + else: + grade = 'Z' + %> + + + + + + %endfor + +
Artist NameStatus
${artist['ArtistName']}${artist['Status']}
+
+ + +<%def name="headIncludes()"> + + + +<%def name="javascriptIncludes()"> + + + \ No newline at end of file diff --git a/headphones/webserve.py b/headphones/webserve.py index 7be70060..c03c2790 100644 --- a/headphones/webserve.py +++ b/headphones/webserve.py @@ -183,6 +183,34 @@ class WebInterface(object): return serve_template(templatename="manage.html", title="Manage") manage.exposed = True + def manageArtists(self): + myDB = db.DBConnection() + artists = myDB.select('SELECT * from artists order by ArtistSortName COLLATE NOCASE') + return serve_template(templatename="manageartists.html", title="Manage Artists", artists=artists) + manageArtists.exposed = True + + def markArtists(self, action=None, **args): + myDB = db.DBConnection() + for ArtistID in args: + if action == 'delete': + myDB.action('DELETE from artists WHERE ArtistID=?', [ArtistID]) + myDB.action('DELETE from albums WHERE ArtistID=?', [ArtistID]) + myDB.action('DELETE from tracks WHERE ArtistID=?', [ArtistID]) + elif action == 'pause': + controlValueDict = {'ArtistID': ArtistID} + newValueDict = {'Status': 'Paused'} + myDB.upsert("artists", newValueDict, controlValueDict) + elif action == 'resume': + controlValueDict = {'ArtistID': ArtistID} + newValueDict = {'Status': 'Active'} + myDB.upsert("artists", newValueDict, controlValueDict) + else: + # These may and probably will collide - need to make a better way to queue musicbrainz queries + threading.Thread(target=importer.addArtisttoDB, args=[ArtistID]).start() + time.sleep(30) + raise cherrypy.HTTPRedirect("home") + markArtists.exposed = True + def importLastFM(self, username): headphones.LASTFM_USERNAME = username headphones.config_write()