diff options
Diffstat (limited to 'website')
-rw-r--r-- | website/admin.py | 30 | ||||
-rw-r--r-- | website/models.py | 165 | ||||
-rw-r--r-- | website/templates/website/page.html | 2 | ||||
-rw-r--r-- | website/urls.py | 10 | ||||
-rw-r--r-- | website/views.py | 118 |
5 files changed, 172 insertions, 153 deletions
diff --git a/website/admin.py b/website/admin.py index c5af339..d473c12 100644 --- a/website/admin.py +++ b/website/admin.py @@ -5,33 +5,33 @@ from nested_inline.admin import NestedModelAdmin, NestedStackedInline, NestedTab from website.models import Nav, SubNav, Page, Link, LinkBox, TextBox, Block class SubNavInline(admin.TabularInline): - model = SubNav - extra = 0 + model = SubNav + extra = 0 class NavAdmin(admin.ModelAdmin): - list_display = ('nav_name', 'link', 'visible') - inlines = [SubNavInline] + list_display = ('nav_name', 'link', 'visible') + inlines = [SubNavInline] class PageAdmin(admin.ModelAdmin): - list_display = ('heading', 'permalink', 'visible') + list_display = ('heading', 'permalink', 'visible') class LinkInline(NestedTabularInline): - model = Link - extra = 0 + model = Link + extra = 0 class LinkBoxInline(NestedStackedInline): - model = LinkBox - inlines = [LinkInline] - extra = 0 + model = LinkBox + inlines = [LinkInline] + extra = 0 class TextBoxInline(NestedStackedInline): - model = TextBox - extra = 0 + model = TextBox + extra = 0 class BlockAdmin(NestedModelAdmin): - model = Block - inlines = [LinkBoxInline, TextBoxInline] + model = Block + inlines = [LinkBoxInline, TextBoxInline] admin.site.register(Nav, NavAdmin) admin.site.register(Page, PageAdmin) -admin.site.register(Block, BlockAdmin)
\ No newline at end of file +admin.site.register(Block, BlockAdmin) diff --git a/website/models.py b/website/models.py index f91dbeb..1c6677d 100644 --- a/website/models.py +++ b/website/models.py @@ -1,72 +1,73 @@ from django.db import models +from datetime import date class Nav(models.Model): - """Main navigation links""" - nav_name = models.CharField(max_length=200) - link = models.CharField(max_length=200) - position = models.IntegerField() - visible = models.BooleanField() + """Main navigation links""" + nav_name = models.CharField(max_length=200) + link = models.CharField(max_length=200) + position = models.IntegerField() + visible = models.BooleanField() - def __unicode__(self): - return self.nav_name + def __unicode__(self): + return self.nav_name class SubNav(models.Model): - """Navigation links for pages""" - nav = models.ForeignKey(Nav) - subnav_name = models.CharField(max_length=200) - link = models.CharField(max_length=200) - position = models.IntegerField() - visible = models.BooleanField() + """Navigation links for pages""" + nav = models.ForeignKey(Nav, on_delete=models.CASCADE) + subnav_name = models.CharField(max_length=200) + link = models.CharField(max_length=200) + position = models.IntegerField() + visible = models.BooleanField() - def __unicode__(self): - return self.subnav_name + def __unicode__(self): + return self.subnav_name class Page(models.Model): - """Page that will be dispatched""" - permalink = models.CharField(max_length=200) - heading = models.CharField(max_length = 500) - content = models.TextField() - visible = models.BooleanField() - pub_date = models.DateTimeField('date published', auto_now_add=True) + """Page that will be dispatched""" + permalink = models.CharField(max_length=200) + heading = models.CharField(max_length = 500) + content = models.TextField() + visible = models.BooleanField() + pub_date = models.DateTimeField('date published', auto_now_add=True) - def __unicode__(self): - return self.heading + def __unicode__(self): + return self.heading class Block(models.Model): - block_name = models.CharField(max_length=200) - visible = models.BooleanField() + block_name = models.CharField(max_length=200) + visible = models.BooleanField() - def __unicode__(self): - return self.block_name + def __unicode__(self): + return self.block_name class LinkBox(models.Model): - block = models.ForeignKey(Block) - linkbox_name = models.CharField(max_length=200) - position = models.IntegerField() - visible = models.BooleanField() + block = models.ForeignKey(Block, on_delete=models.CASCADE) + linkbox_name = models.CharField(max_length=200) + position = models.IntegerField() + visible = models.BooleanField() - def __unicode__(self): - return self.linkbox_name + def __unicode__(self): + return self.linkbox_name class Link(models.Model): - linkbox = models.ForeignKey(LinkBox) - link_name = models.CharField(max_length=200) - link = models.CharField(max_length=200) - position = models.IntegerField() - visible = models.BooleanField() + linkbox = models.ForeignKey(LinkBox, on_delete=models.CASCADE) + link_name = models.CharField(max_length=200) + link = models.CharField(max_length=200) + position = models.IntegerField() + visible = models.BooleanField() - def __unicode__(self): - return self.link_name + def __unicode__(self): + return self.link_name class TextBox(models.Model): - block = models.ForeignKey(Block) - textbox_name = models.CharField(max_length=200) - content = models.TextField() - position = models.IntegerField() - visible = models.BooleanField() - - def __unicode__(self): - return self.textbox_name + block = models.ForeignKey(Block, on_delete=models.CASCADE) + textbox_name = models.CharField(max_length=200) + content = models.TextField() + position = models.IntegerField() + visible = models.BooleanField() + + def __unicode__(self): + return self.textbox_name """ Models from fossee_new Database created using inspectdb Use it with the "fossee_in" database eg:using("fossee_in") @@ -87,40 +88,40 @@ CATEGORY = (("fluid mechanics", "Fluid Mechanics"), ("others", "Others")) class FOSSEEStats(models.Model): - w_id = models.IntegerField(unique=True, primary_key=True) - foss_name = models.CharField(max_length=500) - type = models.CharField(max_length=50) - w_name = models.CharField(max_length=500) - body = models.TextField() - no_of_participant = models.IntegerField() - event_link = models.TextField() - startdate = models.DateTimeField() - starttime = models.TimeField() - enddate = models.DateTimeField() - endtime = models.TimeField() - venue = models.CharField(max_length=500) - street = models.CharField(max_length=500) - country = models.CharField(max_length=100) - state = models.CharField(max_length=100) - city = models.CharField(max_length=100) - pincode = models.IntegerField(default=0) - class Meta: - db_table = 'workshop' + w_id = models.IntegerField(unique=True, primary_key=True) + foss_name = models.CharField(max_length=500) + type = models.CharField(max_length=50) + w_name = models.CharField(max_length=500) + body = models.TextField() + no_of_participant = models.IntegerField() + event_link = models.TextField() + startdate = models.DateField() + starttime = models.TimeField() + enddate = models.DateField() + endtime = models.TimeField() + venue = models.CharField(max_length=500) + street = models.CharField(max_length=500) + country = models.CharField(max_length=100) + state = models.CharField(max_length=100) + city = models.CharField(max_length=100) + pincode = models.IntegerField(default=0) + class Meta: + db_table = 'workshop' class TBCPYTHONBook(models.Model): - title = models.CharField(max_length=500) - author = models.CharField(max_length=300) - category = models.CharField(max_length=32, choices=CATEGORY) - publisher_place = models.CharField(max_length=150) - isbn = models.CharField(max_length=50) - edition = models.CharField(max_length=15) - year_of_pub = models.CharField(max_length=4) - no_chapters = models.IntegerField(default=0, blank=True) - contributor = models.IntegerField(default=0, blank=True) - reviewer = models.IntegerField(default=0, blank=True) - approved = models.BooleanField(default=False) - start_time = models.DateField(null=True, default=None) - end_time = models.DateField(null=True, default=None) - class Meta: - db_table = 'tbc_book' + title = models.CharField(max_length=500) + author = models.CharField(max_length=300) + category = models.CharField(max_length=32, choices=CATEGORY) + publisher_place = models.CharField(max_length=150) + isbn = models.CharField(max_length=50) + edition = models.CharField(max_length=15) + year_of_pub = models.CharField(max_length=4) + no_chapters = models.IntegerField(default=0, blank=True) + contributor = models.IntegerField(default=0, blank=True) + reviewer = models.IntegerField(default=0, blank=True) + approved = models.BooleanField(default=False) + start_time = models.DateField(null=True, default=None) + end_time = models.DateField(null=True, default=None) + class Meta: + db_table = 'tbc_book' diff --git a/website/templates/website/page.html b/website/templates/website/page.html index 7e44ee5..ca4cc17 100644 --- a/website/templates/website/page.html +++ b/website/templates/website/page.html @@ -230,7 +230,7 @@ <script src="{% static 'website/js/jquery.min.js' %}"></script> <script src="{% static 'website/js/bootstrap.min.js' %}"></script> <script src="{% static 'website/js/lightbox.min.js' %}"></script> -< !--Piwik-- > +<!-- Piwik --> <script type="text/javascript"> var _paq = _paq || []; _paq.push(['trackPageView']); diff --git a/website/urls.py b/website/urls.py index 8b753b5..b8e244f 100644 --- a/website/urls.py +++ b/website/urls.py @@ -1,8 +1,10 @@ -from django.conf.urls import include, url +from django.conf.urls import include, url, re_path from .views import dispatcher +from . import views +app_name = 'website' urlpatterns = [ - # Main pages dispatcher - url(r'^$', dispatcher, name="home"), - url(r'^(?P<permalink>.+)/$', dispatcher, name="dispatcher"), + # Main pages dispatcher + re_path(r'^$', dispatcher, name="home"), + re_path(r'^(?P<permalink>.+)/$', dispatcher, name="dispatcher"), ] diff --git a/website/views.py b/website/views.py index 7201427..a49a007 100644 --- a/website/views.py +++ b/website/views.py @@ -5,67 +5,83 @@ from website.models import FOSSEEStats, TBCPYTHONBook from website.models import Nav, Page, Block def block_sort(obj): - linkboxes = obj.linkbox_set.all() - textboxes = obj.textbox_set.all() + linkboxes = obj.linkbox_set.all() + textboxes = obj.textbox_set.all() - items = [] - for item in linkboxes: - items.append(item) + items = [] + for item in linkboxes: + items.append(item) - for item in textboxes: - items.append(item) + for item in textboxes: + items.append(item) - def get_pos(x): return x.position - items = sorted(items, key=get_pos) - return items + def get_pos(x): return x.position + items = sorted(items, key=get_pos) + return items def get_blocks(): - sidebar = Block.objects.get(block_name = "sidebar") - footer = Block.objects.get(block_name = "footer") - blocks = { - 'navs': Nav.objects.order_by('position'), - 'sidebar': block_sort(sidebar), - 'footer': block_sort(footer) - } - return blocks + sidebar = Block.objects.get(block_name = "sidebar") + footer = Block.objects.get(block_name = "footer") + blocks = { + 'navs': Nav.objects.order_by('position'), + 'sidebar': block_sort(sidebar), + 'footer': block_sort(footer) + } + return blocks def dispatcher(request, permalink=''): - context = {} + context = {} - if permalink == 'python-workshops': - blocks = get_blocks() - rows = FOSSEEStats.objects.using('fossee_new').filter(foss_name='Python', type ='Workshop').order_by('-w_id') - python_wokshop_page_content = Page.objects.get(permalink='python-workshops-page') + if permalink == 'python-workshops': + blocks = get_blocks() + rows = FOSSEEStats.objects.using('fossee_new').filter(foss_name='Python', type ='Workshop').order_by('-w_id') + print("----------", rows) + python_wokshop_page_content = Page.objects.get(permalink='python-workshops-page') + context = { + 'page':python_wokshop_page_content, + 'navs': blocks['navs'], + 'sidebar': blocks['sidebar'], + 'footer': blocks['footer'], + 'permalink': permalink, + 'obj': rows + } - context['page'] = python_wokshop_page_content - context['permalink'] = permalink - context['obj'] = rows + if permalink == 'textbook-companions-for-academics': + blocks = get_blocks() + textbook_companions_for_academics = Page.objects.get(permalink='textbook-companions-for-academics-page') + completed_books = TBCPYTHONBook.objects.using('tbcpython').values('id', 'title', 'author').filter(approved=True).order_by('id') - if permalink == 'textbook-companions-for-academics': - blocks = get_blocks() - textbook_companions_for_academics = Page.objects.get(permalink='textbook-companions-for-academics-page') - completed_books = TBCPYTHONBook.objects.using('tbcpython').values('id', 'title', 'author').filter(approved=True).order_by('id') + context = { + 'page':textbook_companions_for_academics, + 'navs': blocks['navs'], + 'sidebar': blocks['sidebar'], + 'footer': blocks['footer'], + 'permalink': permalink, + 'obj': completed_books + } - context['page'] = textbook_companions_for_academics - context['permalink'] = permalink - context['obj'] = completed_books + if permalink == '' or permalink == 'home' : + permalink = 'home' + page = get_object_or_404(Page, permalink=permalink) + blocks = get_blocks() + context = { + 'page': page, + 'navs': blocks['navs'], + 'sidebar': blocks['sidebar'], + 'footer': blocks['footer'], + 'permalink': permalink + } + context['permalink'] = permalink - if permalink == '' or permalink == 'home' : - permalink = 'home' - page = get_object_or_404(Page, permalink=permalink) - blocks = get_blocks() - context['page'] = page - context['permalink'] = permalink - - if permalink != 'home' and permalink != 'python-workshops' and permalink != 'textbook-companions-for-academics': - page = get_object_or_404(Page, permalink=permalink) - blocks = get_blocks() - context = { - 'page': page, - 'navs': blocks['navs'], - 'sidebar': blocks['sidebar'], - 'footer': blocks['footer'], - 'permalink': permalink - } - return render(request, "website/page.html", context) + if permalink != 'home' and permalink != 'python-workshops' and permalink != 'textbook-companions-for-academics': + page = get_object_or_404(Page, permalink=permalink) + blocks = get_blocks() + context = { + 'page': page, + 'navs': blocks['navs'], + 'sidebar': blocks['sidebar'], + 'footer': blocks['footer'], + 'permalink': permalink + } + return render(request, "website/page.html", context) |