Skip to content

Commit

Permalink
Use Generic ListView
Browse files Browse the repository at this point in the history
Closes #87
  • Loading branch information
shrikrishna committed Apr 19, 2018
1 parent 9261c9f commit b4505bb
Show file tree
Hide file tree
Showing 23 changed files with 474 additions and 23 deletions.
1 change: 1 addition & 0 deletions community/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
'gsoc',
'data',
'openhub',
'model',
'django.contrib.contenttypes',
'django.contrib.staticfiles',
'django_distill',
Expand Down
116 changes: 113 additions & 3 deletions community/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,26 @@
from data.views import index as contributors_index
from inactive_issues.inactive_issues_scraper import inactive_issues_json
from openhub.views import index as openhub_index
from model.views import index as model_index
from openhub.models import (
PortfolioProject,
OutsideCommitter,
AffiliatedCommitter,
OutsideProject,
Organization,
)
from model.views import (
PortfolioProjectListView,
PortfolioProjectDetailView,
AffiliatedCommitterListView,
AffiliatedCommitterDetailView,
OrganizationListView,
OrganizationDetailView,
OutsideProjectListView,
OutsideProjectDetailView,
OutsideCommitterListView,
OutsideCommitterDetailView,
)


def get_index():
Expand All @@ -24,8 +44,32 @@ def get_index():
return None


