diff options
30 files changed, 367 insertions, 196 deletions
diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 3f60a08..0000000 --- a/.gitignore +++ /dev/null @@ -1,45 +0,0 @@ -*.pyc -*.zip -*~ -.project -.pydevproject -app.yaml -build -tests/coverageResults -*,cover -tests/.coverage -*.git -*.egg-info -eggs -parts -.installed.cfg -bin -develop-eggs -.DS_Store -.settings -.*.swp -*.egg -*.egg-link -*.svn* -*.wpr -.installed.cfg -src/* -parts -downloads -.xvpics* -.project -pytask/local.py -pytask/pytask.egg-info -pytask/static/media -pytask/uploads -apache/* -*.swp -*.bak -*.swo -*.db-journal -*.db -migrations -wsgi.log -*.sqlite3 - -uploads/* diff --git a/scipy2016/settings.py~ b/scipy2016/settings.py~ new file mode 100755 index 0000000..a8314a1 --- /dev/null +++ b/scipy2016/settings.py~ @@ -0,0 +1,142 @@ +""" + + +For more information on this file, see +https://docs.djangoproject.com/en/1.6/topics/settings/ + +For the full list of settings and their values, see +https://docs.djangoproject.com/en/1.6/ref/settings/ +""" + +# Build paths inside the project like this: os.path.join(BASE_DIR, ...) +# from local import * +import os +BASE_DIR = os.path.dirname(os.path.dirname(__file__)) + + +# Quick-start development settings - unsuitable for production +# See https://docs.djangoproject.com/en/1.6/howto/deployment/checklist/ + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = 'w81ia+6)sak!)t@kv=@x267y78ceh4iu2c@o@2#8+h$kua3e9a' + +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = True + +TEMPLATE_DEBUG = True + +ALLOWED_HOSTS = [] + + +# Application definition + +INSTALLED_APPS = ( + 'django.contrib.admin', + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.staticfiles', + 'website', + 'social.apps.django_app.default', + 'widget_tweaks', +) + +MIDDLEWARE_CLASSES = ( + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', +) + +TEMPLATE_CONTEXT_PROCESSORS = ( + 'django.contrib.auth.context_processors.auth', + 'django.core.context_processors.debug', + 'django.core.context_processors.i18n', + 'django.core.context_processors.media', + 'django.core.context_processors.static', + 'django.core.context_processors.tz', + 'django.contrib.messages.context_processors.messages', + 'social.apps.django_app.context_processors.backends', + 'social.apps.django_app.context_processors.login_redirect', + # 'website.context_processors.contact_us_context_processor' + +) + +AUTHENTICATION_BACKENDS = ( + 'social.backends.facebook.FacebookOAuth2', + 'social.backends.google.GoogleOAuth2', + 'social.backends.twitter.TwitterOAuth', + 'social.backends.github.GithubOAuth2', + 'django.contrib.auth.backends.ModelBackend', +) + +TEMPLATE_DIRS = ( + os.path.join(BASE_DIR, '../website/templates'), +) + +STATICFILES_DIRS = ( + # Put strings here, like "/home/html/static" or "C:/www/django/static". + # Always use forward slashes, even on Windows. + # Don't forget to use absolute paths, not relative paths. + os.path.join(BASE_DIR, '../website/static'), +) + +ROOT_URLCONF = 'scipy2016.urls' + +WSGI_APPLICATION = 'scipy2016.wsgi.application' + + +# Database +# https://docs.djangoproject.com/en/1.6/ref/settings/#databases + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'. + 'NAME': 'scipy2016', # Or path to database file if using sqlite3. + # The following settings are not used with sqlite3: + 'USER': 'root', + 'PASSWORD': 'aero123', + 'HOST': '', # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP. + 'PORT': '', + } +} + +LOCAL_SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = '628178553368-dvc6sjtgp90cm0591b8p4da62rhttn35.apps.googleusercontent.com' +LOCAL_SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = 'eoiek3jLz9Ax3dv7k3mXFrbU' +# API key AIzaSyDxRqGfJNJJIFw6traKTG5nC1mY8TNODu4 + + +LOCAL_SOCIAL_AUTH_FB_KEY = '160224867760606' +LOCAL_SOCIAL_AUTH_FB_SECRET = '45eb71682352723c44d79471ecab5894' + +LOCAL_SOCIAL_AUTH_GITHUB_KEY = '0bcac418003a6d06fb50' +LOCAL_SOCIAL_AUTH_GITHUB_SECRET = 'cd1b070917d0a5c8cd27ef997fd353a4' + +# Internationalization +# https://docs.djangoproject.com/en/1.6/topics/i18n/ + +LANGUAGE_CODE = 'en-us' + +TIME_ZONE = 'UTC' + +USE_I18N = True + +USE_L10N = True + +USE_TZ = True + + +# Static files (CSS, JavaScript, Images) +# https://docs.djangoproject.com/en/1.6/howto/static-files/ + +STATIC_URL = '/static/' + +MEDIA_ROOT = os.path.join(BASE_DIR, 'uploads') +MEDIA_URL = "/downloads/" + +LOGIN_REDIRECT_URL = '/cfp' + +# smtp diff --git a/website/forms.py b/website/forms.py index 65524d5..e052ddf 100755 --- a/website/forms.py +++ b/website/forms.py @@ -7,11 +7,14 @@ from django.contrib.auth.forms import UserCreationForm from website.models import Proposal from django.core.validators import MinLengthValidator, MinValueValidator, \ RegexValidator, URLValidator +from captcha.fields import ReCaptchaField # Only import different from yesterday +from crispy_forms.helper import FormHelper +from crispy_forms.layout import Submit +import floppyforms as forms MY_CHOICES = ( ('Beginner', 'Beginner'), - ('intermediate', 'Intermediate'), ('Advanced', 'Advanced'), ) rating=( @@ -48,7 +51,7 @@ class ProposalForm(forms.ModelForm): about_me = forms.CharField(widget=forms.Textarea(attrs={'class': 'form-control', 'placeholder': 'About Me'}), required = True, - error_messages = {'required':'Title field required.'}, + error_messages = {'required':'About me field required.'}, ) attachment = forms.FileField(widget=forms.ClearableFileInput(attrs={'multiple': True}), required = True, @@ -95,13 +98,12 @@ class ProposalForm(forms.ModelForm): class WorkshopForm(forms.ModelForm): about_me = forms.CharField(widget=forms.Textarea(attrs={'class': 'form-control', 'placeholder': 'About Me'}), required = True, - error_messages = {'required':'Title field required.'}, + error_messages = {'required':'About Me field required.'}, ) attachment = forms.FileField(widget=forms.ClearableFileInput(attrs={'multiple': True}), required = True, error_messages = {'required':'Attachment field required.'},) phone = forms.CharField(max_length = 12, widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Phone'}),required=False, validators = [RegexValidator(regex = '^[0-9-_+.]*$', message='Enter a Valid Phone Number',)], - error_messages = {'required':'Title field required.'}, ) title = forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Title'}), required = True, @@ -176,6 +178,15 @@ class UserRegisterForm(UserCreationForm): error_messages = {'required':'Password Confirm field required.'}, label = 'RePassword' ) + + def clean_first_name(self): + return self.cleaned_data["first_name"].title() + + def clean_email(self): + return self.cleaned_data["email"].lower() + + def clean_last_name(self): + return self.cleaned_data["last_name"].title() class UserLoginForm(forms.Form): diff --git a/website/static/css/fileuploader.css b/website/static/css/fileuploader.css deleted file mode 100755 index 721d762..0000000 --- a/website/static/css/fileuploader.css +++ /dev/null @@ -1,93 +0,0 @@ - Have ideas for improving this CSS for the general community? Submit your changes at: https://github.com/Valums-File-Uploader/file-uploader */ -.qq-uploader { - position: relative; - width: 100%; -} -.qq-upload-button { - display: block; - /*or inline-block*/ - width: 105px; - padding: 7px 0; - text-align: center; - background: #880000; - border-bottom: 1px solid #DDD; - color: #FFF; -} -.qq-upload-button-hover { - background: #CC0000; -} -.qq-upload-button-focus { - outline: 1px dotted #000000; -} -.qq-upload-drop-area, .qq-upload-extra-drop-area { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - min-height: 30px; - z-index: 2; - background: #FF9797; - text-align: center; -} -.qq-upload-drop-area span { - display: block; - position: absolute; - top: 50%; - width: 100%; - margin-top: -8px; - font-size: 16px; -} -.qq-upload-extra-drop-area { - position: relative; - margin-top: 50px; - font-size: 16px; - padding-top: 30px; - height: 20px; - min-height: 40px; -} -.qq-upload-drop-area-active { - background: #FF7171; -} -.qq-upload-list { - margin: 0; - padding: 0; - list-style: none; -} -.qq-upload-list li { - margin: 0; - padding: 9px; - line-height: 15px; - font-size: 16px; - background-color: #FFF0BD; -} -.qq-upload-file, .qq-upload-spinner, .qq-upload-size, .qq-upload-cancel, .qq-upload-failed-text { - margin-right: 12px; -} -.qq-upload-file { -} -.qq-upload-spinner { - display: inline-block; - background: url("loading.gif"); - width: 15px; - height: 15px; - vertical-align: text-bottom; -} -.qq-upload-size, .qq-upload-cancel { - font-size: 12px; - font-weight: normal; -} -.qq-upload-failed-text { - display: none; -} -.qq-upload-fail .qq-upload-failed-text { - display: inline; -} -.qq-upload-list li.qq-upload-success { - background-color: #5DA30C; - color: #FFFFFF; -} -.qq-upload-list li.qq-upload-fail { - background-color: #D60000; - color: #FFFFFF; -} diff --git a/website/static/img/ajith.jpg b/website/static/img/ajith.jpg Binary files differnew file mode 100644 index 0000000..59cdd6f --- /dev/null +++ b/website/static/img/ajith.jpg diff --git a/website/static/img/anand.jpg b/website/static/img/anand.jpg Binary files differnew file mode 100644 index 0000000..565a5ff --- /dev/null +++ b/website/static/img/anand.jpg diff --git a/website/static/img/background.png b/website/static/img/background.png Binary files differdeleted file mode 100644 index f2b6d66..0000000 --- a/website/static/img/background.png +++ /dev/null diff --git a/website/static/img/c1.png b/website/static/img/c1.png Binary files differdeleted file mode 100755 index 314353f..0000000 --- a/website/static/img/c1.png +++ /dev/null diff --git a/website/static/img/c2.png b/website/static/img/c2.png Binary files differdeleted file mode 100755 index b43bc75..0000000 --- a/website/static/img/c2.png +++ /dev/null diff --git a/website/static/img/c3.png b/website/static/img/c3.png Binary files differdeleted file mode 100755 index b8e5af2..0000000 --- a/website/static/img/c3.png +++ /dev/null diff --git a/website/static/img/favicon.ico b/website/static/img/favicon.ico Binary files differnew file mode 100644 index 0000000..49bdccf --- /dev/null +++ b/website/static/img/favicon.ico diff --git a/website/static/img/pic01.jpg b/website/static/img/pic01.jpg Binary files differdeleted file mode 100755 index 25477aa..0000000 --- a/website/static/img/pic01.jpg +++ /dev/null diff --git a/website/static/img/pic01.png b/website/static/img/pic01.png Binary files differdeleted file mode 100644 index 25477aa..0000000 --- a/website/static/img/pic01.png +++ /dev/null diff --git a/website/static/img/pic02.jpg b/website/static/img/pic02.jpg Binary files differdeleted file mode 100755 index 7cf8346..0000000 --- a/website/static/img/pic02.jpg +++ /dev/null diff --git a/website/static/img/pic03.jpg b/website/static/img/pic03.jpg Binary files differdeleted file mode 100755 index 51192cb..0000000 --- a/website/static/img/pic03.jpg +++ /dev/null diff --git a/website/static/img/pic04.jpg b/website/static/img/pic04.jpg Binary files differdeleted file mode 100755 index 18063b1..0000000 --- a/website/static/img/pic04.jpg +++ /dev/null diff --git a/website/static/img/pic05.jpg b/website/static/img/pic05.jpg Binary files differdeleted file mode 100755 index b7b49ed..0000000 --- a/website/static/img/pic05.jpg +++ /dev/null diff --git a/website/static/img/pic06.jpg b/website/static/img/pic06.jpg Binary files differdeleted file mode 100755 index cf78a92..0000000 --- a/website/static/img/pic06.jpg +++ /dev/null diff --git a/website/static/img/s12.jpg b/website/static/img/s12.jpg Binary files differdeleted file mode 100644 index 80b55b4..0000000 --- a/website/static/img/s12.jpg +++ /dev/null diff --git a/website/static/img/s13.jpg b/website/static/img/s13.jpg Binary files differdeleted file mode 100644 index 4d0d888..0000000 --- a/website/static/img/s13.jpg +++ /dev/null diff --git a/website/static/img/s14.jpg b/website/static/img/s14.jpg Binary files differdeleted file mode 100644 index 5c78c19..0000000 --- a/website/static/img/s14.jpg +++ /dev/null diff --git a/website/static/img/s15.jpg b/website/static/img/s15.jpg Binary files differdeleted file mode 100644 index 42f22f4..0000000 --- a/website/static/img/s15.jpg +++ /dev/null diff --git a/website/static/js/respond.min.js b/website/static/js/respond.min.js new file mode 100644 index 0000000..e8d6207 --- /dev/null +++ b/website/static/js/respond.min.js @@ -0,0 +1,6 @@ +/*! Respond.js v1.4.2: min/max-width media query polyfill + * Copyright 2014 Scott Jehl + * Licensed under MIT + * http://j.mp/respondjs */ + +!function(a){"use strict";a.matchMedia=a.matchMedia||function(a){var b,c=a.documentElement,d=c.firstElementChild||c.firstChild,e=a.createElement("body"),f=a.createElement("div");return f.id="mq-test-1",f.style.cssText="position:absolute;top:-100em",e.style.background="none",e.appendChild(f),function(a){return f.innerHTML='­<style media="'+a+'"> #mq-test-1 { width: 42px; }</style>',c.insertBefore(e,d),b=42===f.offsetWidth,c.removeChild(e),{matches:b,media:a}}}(a.document)}(this),function(a){"use strict";function b(){v(!0)}var c={};a.respond=c,c.update=function(){};var d=[],e=function(){var b=!1;try{b=new a.XMLHttpRequest}catch(c){b=new a.ActiveXObject("Microsoft.XMLHTTP")}return function(){return b}}(),f=function(a,b){var c=e();c&&(c.open("GET",a,!0),c.onreadystatechange=function(){4!==c.readyState||200!==c.status&&304!==c.status||b(c.responseText)},4!==c.readyState&&c.send(null))},g=function(a){return a.replace(c.regex.minmaxwh,"").match(c.regex.other)};if(c.ajax=f,c.queue=d,c.unsupportedmq=g,c.regex={media:/@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi,keyframes:/@(?:\-(?:o|moz|webkit)\-)?keyframes[^\{]+\{(?:[^\{\}]*\{[^\}\{]*\})+[^\}]*\}/gi,comments:/\/\*[^*]*\*+([^/][^*]*\*+)*\//gi,urls:/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,findStyles:/@media *([^\{]+)\{([\S\s]+?)$/,only:/(only\s+)?([a-zA-Z]+)\s?/,minw:/\(\s*min\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/,maxw:/\(\s*max\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/,minmaxwh:/\(\s*m(in|ax)\-(height|width)\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/gi,other:/\([^\)]*\)/g},c.mediaQueriesSupported=a.matchMedia&&null!==a.matchMedia("only all")&&a.matchMedia("only all").matches,!c.mediaQueriesSupported){var h,i,j,k=a.document,l=k.documentElement,m=[],n=[],o=[],p={},q=30,r=k.getElementsByTagName("head")[0]||l,s=k.getElementsByTagName("base")[0],t=r.getElementsByTagName("link"),u=function(){var a,b=k.createElement("div"),c=k.body,d=l.style.fontSize,e=c&&c.style.fontSize,f=!1;return b.style.cssText="position:absolute;font-size:1em;width:1em",c||(c=f=k.createElement("body"),c.style.background="none"),l.style.fontSize="100%",c.style.fontSize="100%",c.appendChild(b),f&&l.insertBefore(c,l.firstChild),a=b.offsetWidth,f?l.removeChild(c):c.removeChild(b),l.style.fontSize=d,e&&(c.style.fontSize=e),a=j=parseFloat(a)},v=function(b){var c="clientWidth",d=l[c],e="CSS1Compat"===k.compatMode&&d||k.body[c]||d,f={},g=t[t.length-1],p=(new Date).getTime();if(b&&h&&q>p-h)return a.clearTimeout(i),i=a.setTimeout(v,q),void 0;h=p;for(var s in m)if(m.hasOwnProperty(s)){var w=m[s],x=w.minw,y=w.maxw,z=null===x,A=null===y,B="em";x&&(x=parseFloat(x)*(x.indexOf(B)>-1?j||u():1)),y&&(y=parseFloat(y)*(y.indexOf(B)>-1?j||u():1)),w.hasquery&&(z&&A||!(z||e>=x)||!(A||y>=e))||(f[w.media]||(f[w.media]=[]),f[w.media].push(n[w.rules]))}for(var C in o)o.hasOwnProperty(C)&&o[C]&&o[C].parentNode===r&&r.removeChild(o[C]);o.length=0;for(var D in f)if(f.hasOwnProperty(D)){var E=k.createElement("style"),F=f[D].join("\n");E.type="text/css",E.media=D,r.insertBefore(E,g.nextSibling),E.styleSheet?E.styleSheet.cssText=F:E.appendChild(k.createTextNode(F)),o.push(E)}},w=function(a,b,d){var e=a.replace(c.regex.comments,"").replace(c.regex.keyframes,"").match(c.regex.media),f=e&&e.length||0;b=b.substring(0,b.lastIndexOf("/"));var h=function(a){return a.replace(c.regex.urls,"$1"+b+"$2$3")},i=!f&&d;b.length&&(b+="/"),i&&(f=1);for(var j=0;f>j;j++){var k,l,o,p;i?(k=d,n.push(h(a))):(k=e[j].match(c.regex.findStyles)&&RegExp.$1,n.push(RegExp.$2&&h(RegExp.$2))),o=k.split(","),p=o.length;for(var q=0;p>q;q++)l=o[q],g(l)||m.push({media:l.split("(")[0].match(c.regex.only)&&RegExp.$2||"all",rules:n.length-1,hasquery:l.indexOf("(")>-1,minw:l.match(c.regex.minw)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:l.match(c.regex.maxw)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}v()},x=function(){if(d.length){var b=d.shift();f(b.href,function(c){w(c,b.href,b.media),p[b.href]=!0,a.setTimeout(function(){x()},0)})}},y=function(){for(var b=0;b<t.length;b++){var c=t[b],e=c.href,f=c.media,g=c.rel&&"stylesheet"===c.rel.toLowerCase();e&&g&&!p[e]&&(c.styleSheet&&c.styleSheet.rawCssText?(w(c.styleSheet.rawCssText,e,f),p[e]=!0):(!/^([a-zA-Z:]*\/\/)/.test(e)&&!s||e.replace(RegExp.$1,"").split("/")[0]===a.location.host)&&("//"===e.substring(0,2)&&(e=a.location.protocol+e),d.push({href:e,media:f})))}x()};y(),c.update=y,c.getEmValue=u,a.addEventListener?a.addEventListener("resize",b,!1):a.attachEvent&&a.attachEvent("onresize",b)}}(this);
\ No newline at end of file diff --git a/website/static/js/smoothscroll.js b/website/static/js/smoothscroll.js new file mode 100644 index 0000000..a41ab77 --- /dev/null +++ b/website/static/js/smoothscroll.js @@ -0,0 +1,33 @@ +/** + * SmoothScroll + * This helper script created by DWUser.com. Copyright 2013 DWUser.com. + * Dual-licensed under the GPL and MIT licenses. + * All individual scripts remain property of their copyrighters. + * Date: 10-Sep-2013 + * Version: 1.0.1 + */ +if (!window['jQuery']) alert('The jQuery library must be included before the smoothscroll.js file. The plugin will not work propery.'); + +/** + * jQuery.ScrollTo - Easy element scrolling using jQuery. + * Copyright (c) 2007-2013 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com + * Dual licensed under MIT and GPL. + * @author Ariel Flesler + * @version 1.4.3.1 + */ +;(function($){var h=$.scrollTo=function(a,b,c){$(window).scrollTo(a,b,c)};h.defaults={axis:'xy',duration:parseFloat($.fn.jquery)>=1.3?0:1,limit:true};h.window=function(a){return $(window)._scrollable()};$.fn._scrollable=function(){return this.map(function(){var a=this,isWin=!a.nodeName||$.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!isWin)return a;var b=(a.contentWindow||a).document||a.ownerDocument||a;return/webkit/i.test(navigator.userAgent)||b.compatMode=='BackCompat'?b.body:b.documentElement})};$.fn.scrollTo=function(e,f,g){if(typeof f=='object'){g=f;f=0}if(typeof g=='function')g={onAfter:g};if(e=='max')e=9e9;g=$.extend({},h.defaults,g);f=f||g.duration;g.queue=g.queue&&g.axis.length>1;if(g.queue)f/=2;g.offset=both(g.offset);g.over=both(g.over);return this._scrollable().each(function(){if(e==null)return;var d=this,$elem=$(d),targ=e,toff,attr={},win=$elem.is('html,body');switch(typeof targ){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(targ)){targ=both(targ);break}targ=$(targ,this);if(!targ.length)return;case'object':if(targ.is||targ.style)toff=(targ=$(targ)).offset()}$.each(g.axis.split(''),function(i,a){var b=a=='x'?'Left':'Top',pos=b.toLowerCase(),key='scroll'+b,old=d[key],max=h.max(d,a);if(toff){attr[key]=toff[pos]+(win?0:old-$elem.offset()[pos]);if(g.margin){attr[key]-=parseInt(targ.css('margin'+b))||0;attr[key]-=parseInt(targ.css('border'+b+'Width'))||0}attr[key]+=g.offset[pos]||0;if(g.over[pos])attr[key]+=targ[a=='x'?'width':'height']()*g.over[pos]}else{var c=targ[pos];attr[key]=c.slice&&c.slice(-1)=='%'?parseFloat(c)/100*max:c}if(g.limit&&/^\d+$/.test(attr[key]))attr[key]=attr[key]<=0?0:Math.min(attr[key],max);if(!i&&g.queue){if(old!=attr[key])animate(g.onAfterFirst);delete attr[key]}});animate(g.onAfter);function animate(a){$elem.animate(attr,f,g.easing,a&&function(){a.call(this,e,g)})}}).end()};h.max=function(a,b){var c=b=='x'?'Width':'Height',scroll='scroll'+c;if(!$(a).is('html,body'))return a[scroll]-$(a)[c.toLowerCase()]();var d='client'+c,html=a.ownerDocument.documentElement,body=a.ownerDocument.body;return Math.max(html[scroll],body[scroll])-Math.min(html[d],body[d])};function both(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery); + +/** + * jQuery.LocalScroll + * Copyright (c) 2007-2010 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com + * Dual licensed under MIT and GPL. + * Date: 05/31/2010 + * @author Ariel Flesler + * @version 1.2.8b + **/ +;(function(b){function g(a,e,d){var h=e.hash.slice(1),f=document.getElementById(h)||document.getElementsByName(h)[0];if(f){a&&a.preventDefault();var c=b(d.target);if(!(d.lock&&c.is(":animated")||d.onBefore&&!1===d.onBefore(a,f,c))){d.stop&&c._scrollable().stop(!0);if(d.hash){var a=f.id==h?"id":"name",g=b("<a> </a>").attr(a,h).css({position:"absolute",top:b(window).scrollTop(),left:b(window).scrollLeft()});f[a]="";b("body").prepend(g);location=e.hash;g.remove();f[a]=h}c.scrollTo(f,d).trigger("notify.serialScroll", +[f])}}}var i=location.href.replace(/#.*/,""),c=b.localScroll=function(a){b("body").localScroll(a)};c.defaults={duration:1E3,axis:"y",event:"click",stop:!0,target:window,reset:!0};c.hash=function(a){if(location.hash){a=b.extend({},c.defaults,a);a.hash=!1;if(a.reset){var e=a.duration;delete a.duration;b(a.target).scrollTo(0,a);a.duration=e}g(0,location,a)}};b.fn.localScroll=function(a){function e(){return!!this.href&&!!this.hash&&this.href.replace(this.hash,"")==i&&(!a.filter||b(this).is(a.filter))} +a=b.extend({},c.defaults,a);return a.lazy?this.bind(a.event,function(d){var c=b([d.target,d.target.parentNode]).filter(e)[0];c&&g(d,c,a)}):this.find("a,area").filter(e).bind(a.event,function(b){g(b,this,a)}).end().end()}})(jQuery); + +// Initialize all .smoothScroll links +jQuery(function($){ $.localScroll({filter:'.smoothScroll'}); }); diff --git a/website/templates/base.html b/website/templates/base.html index 1c0360f..3f0d30b 100755 --- a/website/templates/base.html +++ b/website/templates/base.html @@ -3,7 +3,7 @@ <!DOCTYPE HTML>
<html>
<head>
- <link rel="icon" href="http://fossee.in/data/emails/images/favicon.ico" type="icon">
+ <link rel="icon" href="{% static 'img/favicon.ico'%}" type="icon">
<title>SciPy India 2016</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
@@ -23,7 +23,7 @@ <header id="header" class="alt">
<span class="logo"><img src="{% static 'img/logo.png' %}" alt="" /></span>
<h1 >SciPy India 2016</h1>
- <p style="color:#484848; font-weight:700; font-size:28px;" >DECEMBER 9, 10 & 11</p><br><br>
+ <p style="color:#484848; font-weight:700; font-size:28px;" >DECEMBER 10 & 11</p><br><br>
<a href="{% url 'website:cfp' %}" class="button special" style="width : 220px;" >Attend</a></center>
<a href="{% url 'website:cfp' %}" class="button special" style="width : 220px;">Call for Proposal</a></center>
@@ -77,7 +77,7 @@ <header class="major">
<h2>ABOUT</h2>
</header>
- <p align="justify" style= "font-size: 20px;">We look forward to your proposals. Conference aims to promote Python for Scientific Computing and Education. Topics like pedagogy, exploration, modeling or from both applied and developmental perspectives are welcome. Contributions from academia as well as industry are welcome. If you wish to propose a talk at the conference, kindly follow the guidelines given below.</p>
+ <p align="justify" style= "font-size: 20px;">SciPy India is a conference providing opportunities to spread the use of the Python programming language in the Scientific Computing community in India. It provides a unique opportunity to interact with the "Who's who" of the Python for Scientific Computing fraternity and learn, understand, participate, and contribute to Scientific Computing using Python. One of the goals of the conference is to combine education, engineering, and science with computing through the medium of Python.</p>
</div>
</div>
@@ -92,31 +92,95 @@ <header class="major">
<h2>SPEAKERS</h2>
- <center>
-
- <div class = "col-md-4">
- <img class="img-responsive" src="{% static 'img/ajith.jpg' %}" height="300" width="300" alt="">
+
+ <table class = "table">
+ <colgroup>
+ <col width="40%" />
+ <col width="20%" />
+ <col width="40%" />
+ </colgroup>
+<tr>
+<td> <img class="img-responsive" src="{% static 'img/ajith.jpg' %}" height="300" width="300" alt="">
<p>Dr. Ajit Kumar</p>
<a style = "color:#636363;" href="https://github.com/expeyes" target="_blank"><i class="icon-github" style="font-size:30px;"></i></a>
- <a style = "color:#636363;" href="http://expeyes.in/" target="_blank"><i class="icon-info" style="font-size:30px;"></i></a>
- </div>
- <div class = "col-md-4">
- <img class="img-responsive" src="{% static 'img/pic01.png' %}" height="300" width="300" alt="">
- <p>Dr. Abc Xyz</p>
- <a style = "color:#636363;" href="https://github.com/expeyes" target="_blank"><i class="icon-github" style="font-size:30px;"></i></a>
+ <a style = "color:#636363;" href="http://expeyes.in/" target="_blank"><i class="icon-info" style="font-size:30px;"></i></a></td>
+
+ <td></td>
+<td> <img class="img-responsive" src="{% static 'img/anand.jpg' %}" height="300" width="300" alt="">
+ <p>Mr. S. Anand</p>
+ <a style = "color:#636363;" href="https://github.com/sanand0" target="_blank"><i class="icon-github" style="font-size:30px;"></i></a>
- <a style = "color:#636363;" href="http://expeyes.in/" target="_blank"><i class="icon-info" style="font-size:30px;"></i></a>
- </div>
- <div class = "col-md-4">
- <img class="img-responsive" src="{% static 'img/pic01.png' %}" height="300" width="300" alt="">
- <p>Dr. Abc Xyz</p>
- <a style = "color:#636363;" href="https://github.com/expeyes" target="_blank"><i class="icon-github" style="font-size:30px;"></i></a>
+ <a style = "color:#636363;" href="http://www.s-anand.net/" target="_blank"><i class="icon-info" style="font-size:30px;"></i></a> </td>
+
+</tr>
+<tr>
+<td> Dr. B. P. Ajith Kumar, a scientist working with the <a target="_blank" href = "http://www.iuac.res.in/">IUAC</a>. His main area of work is development of instrumentation for particle accelerators and associated experiments, including radio-frequency accelerating structures, control and data acquisition systems, digital and radio frequency electronics modules. He initiated the Phoenix / expEYES project. ExpEYES is currently the cheapest educational system to teach science. </td>
+<td></td>
+<td> Anand is the Chief Executive Officer at Gramener. He leads a team of data enthusiasts with skills in analysis, design, programming and statistics. He studied at IIT Madras, IIM Bangalore and LBS, and worked at IBM, Infosys, Lehman Brothers and BCG. He and his team explore insights from data and communicate these as visual stories. These visual analyses and dashboards are built on the Gramener Visualisation Server -- Gramener's flagship product. </td>
+</tr>
+ </table>
+
+
+ <!-- <div id="carousel-example-generic" class="carousel slide" data-ride="carousel">
+ <!-- Wrapper for slides
+ <div class="carousel-inner">
+ <div class="item active centered">
+ <table class="tile_table">
+ <tr>
+ <td>
+ <img class="img-responsive" src="{% static 'img/c1.png' %}" alt="">
+ </td>
+ <td>
+ <p>Dr. Ajith Kumar</p>
+ Information about the person. His topic or anythhin related to. Filed of work etc.
+ <p></p>
+ <a href="https://github.com/expeyes" targer"_blank"><i class="icon-github" style="font-size:30px;"></i></a>
- <a style = "color:#636363;" href="http://expeyes.in/" target="_blank"><i class="icon-info" style="font-size:30px;"></i></a>
- </div>
- </center>
-
+ <a href="http://expeyes.in/" target="_blank"><i class="icon-info" style="font-size:30px;"></i></a>
+
+ </td>
+ </tr>
+ </table>
+
+ </div>
+ <div class="item centered">
+ <table class="tile_table">
+ <tr>
+ <td>
+ <img class="img-responsive" src="{% static 'img/c2.png' %}" alt="">
+ </td>
+ <td>
+ <p>PQR UVW</p>
+ <hr>
+ Information about the person. His topic or anythhin related to talk. Filed of work etc.
+
+ </td>
+ </tr>
+ </table>
+ </div>
+ <div class="item centered">
+ <table class="tile_table">
+ <tr>
+ <td>
+ <img class="img-responsive" src="{% static 'img/c3.png' %}" alt="">
+ </td>
+ <td>
+ <p>ABC XYZ</p>
+ <hr>
+ Information about the person. His topic or anythhin related to talk. Filed of work etc.
+
+ </td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ <ol class="carousel-indicators">
+ <li data-target="#carousel-example-generic" data-slide-to="0" class="active"></li>
+ <li data-target="#carousel-example-generic" data-slide-to="1"></li>
+ <li data-target="#carousel-example-generic" data-slide-to="2"></li>
+ </ol>
+ </div> -->
</div>
</div>
@@ -141,27 +205,37 @@ <td bgcolor="#efa8b0">
<h9 style="color:white;">Early Bird</h9>
<h2 style="color:white;" style ="font-size: 25px;">₹1000</h2>
+ <h9 style="color:white;">(Till 10 Nov 2016)</h9>
+
</td>
<td>
- This ticket includes conference (tutorials + talks), lunch and snacks for 3 days. It does not include Accommodation & T-Shirt. This is a non-refundable ticket.
+ This ticket includes conference (tutorials + talks), lunch and snacks for 2 days. It does not include Accommodation & T-Shirt. This is a non-refundable ticket.
+
</td>
</tr>
<tr>
<td bgcolor = "#c79cc8">
<h9 style="color:white;">Light</h9>
- <h2 style="color:white;"style ="font-size: 25px;">₹300</h2>
+ <h2 style="color:white;"style ="font-size: 25px;">₹600</h2>
+ <h9 style="color:white;">(Till 30 Nov 2016)</h9>
+
+
</td>
<td>
- This Ticket allows you to ONLY attend the conference for 3 Days. Does not include any conference amenities (Accommodation, Kit, Food & T-shirt). This is a non-refundable ticket. </td>
+ This Ticket allows you to ONLY attend the conference for 2 Days (snacks shall be served). Does not include any conference amenities (Accommodation, Kit, Lunch & T-shirt). This is a non-refundable ticket.
+ </td>
</tr>
<tr>
<td bgcolor="#a89cc8">
<h9 style="color:white;">Regular</h9>
<h2 style="color:white;" style ="font-size: 25px;">₹1200</h2>
+ <h9 style="color:white;">(10 Nov - 30 Nov 2016)</h9>
+ <!-- </li> -->
+ <!-- </ul> -->
</td>
<td>
- This ticket includes conference (tutorials + talks), lunch and snacks for 3 days. It does not include Accommodation & T-Shirt. This is a non-refundable ticket.</td>
+ This ticket includes conference (tutorials + talks), lunch and snacks for 2 days. It does not include Accommodation & T-Shirt. This is a non-refundable ticket.</td>
</tr>
<tr>
<td bgcolor ="#9bb2e1">
@@ -169,7 +243,7 @@ <h2 style="color:white;" style ="font-size: 25px;">₹750</h2>
</td>
<td>
- Accommodation is provided on a shared basis (twin sharing) inside IIT-B campus (Boys/Girls hostel). Accommodation will be provided for 3 days, i.e, 13-14, 14-15 and 15-16 December. Accommodation does not include other amenities like dinner, etc. Extension of period of stay is not available. This is a non-refundable ticket.
+ Accommodation is provided on a shared basis (twin sharing) inside IIT-B campus (Boys/Girls hostel). Accommodation will be provided for 2 days, i.e, 10-11 and 11-12 December. Accommodation does not include other amenities like dinner, etc. Extension of period of stay is not available. This is a non-refundable ticket.
</td>
<tr>
<td bgcolor= "#8cc9f0">
@@ -181,7 +255,24 @@ </td>
</tr>
</tr>
-
+ <!-- <tr>
+ <!-- </ul>
+ </center>
+
+ <td>
+ This Ticket allows you to ONLY attend the conference for 3 Days. Does not include any conference amenities (Accommodation, Kit, Food & T-shirt). This is a non-refundable ticket.
+ </td>
+ <td>
+ This ticket includes conference (tutorials + talks), lunch and snacks for 3 days. It does not include Accommodation & T-Shirt. This is a non-refundable ticket.
+ </td>
+ <td>
+ Change of size, exchange at the venue is not available. This is a non-refundable ticket.
+ </td>
+ <td>
+ Accommodation is provided on a shared basis (twin sharing) inside IIT-B campus (Boys/Girls hostel). Accommodation will be provided for 3 days, i.e, 13-14, 14-15 and 15-16 December. Accommodation does not include other amenities like dinner, etc. Extension of period of stay is not available. This is a non-refundable ticket.
+ </td>
+ </tr>
+ -->
</table>
<p id="demo"></p>
@@ -199,8 +290,10 @@ <header class="major">
<h2>SCHEDULE</h2>
<div id="schedule" name="schedule">
+ <h3>To be announced<h3>
+
- <div >
+ <!-- <div >
<center>
<ul class="nav nav-tabs">
<li class="active">
@@ -209,9 +302,11 @@ <li><a style="background: #a89cc8;" data-toggle="tab" href="http://scipy.in/2015#day3">Day 3</a></li>
<li><a style="background: #9bb2e1;"data-toggle="tab" href="http://scipy.in/2015#paper">Workshop Resources</a></li>
<li><a style="background: #8cc9f0;" data-toggle="tab" href="http://scipy.in/2015#workshop">Workshop Instructions</a></li>
+
</ul>
<div class="tab-content">
+ <br> <br>
<div id="day1" class="tab-pane fade in active">
<p>
</p><center><h4>14 Dec 2015: Day 1</h4></center>
@@ -341,8 +436,8 @@ & Mr. Atul Kumar</td><td><a href="http://scipy.in/2015#" data-toggle="modal" data-target="#work7">Modeling and solving mathematical optimization problems with Pyomo</a></td></tr>
<tr><td>Prof. Madhu Belur, Saurabh Kumar & Shana Moothedath</td><td><a href="http://scipy.in/2015#" data-toggle="modal" data-target="#work8">Application of Pandas for some allocation problems</a></td>
</tr></tbody></table>
- <p></p>
- </div>
+ <p></p>-->
+ </div>
</div>
</section>
@@ -415,11 +510,12 @@ <h2>Contact Us</h2>
<dl class="alt">
<dt>Address</dt>
- <dd>1234 Somewhere Road • Nashville, TN 00000 • USA</dd>
+ <dd> • CFD - Lab, Aero. Annex Building,<br>• Below HSS Dept.,<br> • Opp.Metallurgical Dept.IIT Bombay,<br> • Powai, Mumbai - 400076 India</dd>
<dt>Phone</dt>
- <dd>(000) 000-0000 x 0000</dd>
+ <dd> (+91) 22 25764133</dd>
<dt>Email</dt>
- <dd><a style="color:white;" href="#">information@untitled.tld</a></dd>
+ <dd><a style="color:white;" href="#">info [at] fossee [dot] in
+</a></dd>
</dl>
<ul class="icons">
<li><a style="color:white;" href="#" class="icon-twitter alt"><span class="label"></span></a></li>
diff --git a/website/templates/cfp.html b/website/templates/cfp.html index e587d47..7e3ab3b 100755 --- a/website/templates/cfp.html +++ b/website/templates/cfp.html @@ -89,8 +89,8 @@ {% csrf_token %} </form> <!-- </div> --> - <p>Or Sign in with: - <a href="{% url 'social:begin' 'google-oauth2' %}?next={{ request.path }}" class="btn btn-social-icon " style="color:#dd4b39;"><i class="icon-google-plus"></i></a> + <p>Or Sign in with: + <a href="{% url 'social:begin' 'google-oauth2' %}?next={{ request.path }}" class="btn btn-social-icon " style="color:#dd4b39;"><i class="icon-google-plus"></i></a> <a href="{% url 'social:begin' 'facebook' %}?next={{ request.path }}" class=" btn btn-social-icon" style="color:#3b5998"><i class="icon-facebook"></i></a></p> </li> <!-- </div> --> @@ -99,9 +99,9 @@ <li> <span><h2><u>Important Dates</u></h2></span> <ul> - <li>CFP Open: July 5, 2015 - <li>CFP Close: November 24, 2015 - <li>Announcement of selected proposals: December 1, 2015 + <li>CFP Open: To be announced + <li>CFP Close: To be announced + <li>Announcement of selected proposals: To be announced </ul> </li> <!-- </div> --> diff --git a/website/templates/comment-abstract.html b/website/templates/comment-abstract.html index 2ed996a..fd00256 100755 --- a/website/templates/comment-abstract.html +++ b/website/templates/comment-abstract.html @@ -6,10 +6,6 @@ <html> <head> <title>{{ user.get_full_name|default:user.username }}</title> - <!--[if lte IE 8]><script src="assets/js/ie/html5shiv.js"></script><![endif]--> - <link rel="stylesheet" href="assets/css/main.css" /> - <!--[if lte IE 9]><link rel="stylesheet" href="assets/css/ie9.css" /><![endif]--> - <!--[if lte IE 8]><link rel="stylesheet" href="assets/css/ie8.css" /><![endif]--> </head> <body> diff --git a/website/templates/submit-cfp.html b/website/templates/submit-cfp.html index e4ea1ae..2a415a9 100755 --- a/website/templates/submit-cfp.html +++ b/website/templates/submit-cfp.html @@ -114,14 +114,15 @@ <!-- <h2>{{ user.get_full_name|default:user.username }} </h2> --> <h2><u>Proposal Guidelines</u></h2> - <ul> + <li>To be announced</li><br> + <!-- <ul> <li>The project you are willing to present should be an actual implementation rather than just an idea. <li>Abstract should be of 300 to 700 words describing the topic, including its relevance to scientific computing. <li>Proposals with an aim to promote a commercial product or service will be rejected. <li>In your abstract mention about various tools/libraries used for development. <li>Notification for selection/rejection of your proposal will be given through email. <li>All selected proposals must be presented at the conference by at least one author. - </ul> + </ul> --> <form action="" method=POST enctype="multipart/form-data"> <div class="row1"> diff --git a/website/templates/submit-cfw.html b/website/templates/submit-cfw.html index a3207cd..f31ea9b 100755 --- a/website/templates/submit-cfw.html +++ b/website/templates/submit-cfw.html @@ -114,14 +114,15 @@ <!-- <h2>{{ user.get_full_name|default:user.username }} </h2> --> <h2><u>Proposal Guidelines</u></h2> - <ul> + <li>To be announced</li><br> + <!-- <ul> <li>The project you are willing to present should be an actual implementation rather than just an idea. <li>Abstract should be of 300 to 700 words describing the topic, including its relevance to scientific computing. <li>Proposals with an aim to promote a commercial product or service will be rejected. <li>In your abstract mention about various tools/libraries used for development. <li>Notification for selection/rejection of your proposal will be given through email. <li>All selected proposals must be presented at the conference by at least one author. - </ul> + </ul> --> <form action="" method=POST enctype="multipart/form-data"> <div class="row1"> diff --git a/website/views.py b/website/views.py index 316ff19..82a7ea5 100755 --- a/website/views.py +++ b/website/views.py @@ -1,3 +1,5 @@ +# -*- coding: utf-8 -*- + from django.shortcuts import render from django.utils.encoding import force_text from django.contrib.contenttypes.models import ContentType @@ -13,6 +15,8 @@ from django.contrib.auth.decorators import login_required from django.core.mail import send_mail from django.db.models import F import csv +from django.core.mail import EmailMultiAlternatives + from website.forms import ProposalForm, UserRegisterForm, UserLoginForm, WorkshopForm, ContactForm from website.models import Proposal, Comments @@ -40,6 +44,8 @@ def userregister(request): else: form.save() context['registration_complete'] = True + form = UserLoginForm() + context['form'] = form return render_to_response('cfp.html', context) else: context.update(csrf(request)) @@ -145,9 +151,9 @@ def submitcfp(request): context['proposal_submit'] = True sender_name = "SciPy India 2016" sender_email = "scipy@fossee.in" - subject = "SciPy India - Proposal Acknowledgment" + subject = "SciPy India - Proposal Submission Acknowledgment" to = (social_user.email, ) - message = """Dear """+django_user.first_name+""",\n\nThank you for showing interest & submitting a talk at SciPy India 2016 conference. We have received your proposal for the talk titled '"""+request.POST['title']+"""'.\nReviewal of the proposals will start once the CFP closes.\nYou will be notified regarding selection/rejection of your talk via email.\n\nThank You ! \n\nRegards,\nSciPy India 2016,\nFOSSEE - IIT Bombay""" + message = """Dear """+django_user.first_name+""",\n\nThank you for showing interest & submitting a talk/workshop at SciPy India 2016 conference.We have received your proposal (abstract/workshop description)for the talk/workshop titled '"""+request.POST['title']+"""'.\nReviewal of the proposals will start once the CFP closes.\nYou will be notified regarding selection/rejection of your talk via email.\n\nThank You ! \n\nRegards,\nSciPy India 2016,\nFOSSEE - IIT Bombay""" send_mail(subject, message, sender_email, to) return render_to_response('cfp.html', context) else: @@ -299,8 +305,25 @@ def comment_abstract(request, proposal_id = None): sender_email = "scipy@fossee.in" subject = "SciPy India - Comment on Your Proposal" to = (proposal.user.email, ) - message = """Dear """+proposal.user.first_name+""",\n\nThank You ! \n\nRegards,\nSciPy India 2016,\nFOSSEE - IIT Bombay""" - send_mail(subject, message, sender_email, to) + message = """ + Dear {0}, <br><br> + There is a comment posted on your proposal for the talk/workshop titled {1}. + Please <a href = “”>login </a>to link and check the comment and do the needful.<br><br> + Thank You ! <br><br>Regards,<br>SciPy India 2016,<br>FOSSEE - IIT Bombay. + """.format( + proposal.user.first_name, + proposal.title, + ) + email = EmailMultiAlternatives( + subject,'', + sender_email, to, + headers={"Content-type":"text/html;charset=iso-8859-1"} + ) + email.attach_alternative(message, "text/html") + email.send(fail_silently=True) + + # message = """Dear """+proposal.user.first_name+"""There is a comment posted on your proposal for the talk/workshop titled '"""+ proposal.title +"""'.Please login to link and check the comment and do the needful.\n\nThank You ! \n\nRegards,\nSciPy India 2016,\nFOSSEE - IIT Bombay""" + # send_mail(subject, message, sender_email, to) proposal.status="Commented" proposal.save() context['proposal'] = proposal @@ -330,7 +353,7 @@ def status(request, proposal_id= None): sender_email = "scipy@fossee.in" subject = "SciPy India - Proposal Accepted" to = (proposal.user.email, ) - message = """Dear """+proposal.user.first_name+""",\n\nThank You ! \n\nRegards,\nSciPy India 2016,\nFOSSEE - IIT Bombay""" + message = """Dear """+proposal.user.first_name+"""Congratulations your proposal for the talk/workshop titled '"""+ proposal.title+ """'is accepted you shall present the talk/ conduct the workshop at the conference.\n\nYou will be notified regarding instructions of your talk/workshop via email.\n\nThank You ! \n\nRegards,\nSciPy India 2016,\nFOSSEE - IIT Bombay""" send_mail(subject, message, sender_email, to) context.update(csrf(request)) elif 'reject' in request.POST: @@ -340,7 +363,7 @@ def status(request, proposal_id= None): sender_email = "scipy@fossee.in" subject = "SciPy India - Proposal Rejected" to = (proposal.user.email, ) - message = """Dear """+proposal.user.first_name+""",\n\nThank You ! \n\nRegards,\nSciPy India 2016,\nFOSSEE - IIT Bombay""" + message = """Dear """+proposal.user.first_name+"""We regret to inform you that your proposal for the talk/workshop titled '"""+ proposal.title +"""'.\n\nThank You ! \n\nRegards,\nSciPy India 2016,\nFOSSEE - IIT Bombay""" send_mail(subject, message, sender_email, to) context.update(csrf(request)) elif 'resubmit' in request.POST: |