def activity(request, department, class_number, year, semester, section): user = request.user c = getClassObject(department, class_number, year, semester, section, user) #Gets the list of students for want to receive email notifications for graded activities emailStudents = UserProfile.objects.filter(classlist__cid=c.cid, setting__email_activity=1) activities = Activity.objects.filter(cid=c.cid).order_by('due_date') if request.method == 'POST': activity = Activity(cid=c, released=0) form = ActivityForm(request.POST, request.FILES, instance=activity) if form.is_valid(): if form.cleaned_data['status'] == 2: form.cleaned_data["released"] = 1 else: form.cleaned_data["released"] = 0 form.save() #Create a calendar event for each activity created label = getClassLabel(user, c.cid, department, class_number) event_name = form.cleaned_data['activity_name'] date = form.cleaned_data['due_date'] description = form.cleaned_data['description'] event = Event(uid=request.user.userprofile, cid=c.cid, lid=label, event_name=event_name, date=date, description=description) event.save() #If grade has been released by instructor/TA if form.cleaned_data['status'] == 2: #Generate+send email announcement subject = c.department+' %s' %c.class_number+': Grade released for '+form.cleaned_data['activity_name'] from_email = '*****@*****.**' to = [] for student in emailStudents: to.append(student.user.email) html_content = render_to_string('instructor/emailActivityTemplate.html', {'class': c, 'activity': activity,}) text_content = strip_tags(html_content) msg = EmailMultiAlternatives(subject, text_content, from_email, to) msg.attach_alternative(html_content, "text/html") msg.send() #Created announcement for it title = 'Grade released for '+form.cleaned_data['activity_name'] content = "A new grade was released for "+form.cleaned_data['activity_name'] act = Announcement(uid=user.userprofile, title=title, content=content, date_posted=datetime.datetime.now(), cid=c, send_email=0, was_updated=0, updated_by=user.userprofile, updated_on=datetime.datetime.now()) act.save() return HttpResponseRedirect("") else: form = ActivityForm() content = getContent(c, user) content['form'] = form content['activities'] = activities content['update'] = 0 return render_to_response('instructor/activity.html', content, context_instance=RequestContext(request))
def updateActivity(request, department, class_number, year, semester, section, aid): user = request.user c = getClassObject(department, class_number, year, semester, section, user) a = get_object_or_404(Activity, pk=aid) #Gets all students who wish to receive email when assignment is released emailStudents = UserProfile.objects.filter(classlist__cid=c.cid, setting__email_activity=1) activities = Activity.objects.filter(cid=c.cid) if request.method == 'POST': activity = Activity(cid=c, aid=aid, released=0) form = ActivityForm(request.POST, request.FILES, instance=activity) if form.is_valid(): form.save() if form.cleaned_data['status'] == 2: rel = 1 else: rel = 0 Activity.objects.filter(aid=a.aid).update(released=rel) #Update the calendar event for the activity event = Event.objects.get(uid=request.user.userprofile, cid=c.cid, event_name=a.activity_name) event.date = form.cleaned_data['due_date'] event.description = form.cleaned_data['description'] event.name = form.cleaned_data['activity_name'] event.save() if form.cleaned_data['status'] == 2 and a.released == 0: #Generate+send email announcement subject = c.department+' %s' %c.class_number+': Grade released for '+form.cleaned_data['activity_name'] from_email = '*****@*****.**' to = [] for student in emailStudents: to.append(student.user.email) html_content = render_to_string('instructor/emailActivityTemplate.html', {'class': c, 'act_name': form.cleaned_data['activity_name'], 'act_aid': aid}) text_content = strip_tags(html_content) msg = EmailMultiAlternatives(subject, text_content, from_email, to) msg.attach_alternative(html_content, "text/html") msg.send() #Created announcement for it title = 'Grade released for '+form.cleaned_data['activity_name'] content = "A new grade was released for "+form.cleaned_data['activity_name'] act = Announcement(uid=user.userprofile, title=title, content=content, date_posted=datetime.datetime.now(), cid=c, send_email=0, was_updated=0, updated_by=user.userprofile, updated_on=datetime.datetime.now()) act.save() url = getClassUrl(c) + 'instructor/activity' return HttpResponseRedirect(url) else: tmp = Activity.objects.get(aid=aid) form = ActivityForm(initial={'activity_name': tmp.activity_name, 'out_of': tmp.out_of, 'worth': tmp.worth, 'description': tmp.description, 'submission_file_type': tmp.submission_file_type, 'description_doc': tmp.description_doc, 'due_date': tmp.due_date, 'status': tmp.status, }) content = getContent(c, user) content['form'] = form content['activities'] = activities content['update'] = 1 return render_to_response('instructor/activity.html', content, context_instance=RequestContext(request))
def create_Activity(request): if request.is_ajax(): search_term = request.POST['yelp_term'] # lat = request.session['cur_lat'] # lng = request.session['cur_lng'] lat = '42.056459' lng = '-87.675267' search_result = yelp_api.search_location(lat,lng,search_term) request.session['search_result'] = search_result return HttpResponse(json.dumps(search_result), content_type="application/json") elif request.method == 'POST': actForm = ActivityForm(request.POST) locForm = LocationForm(request.POST) # check for valid location if locForm.is_valid(): street = request.POST.get('address') city = request.POST.get('city') state = request.POST.get('state') # get lat and long addr_str = street + ", " + city + ", " + state r = geocode(addr_str) lat = r['lat'] lng = r['lng'] m = locForm.save(commit=False) m.longitude = lng m.latitude = lat loc_name = m.location_name # get yelp rating and image rating,img_url = yelp_api.get_yelp_data(loc_name,lng,lat) print rating if rating == -1: m.location_rate = 0.0 else: m.location_rate = rating if img_url == -1: m.location_img_url = "http://www.mountainmansocialmedia.com/_site/wp-content/themes/juiced/img/thumbnail-default.jpg" else: m.location_img_url = img_url location_obj = locForm.save() date = request.POST.get('date') start_time = request.POST.get('start_time') end_time = request.POST.get('end_time') name = request.POST.get('activity_name') max_num = request.POST.get('max_num_attendees') min_num = request.POST.get('min_num_attendees') skill = request.POST.get('skill_level') dt = datetime.strptime(date, "%m/%d/%Y") st = datetime.strptime(convert_Time(start_time), "%H:%M:%S") et = datetime.strptime(convert_Time(end_time), "%H:%M:%S") owner = request.user.onthemoveuser request.GET = request.GET.copy() request.GET['date'] = dt request.GET['start_time'] = st request.GET['end_time'] = et request.GET['activity_name'] = name request.GET['max_num_attendees'] = max_num request.GET['min_num_attendees'] = min_num request.GET['skill_level'] = skill request.GET['location_id'] = location_obj request.GET['owner_id'] = owner actForm1 = ActivityForm(request.GET) if actForm1.is_valid(): x=actForm1.save(commit=False) x.location_id = location_obj x.owner_id = owner y = actForm1.save() print "here" return HttpResponseRedirect(reverse("Activities:details",args=(y.pk,))) else: actForm = ActivityForm() locForm = LocationForm() context = {} context.update(csrf(request)) context['act_form'] = actForm context['loc_form'] = locForm context['path'] = request.path return render(request,"Activities/createActivity.html", context)