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_itinerary(request): profile = request.user.get_profile() if request.method == "POST": if 'location' in request.POST and 'destination' in request.POST and 'persons' in request.POST and 'transportation' in request.POST: itineraryForm = ItineraryForm({'starting_location': request.POST['location'], 'destination': request.POST['destination'], 'no_of_persons': int(request.POST['persons']), 'transportation_type': int(request.POST['transportation'])}) itineraryForm.save() #Parse days JSON object objs = json.loads(request.POST['days']) #Iterate through days list for obj in objs: dayForm = DayForm(itinerary_id=obj.itinerary_id, day_number=obj.day_number) dayForm.save() #Parse activities JSON object objs = json.loads(request.POST['activities']) #Iterate through activities list for obj in objs: activityForm = ActivityForm(day_id=obj.day_id, activity_type_id=obj.activity_type_id, time_start=obj.time_start, description=obj.description, location_name=obj.location_name, address=obj.address, telephone_number=obj.telephone_number) activityForm.save() #Parse costs JSON object objs = json.loads(request.POST['costs']) #Iterate through costs list for obj in objs: costForm = CostForm(day_id=obj.day_id, cost_type_id=obj.cost_type_id, activity_name=obj.activity_name, activity_cost=obj.activity_cost) costForm.save() #Parse key_locations JSON object objs = json.loads(request.POST['key_locations']) #Iterate through key_locations list for obj in objs: keylocationForm = KeyLocationForm(itinerary_id=obj.itinerary_id, name=obj.name, description=obj.description, longitude=obj.longitude, latitude=obj.latitude) keylocationForm.save() #Parse key_location_photos JSON object objs = json.loads(request.POST['key_location_photos']) #Iterate through key_location_photos list for obj in objs: keylocationphotosForm = KeyLocationPhotoForm(key_location_id=obj.key_location_id, photo_url=obj.photo_url) keylocationphotosForm.save() return render_to_response('user.html', { }, context_instance=RequestContext(request))
def editActivities(request, template_name): if request.method=='POST': actForm=ActivityForm(request.POST) createdActivity=actForm.save(commit=False) createdActivity.save(request) actForm=ActivityForm() activities=Activity.objects.all_with_permission(request) actList=[] for activity in activities: actList.append({ 'id':activity.id, 'activity':activity.name, 'tags':activity.activitytags.all(), 'count':activity.actCount(request), }) return render(request, template_name, {'actList':actList, 'actForm':actForm}) activities=Activity.objects.all_with_permission(request) actList=[] for activity in activities: actList.append({ 'id':activity.id, 'activity':activity.name, 'tags':activity.activitytags.all(), 'count':activity.actCount(request), }) actForm=ActivityForm() return render(request, template_name, {'actList':actList, 'actForm':actForm})
def editActivities(request, template_name): if request.method == 'POST': actForm = ActivityForm(request.POST) createdActivity = actForm.save(commit=False) createdActivity.save(request) actForm = ActivityForm() activities = Activity.objects.all_with_permission(request) actList = [] for activity in activities: actList.append({ 'id': activity.id, 'activity': activity.name, 'tags': activity.activitytags.all(), 'count': activity.actCount(request), }) return render(request, template_name, { 'actList': actList, 'actForm': actForm }) activities = Activity.objects.all_with_permission(request) actList = [] for activity in activities: actList.append({ 'id': activity.id, 'activity': activity.name, 'tags': activity.activitytags.all(), 'count': activity.actCount(request), }) actForm = ActivityForm() return render(request, template_name, { 'actList': actList, 'actForm': actForm })
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)