urlpatterns = [
def get_all_portfolioprojects():
for portfolioproject in PortfolioProject.objects.all():
yield {'pk': portfolioproject.id}


def get_all_outsidecommitters():
for outsidecommitter in OutsideCommitter.objects.all():
yield {'pk': outsidecommitter.id}


def get_all_outsideprojects():
for outsideproject in OutsideProject.objects.all():
yield {'pk': outsideproject.id}


def get_all_affiliatedcommitters():
for affiliatedcommitter in AffiliatedCommitter.objects.all():
yield {'pk': affiliatedcommitter.id}


def get_organization():
for organization in Organization.objects.all():
yield {'pk': organization.id}


urlpatterns = [
distill_url(
r'^$', TemplateView.as_view(template_name='index.html'),
name='index',
Expand Down Expand Up @@ -75,7 +119,7 @@ def get_index():
distill_file='log/index.html',
),
distill_url(
r'^contributors/$', contributors_index,
r'contributors/$', contributors_index,
name='community-data',
distill_func=get_index,
distill_file='contributors/index.html',
Expand All @@ -87,9 +131,75 @@ def get_index():
distill_file='static/inactive-issues.json',
),
distill_url(
r'^openhub/$', openhub_index,
r'openhub/$', openhub_index,
name='community-openhub',
distill_func=get_index,
distill_file='openhub/index.html',
),
distill_url(
r'model/$', model_index,
name='community-model',
distill_func=get_index,
distill_file='model/index.html',
),
distill_url(
r'model/openhub/outside_committers/$',
OutsideCommitterListView.as_view(),
name='outsidecommitters',
distill_func=get_index,
),
distill_url(
r'model/openhub/outside_committer/(?P<pk>\d+)/$',
OutsideCommitterDetailView.as_view(),
name='outsidecommitter-detail',
distill_func=get_all_outsidecommitters,
),
distill_url(
r'model/openhub/outside_projects/$',
OutsideProjectListView.as_view(),
name='outsideprojects',
distill_func=get_index,
),
distill_url(
r'model/openhub/outside_project/(?P<pk>\d+)/$',
OutsideProjectDetailView.as_view(),
name='outsideproject-detail',
distill_func=get_all_outsideprojects,
),
distill_url(
r'model/openhub/affiliated_committers/$',
AffiliatedCommitterListView.as_view(),
name='affiliatedcommitters',
distill_func=get_index,
),
distill_url(
r'model/openhub/affiliated_committer/(?P<pk>\d+)/$',
AffiliatedCommitterDetailView.as_view(),
name='affiliatedcommitter-detail',
distill_func=get_all_affiliatedcommitters,
),
distill_url(
r'model/openhub/portfolio_projects/$',
PortfolioProjectListView.as_view(),
name='portfolioprojects',
distill_func=get_index,
),
distill_url(
r'model/openhub/portfolio_project/(?P<pk>\d+)/$',
PortfolioProjectDetailView.as_view(),
name='portfolioproject-detail',
distill_func=get_all_portfolioprojects,
),
distill_url(
r'model/openhub/organization/$',
OrganizationListView.as_view(),
name='organization',
distill_func=get_index,
),
distill_url(
r'model/openhub/org/(?P<pk>\d+)/$',
OrganizationDetailView.as_view(),
name='org-detail',
distill_func=get_organization,
),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Empty file added model/__init__.py
Empty file.
5 changes: 5 additions & 0 deletions model/apps.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
from django.apps import AppConfig


class ModelConfig(AppConfig):
name = 'model'
Empty file added model/migrations/__init__.py
Empty file.
7 changes: 7 additions & 0 deletions model/urls.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from django.conf.urls import url

from . import views

urlpatterns = [
url(r'^$', views.index, name='index'),
]
76 changes: 76 additions & 0 deletions model/views.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
from django.shortcuts import render
from django.views import generic

from openhub.models import (
PortfolioProject,
OutsideProject,
OutsideCommitter,
AffiliatedCommitter,
Organization,
)


def index(request):
args = {
'portfolioprojects': 'portfolio_projects',
'outsidecommitters': 'outside_committers',
'affiliatedcommitters': 'affiliated_committers',
'outsideprojects': 'outside_projects',
'organization': 'organization',
}
return render(request, 'model.html', args)


class PortfolioProjectListView(generic.ListView):
model = PortfolioProject
context_object_name = 'portfolio_project_list'
template_name = 'model/templates/portfolio_project_list.html'


class PortfolioProjectDetailView(generic.DetailView):
model = PortfolioProject
template_name = 'model/templates/portfolio_project_detail.html'


class OutsideProjectListView(generic.ListView):
model = OutsideProject
context_object_name = 'outside_project_list'
template_name = 'model/templates/outside_project_list.html'


class OutsideProjectDetailView(generic.DetailView):
model = OutsideProject
template_name = 'model/templates/outside_project_detail.html'


class OutsideCommitterListView(generic.ListView):
model = OutsideCommitter
context_object_name = 'outside_committer_list'
template_name = 'model/templates/outside_committer_list.html'


class OutsideCommitterDetailView(generic.DetailView):
model = OutsideCommitter
template_name = 'model/templates/outside_committer_detail.html'


class AffiliatedCommitterListView(generic.ListView):
model = AffiliatedCommitter
context_object_name = 'affiliated_committer_list'
template_name = 'model/templates/affiliated_committer_list.html'


class AffiliatedCommitterDetailView(generic.DetailView):
model = AffiliatedCommitter
template_name = 'model/templates/affiliated_committer_detail.html'


class OrganizationListView(generic.ListView):
model = Organization
context_object_name = 'organization_list'
template_name = 'model/templates/organization_list.html'


class OrganizationDetailView(generic.DetailView):
model = Organization
template_name = 'model/templates/organization_detail.html'
19 changes: 19 additions & 0 deletions openhub/models.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from django.db import models
from django.urls import reverse


class OpenhubOrganization(models.Model):
Expand Down Expand Up @@ -53,6 +54,12 @@ class PortfolioProject(models.Model):
def __str__(self):
return self.name

def get_absolute_url(self):
"""
Returns the url to access a particular portfolio project instance.
"""
return reverse('portfolioproject-detail', args=[str(self.id)])


class OutsideProject(models.Model):

Expand All @@ -68,6 +75,9 @@ class OutsideProject(models.Model):
def __str__(self):
return self.name

def get_absolute_url(self):
return reverse('outsideproject-detail', args=[str(self.id)])


class ContributionsToPortfolioProject(models.Model):

Expand All @@ -92,6 +102,9 @@ class OutsideCommitter(models.Model):
def __str__(self):
return self.name

def get_absolute_url(self):
return reverse('outsidecommitter-detail', args=[str(self.id)])


class MostCommit(models.Model):

Expand Down Expand Up @@ -125,6 +138,9 @@ class AffiliatedCommitter(models.Model):
def __str__(self):
return self.org

def get_absolute_url(self):
return reverse('affiliatedcommitter-detail', args=[str(self.id)])


class InfographicDetail(models.Model):

Expand Down Expand Up @@ -166,3 +182,6 @@ class Organization(models.Model):

def __str__(self):
return self.name

def get_absolute_url(self):
return reverse('org-detail', args=[str(self.id)])
14 changes: 7 additions & 7 deletions templates/contributors.html
Original file line number Diff line number Diff line change
Expand Up @@ -17,19 +17,19 @@ <h1>Details of all the contributors</h1>
<div class="col-sm-6 col-md-4">
<div class="thumbnail">
<div class="caption">
<p>login: {{contributor.login}}</p>
<p>name: {{contributor.name}}</p>
<p>bio: {{contributor.bio}}</p>
<p>num_commits: {{contributor.num_commits}}</p>
<p>reviews: {{contributor.reviews}}</p>
<p>issues_opened: {{contributor.issues_opened}}</p>
<p>login: {{ contributor.login }}</p>
<p>name: {{ contributor.name }}</p>
<p>bio: {{ contributor.bio }}</p>
<p>num_commits: {{ contributor.num_commits }}</p>
<p>reviews: {{ contributor.reviews }}</p>
<p>issues_opened: {{ contributor.issues_opened }}</p>
</div>
</div>
</div>
</div>
</div>
<hr>
{% endfor %}
{% endfor %}{# for contributor in contributors #}
</ul>
</body>
</html>
1 change: 1 addition & 0 deletions templates/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
<li><a title="List of all the issues on organization's main repository on which assignee has not shown any activity for more than 2 months."
href="/static/inactive-issues.json">Inactive Issues</a>
<li><a href="/openhub/">OpenHub Data</a>
<li><a href="/model/">Visit imported data</a>
</ul>
</body>
</html>
34 changes: 34 additions & 0 deletions templates/model.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<title>Visit your models</title>
</head>
<body>
<h1>Visit Your Models and its Imported data</h1>
<hr>
<div class="container">
<h2>openhub app models</h2>
<li>
<a href="{% url 'portfolioprojects' %}">Portfolio Projects</a><br>
</li>
<li>
<a href="{% url 'outsideprojects' %}">Outside Projects</a><br>
</li>
<li>
<a href="{% url 'affiliatedcommitters' %}">Affiliated Committers</a><br>
</li>
<li>
<a href="{% url 'outsidecommitters' %}">Outside Committers</a><br>
</li>
<li>
<a href="{% url 'organization' %}">Organizations</a><br>
</li>
</div>
<hr>
</body>
</html>
15 changes: 15 additions & 0 deletions templates/model/templates/affiliated_committer_detail.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{% extends "model/templates/base.html" %}
{% block title %}
<title>{{ affiliatedcommitter.name }}</title>
{% endblock %}
{% block content %}
<h1>Details of: {{ affiliatedcommitter.name }}</h1>
<p><strong>name:</strong>{{ affiliatedcommitter.name }}</p>
<p><strong>org:</strong> {{ affiliatedcommitter.org }}</p>
<p><strong>kudos:</strong> {{ affiliatedcommitter.kudos }}</p>
<p><strong>level:</strong> {{ affiliatedcommitter.level }}</p>
<p><strong>most commits project:</strong>{{ affiliatedcommitter.most_commits.project }}</p>
<p><strong>most commits date:</strong>{{ affiliatedcommitter.most_commits.date }}</p>
<p><strong>most recent commits project:</strong>{{ affiliatedcommitter.most_recent_commit.project }}</p>
<p><strong>most recent commits data:</strong>{{ affiliatedcommitter.most_recent_commit.date }}</p>
{% endblock %}
Loading

0 comments on commit b4505bb

Please sign in to comment.