def addtrainess(request): data = {} now = datetime.date(datetime.now()) if UserProfileOPS.is_authorized_inst( request.user.userprofile) and request.site.event_start_date > now > request.site.application_end_date: data['form'] = AddTrainessForm(request=request) data['note'] = "Kursunuza eklemek istediğiniz katilimciyi seçin (E-posta adresine göre)" if "add" in request.POST: data['form'] = AddTrainessForm(request.POST, request=request) if data['form'].is_valid(): tcourserecord = data['form'].save(commit=False) tcourserecord.preference_order = 1 tcourserecord.trainess_approved = True tcourserecord.approved = True tcourserecord.save() notestr = "Bu kullanicinin %s kursu tercihi eğitmen tarafından eklendi." % tcourserecord.course.name tnote = TrainessNote(note=notestr, note_from_profile=request.user.userprofile, note_to_profile=tcourserecord.trainess, site=tcourserecord.course.site, note_date=timezone.now(), label="tercih") tnote.save() data['note'] = "Form kaydedildi. Eklediğiniz katılımcıları 1. tercih listesinde görüntüleyebilirsiniz." log.info("%s kullanicisi %s kullanicisini %s kursuna ekledi." % ( request.user.username, tcourserecord.trainess.user.username, tcourserecord.course.name), extra=request.log_extra) else: data['note'] = "Form aşağıdaki sebeplerden dolayı kaydedilemedi." elif "cancel" in request.POST: return redirect("selectcoursefcp") return render(request, 'training/addtrainess.html', data) else: return redirect("selectcoursefcp")
def addtrainess(request): d = {'clientip': request.META['REMOTE_ADDR'], 'user': request.user} data = getsiteandmenus(request) now = datetime.date(datetime.now()) if UserProfileOPS.is_authorized_inst(request.user.userprofile) and data['site'].event_start_date > now > data[ 'site'].application_end_date: data['form'] = AddTrainessForm(ruser=request.user) data['note'] = "Kursunuza eklemek istediğiniz katilimciyi seçin (E-posta adresine göre)" if "add" in request.POST: data['form'] = AddTrainessForm(request.POST, ruser=request.user) if data['form'].is_valid(): tcourserecord = data['form'].save(commit=False) tcourserecord.preference_order = 1 tcourserecord.trainess_approved = True tcourserecord.approved = True tcourserecord.save() notestr = "Bu kullanicinin %s kursu tercihi eğitmen tarafından eklendi." % tcourserecord.course.name note = TrainessNote(note=notestr, note_from_profile=request.user.userprofile, note_to_profile=tcourserecord.trainess, site=tcourserecord.course.site, note_date=timezone.now(), label="tercih") note.save() data['note'] = "Form kaydedildi. Eklediğiniz katılımcıları 1. tercih listesinde görüntüleyebilirsiniz." log.info("%s kullanicisi %s kullanicisini %s kursuna ekledi." % ( request.user.username, tcourserecord.trainess.user.username, tcourserecord.course.name), extra=d) else: data['note'] = "Form aşağıdaki sebeplerden dolayı kaydedilemedi." elif "cancel" in request.POST: return redirect("controlpanel") return render_to_response('training/addtrainess.html', data, context_instance=RequestContext(request)) else: return redirect("controlpanel")
def cancel_all_prefs(trainess, cancelnote, site, ruser, d): trainess_course_records = TrainessCourseRecord.objects.filter( course__site=site, trainess=trainess) now = datetime.date.today() try: context = { "trainess": trainess, "site": site, "cancelnote": cancelnote } try: context['recipientlist'] = REPORT_RECIPIENT_LIST context['course_prefs'] = trainess_course_records approvedpref = TrainessCourseRecord.objects.filter( course__site=site, trainess=trainess, approved=True, consentemailsent=True) if site.application_end_date < now < site.event_start_date: if approvedpref: context['recipientlist'].extend( approvedpref[0].course.authorized_trainer.all( ).values_list('user__username', flat=True)) send_email_by_operation_name(context, "notice_for_canceled_prefs") context['recipientlist'] = [trainess.user.email] send_email_by_operation_name(context, "notice_for_canceled_prefs") trainess_course_records.delete() except Exception as e: log.error('Error on line {}'.format(sys.exc_info()[-1].tb_lineno), extra=d) log.error(e.message, extra=d) return 0 if site.application_end_date < now: remaining_days = int((site.event_start_date - now).days) notestr = "Kursların başlamasına %d gun kala tüm başvurularını iptal etti." % remaining_days if approvedpref: # Kullanicinin tercihi kursa kaç gün kala kabul görmüş daysbetweenapproveandevent = int( (site.event_start_date - approvedpref[0].instapprovedate).days) notestr += "\nTercihi kursun başlamasına %d gün kala kabul edilmiş." % daysbetweenapproveandevent else: notestr = "Kullanici tercihlerini iptal etti" if cancelnote: notestr += "\nİptal Sebebi:%s" % cancelnote if notestr: note = TrainessNote(note=notestr, note_from_profile=ruser.userprofile, note_to_profile=trainess, site=site, note_date=now, label="sistem") note.save() return 1 except Exception as e: log.error('Error on line {}'.format(sys.exc_info()[-1].tb_lineno), extra=d) log.error(e.message, extra=d) return 2
def karalisteimport(): from userprofile.models import UserProfile, TrainessNote from abkayit.models import Site from datetime import datetime # with open("karaliste.csv.bk") as f: with open("blacklist_with_3_name") as f: blacklisteduser = f.readlines() for user in blacklisteduser: userfields = user.split(",") userobj = None if userfields[1] and userfields[1] != "-": userobj = UserProfile.objects.filter(tckimlikno=userfields[1]) if not userobj and userfields[2] and userfields[2] != "-": userobj = UserProfile.objects.filter( user__username=userfields[2]) if userobj: site = Site.objects.get(name=userfields[3], year=userfields[4]) if site: # trainessnote = TrainessNote(site=site, note_to_profile=userobj[0], # note_from_profile=UserProfile.objects.get( # user__username="******"), label="sistem", # note=userfields[5]) # trainessnote.save() print "*******" print userfields[0] print userobj pass else: print "******* Profil var site yok" print userfields[0] print userobj else: name = userfields[0].split(" ")[0] + " " + userfields[0].split( " ")[1] surname = userfields[0].split(" ")[2] userobj2 = UserProfile.objects.filter(user__first_name=name, user__last_name=surname) if userobj2: site = Site.objects.get(name=userfields[3], year=userfields[4]) if site: trainessnote = TrainessNote( site=site, note_to_profile=userobj2[0], note_from_profile=UserProfile.objects.get( user__username="******"), label="sistem", note=userfields[5]) trainessnote.save() print "*******" print userfields[0] print userobj2 # pass else: print "******* Profil var site yok" print userfields[0] print userobj2
def karalisteimport(): from userprofile.models import UserProfile, TrainessNote from abkayit.models import Site from datetime import datetime # with open("karaliste.csv.bk") as f: with open("blacklist_with_3_name") as f: blacklisteduser = f.readlines() for user in blacklisteduser: userfields = user.split(",") userobj = None if userfields[1] and userfields[1] != "-": userobj = UserProfile.objects.filter(tckimlikno=userfields[1]) if not userobj and userfields[2] and userfields[2] != "-": userobj = UserProfile.objects.filter(user__username=userfields[2]) if userobj: site = Site.objects.get(name=userfields[3], year=userfields[4]) if site: # trainessnote = TrainessNote(site=site, note_to_profile=userobj[0], # note_from_profile=UserProfile.objects.get( # user__username="******"), label="sistem", # note=userfields[5]) # trainessnote.save() print "*******" print userfields[0] print userobj pass else: print "******* Profil var site yok" print userfields[0] print userobj else: name = userfields[0].split(" ")[0] + " " + userfields[0].split(" ")[1] surname = userfields[0].split(" ")[2] userobj2 = UserProfile.objects.filter(user__first_name=name, user__last_name=surname) if userobj2: site = Site.objects.get(name=userfields[3], year=userfields[4]) if site: trainessnote = TrainessNote(site=site, note_to_profile=userobj2[0], note_from_profile=UserProfile.objects.get( user__username="******"), label="sistem", note=userfields[5]) trainessnote.save() print "*******" print userfields[0] print userobj2 # pass else: print "******* Profil var site yok" print userfields[0] print userobj2
def save_model(self, request, obj, form, change): notestr = "" if not change: notestr = "Bu kullanicinin, %s kursu olan %s. tercihi yönetici tarafindan eklendi." % (obj.course.name, obj.preference_order) if "approved" in form.changed_data: if form.cleaned_data['approved']: notestr = "Bu kullanicinin, %s kursu olan %s. tercihi yönetici tarafindan onaylandi." % (obj.course.name, obj.preference_order) if notestr and not TrainessNote.objects.filter(note=notestr): note = TrainessNote(note=notestr, note_from_profile=request.user.userprofile, note_to_profile=obj.trainess, site=obj.course.site, note_date=timezone.now(), label="tercih") note.save() super(TrainessCourseRecordAdmin, self).save_model(request, obj, form, change)
def save_model(self, request, obj, form, change): notestr = "" if not change: notestr = "Bu kullanicinin, %s kursu olan %s. tercihi yönetici tarafindan eklendi." % ( obj.course.name, obj.preference_order) if "approved" in form.changed_data: if form.cleaned_data['approved']: notestr = "Bu kullanicinin, %s kursu olan %s. tercihi yönetici tarafindan onaylandi." % ( obj.course.name, obj.preference_order) if notestr and not TrainessNote.objects.filter(note=notestr): note = TrainessNote(note=notestr, note_from_profile=request.user.userprofile, note_to_profile=obj.trainess, site=obj.course.site, note_date=timezone.now(), label="tercih") note.save() super(TrainessCourseRecordAdmin, self).save_model(request, obj, form, change)
def savenote(request, user, trainessnote): ''' :param request: not kaydetmek için yapılan http istegi :return: isteğin içerisinden not ve hangi kullanıcı için istendiği bilgisi alınır ve not formatı uygunsa kaydeder geriye hata mesajı ya da başarılı mesajı döner ''' if trainessnote and len(trainessnote) <= 500: tnote = TrainessNote(note_to_profile=user.userprofile, note_from_profile=request.user.userprofile, note=trainessnote, site=request.site, label='egitim') alert = "Kursiyer notu başarıyla kaydedildi." tnote.save() else: alert = "Kullanıcı notu en fazla 500 karakter olabilir!!" return alert
def cancel_all_prefs(trainess, cancelnote, site, ruser, d): trainess_course_records = TrainessCourseRecord.objects.filter(course__site__is_active=True, trainess=trainess) now = datetime.date.today() try: context = {"trainess": trainess, "site": site, "cancelnote":cancelnote} try: context['recipientlist'] = REPORT_RECIPIENT_LIST context['course_prefs'] = trainess_course_records approvedpref = TrainessCourseRecord.objects.filter(course__site__is_active=True, trainess=trainess, approved=True, consentemailsent=True) if site.application_end_date < now < site.event_start_date: if approvedpref: context['recipientlist'].extend(approvedpref[0].course.authorized_trainer.all().values_list( 'user__username', flat=True)) send_email_by_operation_name(context, "notice_for_canceled_prefs") context['recipientlist'] = [trainess.user.email] send_email_by_operation_name(context, "notice_for_canceled_prefs") trainess_course_records.delete() except Exception as e: log.error('Error on line {}'.format(sys.exc_info()[-1].tb_lineno), extra=d) log.error(e.message, extra=d) return 0 if site.application_end_date < now: remaining_days = int((site.event_start_date - now).days) notestr = "Kursların başlamasına %d gun kala tüm başvurularını iptal etti." % remaining_days if approvedpref: # Kullanicinin tercihi kursa kaç gün kala kabul görmüş daysbetweenapproveandevent = int((site.event_start_date - approvedpref[0].instapprovedate).days) notestr += "\nTercihi kursun başlamasına %d gün kala kabul edilmiş." % daysbetweenapproveandevent else: notestr = "Kullanici tercihlerini iptal etti" if cancelnote: notestr += "\nİptal Sebebi:%s" % cancelnote if notestr: note = TrainessNote(note=notestr, note_from_profile=ruser.userprofile, note_to_profile=trainess, site=site, note_date=now, label="sistem") note.save() return 1 except Exception as e: log.error('Error on line {}'.format(sys.exc_info()[-1].tb_lineno), extra=d) log.error(e.message, extra=d) return 2
def push_note_to_trainess(note, filename): from userprofile.models import UserProfile, TrainessNote from abkayit.models import Site if note and filename: site = Site.objects.get(is_active=True) fromup = UserProfile.objects.get(user__username="******") with open(filename) as f: userlist = f.readlines() for user in userlist: print user usermail = user.rstrip() up = UserProfile.objects.get(user__username=usermail) # trainessnote = TrainessNote.objects.get(note_to_profile=up) # trainessnote.note = note # trainessnote.save() trainessnote = TrainessNote(site=site, note_to_profile=up, note_from_profile=fromup, label="sistem", note=note) trainessnote.save() else: print "note and filename can not be empty!!"
def control_panel(request, courseid): d = {'clientip': request.META['REMOTE_ADDR'], 'user': request.user} data = getsiteandmenus(request) data['note'] = _("You can accept trainees") now = timezone.now() data["user"] = request.user try: course = Course.objects.get(pk=courseid) data['now'] = now data['dates'] = get_approve_start_end_dates_for_inst(data['site'], d) data['trainess'] = {} data['notesavedsuccessful'] = False if data['dates']: if now <= data['dates'].get(1).end_date: data['trainess'][course] = get_trainess_by_course(course, d) else: data['note'] = _("Consent period is closed") data['trainess'][course] = get_approved_trainess(course, d) if request.user.userprofile in course.authorized_trainer.all(): log.info("Kullanıcı %s kursunda degisiklik yapiyor" % course.name, extra=d) if "send" in request.POST: log.info("kursiyer onay islemi basladi", extra=d) log.info(request.POST, extra=d) data['note'] = applytrainerselections(request.POST, course, data, d) return render_to_response("training/controlpanel.html", data, context_instance=RequestContext(request)) elif request.user.userprofile in course.trainer.all(): data['note'] = "Kursiyerler için not ekleyebilirsiniz." if "savescore" in request.POST: trainessnote = request.POST.get('trainessnotetext') trainessusername = request.POST.get('trainessnoteuser') user = User.objects.get(username=trainessusername) potentialinst = request.POST.get('potential-%s' % user.pk) if trainessnote: tnote = TrainessNote( note_to_profile=user.userprofile, note_from_profile=request.user.userprofile, note=trainessnote, site=data['site'], label='egitim') tnote.save() uprobysite, created = UserProfileBySite.objects.get_or_create( user=user, site=data['site']) if potentialinst == 'on': uprobysite.potentialinstructor = True else: uprobysite.potentialinstructor = False uprobysite.save() data['savednoteuserid'] = user.userprofile.pk data['notesavedsuccessful'] = True data['note'] = "Kursiyer notu başarıyla kaydedildi." return render_to_response( "training/controlpanelforunauthinst.html", data, context_instance=RequestContext(request)) elif not request.user.is_staff: return redirect("applytocourse") return redirect("statistic") except UserProfile.DoesNotExist: return redirect("createprofile")