Download this file

views.py    95 lines (79 with data), 4.2 kB

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# This Source Code Form of OSSEval is subject to the terms of the GNU AFFERO
# GENERAL PUBLIC LICENSE, v. 3.0. If a copy of the AGPL was not
# distributed with this file, You can obtain one at http://www.gnu.org/licenses/agpl.txt
#
# OSSeval is powered by the SOS Open Source AGPL edition.
# The AGPL requires that you do not remove the SOS Open Source attribution and copyright
# notices from the user interface (see section 5.d below).
# OSSEval Copyright 2014 Bitergium SLL
# SOS Open Source Copyright 2012 Roberto Galoppini
# Author: Davide Galletti
from pprint import pformat
from django.conf import settings
from django.contrib import messages
from django.core.urlresolvers import reverse
from django.http import HttpResponseRedirect, HttpResponse
from django.shortcuts import render, get_object_or_404
from analysis.models import Analysis, Instance
from IMDBMovieApp.models import IMDBMovie
import IMDBMovieApp
from imdb import IMDBProxy
from forms import SearchForm
def instance_list_html(request, analysis_id):
'''
Part of the required interface
'''
analysis = Analysis.objects.get(pk=analysis_id)
context = {'analysis': analysis}
return render(request, 'IMDBMovieApp/detail.html', context)
def search_html_form(request, analysis_id):
'''
Part of the required interface
'''
form = SearchForm(initial={'analysis_id': analysis_id}) # An unbound form
return render(request, 'IMDBMovieApp/search.html', {'form': form})
def search_html(request):
'''
Part of the required interface
'''
form = SearchForm(request.POST)
if form.is_valid(): # All validation rules pass
title = str(form.cleaned_data['title'])
analysis_id = str(form.cleaned_data['analysis_id'])
movies = []
movies += IMDBProxy.search(title)
return render(request, 'IMDBMovieApp/search_results.html', {'movies': movies, 'analysis_id': analysis_id})
def IMDBMovie_delete(request, movie_id, analysis_id):
movie = get_object_or_404(IMDBMovie, pk=movie_id)
i = movie.instance
movie.delete()
i.delete()
return HttpResponseRedirect(reverse('analysis_detail', args=(analysis_id,)))
def IMDBMovie_add(request):
analysis_id = int(request.POST.get("analysis_id", ""))
# I strip the movie name as it is used in jquery tabs;
# if names contain \n that would break jquery tabs rendering
# TODO: The above issue is still active; don't know what it triggers it though
title = request.POST.get("title", "").strip()
imdb_id = request.POST.get("imdb_id", "")
analysis = get_object_or_404(Analysis, pk=analysis_id)
instance=Instance.objects.create(name=title, name_for_search="", analysis=analysis)
osp=IMDBMovie.objects.create(title=title, instance=instance, imdb_id=imdb_id)
return HttpResponseRedirect(reverse('analysis_detail', args=(analysis_id,)))
def IMDBMovieFromResultList_detail(request):
movie_identifier = request.POST.get("movie_identifier", "")
id_forge = int(request.POST.get("id_forge", ""))
pf = IMDBMovie(movie_identifier=movie_identifier, forge_id=id_forge)
osprojectforge_info = pf.getProjectInfo()
osprojectforge_info_nice_print = pformat(osprojectforge_info)
return render(request, 'OSProject/osprojectforge_detail.html', {'osprojectforge_info': osprojectforge_info, 'osprojectforge_info_nice_print': osprojectforge_info_nice_print})
def IMDBMovie_detail(request, imdb_id):
imdb_movie = get_object_or_404(IMDBMovie, pk=imdb_id)
imdb_movie_info = imdb_movie.getProjectInfo()
imdb_movie_info_nice_print = pformat(imdb_movie_info)
return render(request, 'IMDBMovie/imdb_movie_detail.html', {'osprojectforge_info': imdb_movie_info, 'osprojectforge_info_nice_print': imdb_movie_info_nice_print})
def OSProject_detail(request, osproject_id):
osp = get_object_or_404(IMDBMovie, pk=osproject_id)
osproject_info = osp.getInstanceInfo()
osproject_info_nice_print = pformat(osproject_info)
return render(request, 'OSProject/osproject_detail.html', {'osprojectforge_info': osproject_info, 'osprojectforge_info_nice_print': osproject_info_nice_print})