diff --git a/src/account/views/register.py b/src/account/views/register.py index 6a2c816..eaca4c9 100644 --- a/src/account/views/register.py +++ b/src/account/views/register.py @@ -16,10 +16,18 @@ def register_view(request): return redirect('register') data = raw_data.json() + if 'Maximum usage' in data['errorMessage']: + messages.info(request, f"IMDB API: {data['errorMessage']}") + return redirect('register') + if data['errorMessage'] == 'Invalid API Key': form.add_error('imdb_api_key', 'Invalid API Key') return render(request, 'register.html', context={"form": form}) + if data['errorMessage']: + messages.info(request, f"IMDB API: {data['errorMessage']}") + return redirect('register') + form.save() username = form.cleaned_data.get('username') password = form.cleaned_data.get('password1') diff --git a/src/config/settings/development.py b/src/config/settings/development.py index 8ed6d63..3d5dffb 100644 --- a/src/config/settings/development.py +++ b/src/config/settings/development.py @@ -3,7 +3,7 @@ from .base import * DEBUG = True -ALLOWED_HOSTS = [] +ALLOWED_HOSTS = ['*'] DATABASES = { 'default': { diff --git a/src/series/templates/homepage.html b/src/series/templates/homepage.html index ef3a811..67427b4 100644 --- a/src/series/templates/homepage.html +++ b/src/series/templates/homepage.html @@ -1,4 +1,5 @@ {% extends 'base.html' %} +{% load static %} {% block title %} Home Page {% endblock title %} @@ -6,4 +7,66 @@ {% include 'components/message.html' %} + + + + + + + + + + {% for s in series %} + + + + + + {% endfor %} + +
TitleSeason, EpisodeShow
+ + {{s.title}} + +
+ + + + + + + + +
{{s.last_season}} - {{s.last_episode}} + {% if s.show %} + + {% else %} + + {% endif %} +
+ + + {% endblock content %} \ No newline at end of file diff --git a/src/series/views/add_series.py b/src/series/views/add_series.py index 0d231fa..8c50ab2 100644 --- a/src/series/views/add_series.py +++ b/src/series/views/add_series.py @@ -28,6 +28,10 @@ class AddSeriesView(LoginRequiredMixin, CreateView): return redirect('add-series') data = raw_data.json() + if 'Maximum usage' in data['errorMessage']: + messages.info(self.request, f"IMDB API: {data['errorMessage']}") + return redirect('add-series') + if data['errorMessage']: form.add_error('imdb_id', 'ID is not correct.') return self.form_invalid(form) @@ -41,8 +45,13 @@ class AddSeriesView(LoginRequiredMixin, CreateView): form.add_error('last_season', 'The season number is not correct.') return self.form_invalid(form) - data = get(f"https://imdb-api.com/en/API/SeasonEpisodes/{series.user.imdb_api_key}/{series.imdb_id}/{series.last_season}").json() - episodes_count = len(data['episodes']) + raw_data = get(f"https://imdb-api.com/en/API/SeasonEpisodes/{series.user.imdb_api_key}/{series.imdb_id}/{series.last_season}") + if raw_data.status_code != 200: + messages.info(self.request, 'TV Series can not added. Please try again.') + return redirect('add-series') + episodes = raw_data.json()['episodes'] + + episodes_count = len(episodes) if series.last_episode > episodes_count: form.add_error('last_episode', 'The episode number is not correct.') return self.form_invalid(form) diff --git a/src/series/views/homepage.py b/src/series/views/homepage.py index aaa9575..ece98ea 100644 --- a/src/series/views/homepage.py +++ b/src/series/views/homepage.py @@ -1,7 +1,13 @@ from django.shortcuts import render from django.contrib.auth.decorators import login_required +from django.core.paginator import Paginator +from account.models import User @login_required(login_url='/account/login') def homepage_view(request): - return render(request, 'homepage.html') \ No newline at end of file + series = User.objects.get(id=request.user.id).series.all().order_by('-id') + page = request.GET.get('page') + paginator = Paginator(series, 5) + + return render(request, 'homepage.html', context={'series': paginator.get_page(page)}) \ No newline at end of file diff --git a/src/series/views/update_series.py b/src/series/views/update_series.py index 40ef7c7..127ef8b 100644 --- a/src/series/views/update_series.py +++ b/src/series/views/update_series.py @@ -31,6 +31,10 @@ class UpdateSeriesView(LoginRequiredMixin, UpdateView): return redirect('add-series') data = raw_data.json() + if 'Maximum usage' in data['errorMessage']: + messages.info(self.request, f"IMDB Key: {data['errorMessage']}") + return redirect('add-series') + if data['errorMessage']: form.add_error('imdb_id', 'ID is not correct.') return self.form_invalid(form) @@ -44,8 +48,13 @@ class UpdateSeriesView(LoginRequiredMixin, UpdateView): form.add_error('last_season', 'The season number is not correct.') return self.form_invalid(form) - data = get(f"https://imdb-api.com/en/API/SeasonEpisodes/{series.user.imdb_api_key}/{series.imdb_id}/{series.last_season}").json() - episodes_count = len(data['episodes']) + raw_data = get(f"https://imdb-api.com/en/API/SeasonEpisodes/{series.user.imdb_api_key}/{series.imdb_id}/{series.last_season}") + if raw_data.status_code != 200: + messages.info(self.request, 'TV Series can not added. Please try again.') + return redirect('add-series') + episodes = raw_data.json()['episodes'] + + episodes_count = len(episodes) if series.last_episode > episodes_count: form.add_error('last_episode', 'The episode number is not correct.') return self.form_invalid(form) diff --git a/src/static/css/footer.css b/src/static/css/footer.css index f5fa035..54eed26 100644 --- a/src/static/css/footer.css +++ b/src/static/css/footer.css @@ -13,23 +13,44 @@ footer { } .div-right { - margin-top: 1rem; + margin-top: 0.45rem; margin-right: 1.5rem; } footer div span a { color: inherit; text-decoration: none; + font-size: 1rem; } -.contact-links{ +.contact-links { border: 0; - padding-top: 4px; - padding-bottom: 4px; - padding-left: 8px; - padding-right: 8px; } -.contact-icons{ - font-size: 23px; +.contact-img { + width: 33px; + height: 33px; +} + +@media only screen and (max-width: 520px) { + .div-left { + margin-top: 1.35rem; + margin-left: 0.6rem; + } + + .div-right { + margin-top: 0.65rem; + margin-right: 0.2rem; + } + + footer div span a { + color: inherit; + text-decoration: none; + font-size: 0.8rem; + } + + .contact-img { + width: 23px; + height: 23px; + } } \ No newline at end of file diff --git a/src/static/css/navbar.css b/src/static/css/navbar.css new file mode 100644 index 0000000..6d8cebc --- /dev/null +++ b/src/static/css/navbar.css @@ -0,0 +1,21 @@ +.logo { + width: 48px; + height: 50px; +} + +.logo-link { + padding-top: 2px; + padding-bottom: 2px; +} + +@media only screen and (max-width: 510px) { + .logo { + width: 44px; + height: 44px; + } + + .logo-link { + padding-top: 0; + padding-bottom: 0; + } +} \ No newline at end of file diff --git a/src/static/icons/edit.png b/src/static/icons/edit.png new file mode 100644 index 0000000..97982b9 Binary files /dev/null and b/src/static/icons/edit.png differ diff --git a/src/static/icons/email.png b/src/static/icons/email.png new file mode 100644 index 0000000..4b0c230 Binary files /dev/null and b/src/static/icons/email.png differ diff --git a/src/static/icons/false-check-button.png b/src/static/icons/false-check-button.png new file mode 100644 index 0000000..2b4c356 Binary files /dev/null and b/src/static/icons/false-check-button.png differ diff --git a/src/static/icons/github.png b/src/static/icons/github.png new file mode 100644 index 0000000..3cde44d Binary files /dev/null and b/src/static/icons/github.png differ diff --git a/src/static/icons/linkedin.png b/src/static/icons/linkedin.png new file mode 100644 index 0000000..f641c73 Binary files /dev/null and b/src/static/icons/linkedin.png differ diff --git a/src/static/icons/trash.png b/src/static/icons/trash.png new file mode 100644 index 0000000..0d30fb0 Binary files /dev/null and b/src/static/icons/trash.png differ diff --git a/src/static/icons/true-check-button.png b/src/static/icons/true-check-button.png new file mode 100644 index 0000000..7ad4f8e Binary files /dev/null and b/src/static/icons/true-check-button.png differ diff --git a/src/templates/base.html b/src/templates/base.html index 0bad37f..16e5d8f 100644 --- a/src/templates/base.html +++ b/src/templates/base.html @@ -10,7 +10,6 @@ - {% block title %}{% endblock title %} diff --git a/src/templates/components/footer.html b/src/templates/components/footer.html index 4969b9f..38f55a1 100644 --- a/src/templates/components/footer.html +++ b/src/templates/components/footer.html @@ -11,14 +11,14 @@
- - + + - - + + - - + +
\ No newline at end of file diff --git a/src/templates/components/navbar.html b/src/templates/components/navbar.html index d2b15f4..1be78ee 100644 --- a/src/templates/components/navbar.html +++ b/src/templates/components/navbar.html @@ -1,10 +1,12 @@ {% load static %} + +