[qcineoob] movies in common implemented in person page

This commit is contained in:
Julien Veyssier 2014-11-26 13:16:09 +01:00 committed by Romain Bignon
commit 1968bc6c95
3 changed files with 92 additions and 0 deletions

View file

@ -102,6 +102,42 @@ class Result(QFrame):
self.process.do('iter_movie_persons', id, role, backends=backend_name, caps=CapCinema)
self.parent.ui.stopButton.show()
def moviesInCommonAction(self, backend_name, id1, id2):
self.ui.stackedWidget.setCurrentWidget(self.ui.list_page)
for mini in self.minis:
self.ui.list_content.layout().removeWidget(mini)
mini.hide()
mini.deleteLater()
self.minis = []
self.parent.ui.searchEdit.setEnabled(False)
QApplication.setOverrideCursor(Qt.WaitCursor)
for a_backend in self.weboob.iter_backends():
if (backend_name and a_backend.name == backend_name):
backend = a_backend
person1 = backend.get_person(id1)
person2 = backend.get_person(id2)
lid1 = []
for p in backend.iter_person_movies_ids(id1):
lid1.append(p)
lid2 = []
for p in backend.iter_person_movies_ids(id2):
lid2.append(p)
inter = list(set(lid1) & set(lid2))
for common in inter:
movie = backend.get_movie(common)
movie.backend = backend_name
role1 = movie.get_role_by_person_id(person1.id)
role2 = movie.get_role_by_person_id(person2.id)
movie.short_description = '%s as %s ; %s as %s'%(person1.name, role1, person2.name, role2)
self.addMovie(movie)
self.processFinished()
def personsInCommonAction(self, backend_name, id1, id2):
self.ui.stackedWidget.setCurrentWidget(self.ui.list_page)
for mini in self.minis:

View file

@ -35,6 +35,7 @@ class Person(QFrame):
self.connect(self.ui.filmographyButton, SIGNAL("clicked()"), self.filmography)
self.connect(self.ui.biographyButton, SIGNAL("clicked()"), self.biography)
self.connect(self.ui.moviesInCommonButton, SIGNAL("clicked()"), self.moviesInCommon)
self.person = person
self.backend = backend
@ -87,3 +88,12 @@ class Person(QFrame):
self.ui.biographyLabel.setText('Full biography:')
self.ui.biographyButton.hide()
QApplication.restoreOverrideCursor()
def moviesInCommon(self):
my_id = self.person.id
my_name = self.person.name
other_id = unicode(self.ui.moviesInCommonEdit.text()).split('@')[0]
other_person = self.backend.get_person(other_id)
other_name = other_person.name
desc = 'Movies in common %s, %s'%(my_name, other_name)
self.parent.doAction(desc, self.parent.moviesInCommonAction, [self.backend.name, my_id, other_id])

View file

@ -72,6 +72,52 @@ filmography</string>
</layout>
</widget>
</item>
<item>
<widget class="QFrame" name="frame_15">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<widget class="QPushButton" name="moviesInCommonButton">
<property name="text">
<string>Search movies in common with</string>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_15">
<item>
<widget class="QLabel" name="label_12">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Person ID :</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="moviesInCommonEdit">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</item>