def profile(request): """Profile page""" print "======" from django.utils.translation import get_language print get_language() full_name = checkFullName(request) contact_id = checkContactID(request) if contact_id: conn = connOOOP() if not conn: error = _( 'Error when you are connecting with our ERP. Try again or cantact us' ) return render_to_response("partner/error.html", locals(), context_instance=RequestContext(request)) contact = conn.ResPartnerContact.get(contact_id) offers = contact.offer_ids site_title = SITE_TITLE title = _('Profile %(full_name)s') % {'full_name': full_name} metadescription = _('Account frontpage of %(site)s') % {'site': SITE_TITLE} return render_to_response("partner/profile.html", locals(), context_instance=RequestContext(request))
def contact(request): """Partner page""" contact_id = checkContactID(request) if not contact_id: error = _( 'Are you a student? Please, contact us. We will create a new role') return render_to_response("partner/error.html", locals(), context_instance=RequestContext(request)) conn = connOOOP() if not conn: error = _( 'Error when you are connecting with our ERP. Try again or cantact us' ) return render_to_response("partner/error.html", locals(), context_instance=RequestContext(request)) contact = conn.ResPartnerContact.get(contact_id) title = _('User Profile') metadescription = _('User profile of %(site)s') % {'site': SITE_TITLE} return render_to_response("partner/contact.html", locals(), context_instance=RequestContext(request))
def link(path): link = path.group().replace('[','').replace('[','').replace(']','').replace(']','').split("|") name_to_search = link[0].strip() conn = connOOOP() mids = conn.WikiWiki.filter(name__ilike=name_to_search) if len(mids)>0: link_str = "<a href='/training/[offer]/wiki/%s' alt='%s'>%s</a>" % (mids[0].alias, name_to_search, name_to_search) else: link_str = name_to_search return link_str
def offer(request, offer): """Training Offer page""" contact_id = checkContactID(request) if not contact_id: error = _("Are you a student? Please, contact us. We will create a new role") return render_to_response("partner/error.html", locals(), context_instance=RequestContext(request)) conn = connOOOP() if not conn: error = _("Error when you are connecting with our ERP. Try again or cantact us") return render_to_response("partner/error.html", locals(), context_instance=RequestContext(request)) full_name = checkFullName(request) contact = conn.ResPartnerContact.get(contact_id) offer = conn.TrainingOffer.filter(alias=offer) if len(offer) == 0: error = _("The page requested could not be found.") return render_to_response("partner/error.html", locals(), context_instance=RequestContext(request)) check_offer = False contact_offers = contact.offer_ids for contact_offer in contact_offers: if contact_offer.id == offer[0].id: check_offer = True if check_offer: offer = offer[0] title = offer.name site_title = SITE_TITLE metadescription = offer.metadescription metakeywords = offer.metakey and offer.metakey or "" url = LIVE_URL courses = [] for course in offer.course_ids: course = conn.TrainingCourse.get(course.course_id.id) courses.append( { "name": course.long_name, "alias": course.alias, "wikis": course.course_wiki_pages_ids, "course": course, } ) return render_to_response("training/offer.html", locals(), context_instance=RequestContext(request)) else: error = _("The page requested could not be found.") return render_to_response("partner/error.html", locals(), context_instance=RequestContext(request))
def wiki(request, offer, wiki): """Training Offer page""" contact_id = checkContactID(request) if not contact_id: error = _("Are you a student? Please, contact us. We will create a new role") return render_to_response("partner/error.html", locals(), context_instance=RequestContext(request)) conn = connOOOP() if not conn: error = _("Error when you are connecting with our ERP. Try again or cantact us") return render_to_response("partner/error.html", locals(), context_instance=RequestContext(request)) full_name = checkFullName(request) contact = conn.ResPartnerContact.get(contact_id) # TODO: check if have rules access view this source offer = conn.TrainingOffer.filter(alias=offer) if len(offer) == 0: error = _("The page requested could not be found.") return render_to_response("partner/error.html", locals(), context_instance=RequestContext(request)) wiki = conn.WikiWiki.filter(alias=wiki) if len(wiki) == 0: error = _("The page requested could not be found.") return render_to_response("partner/error.html", locals(), context_instance=RequestContext(request)) wiki = wiki[0] offer = offer[0] if wiki.text_area: wiki_content = wiki2html(wiki.text_area, True, wiki.id) wiki_content = wiki_content.replace("[offer]", offer.alias) # replace tag [offer] for alias offer else: wiki_content = _("There are not any content available") url = LIVE_URL title = wiki.name site_title = SITE_TITLE metadescription = _("%(title)s wiki") % {"title": wiki.name} metakeywords = wiki.tags or "" courses = [] for course in offer.course_ids: course = conn.TrainingCourse.get(course.course_id.id) courses.append({"name": course.long_name, "alias": course.alias, "wikis": course.course_wiki_pages_ids}) return render_to_response("training/wiki.html", locals(), context_instance=RequestContext(request))
def contact(request): """Partner page""" contact_id = checkContactID(request) if not contact_id: error = _('Are you a student? Please, contact us. We will create a new role') return render_to_response("partner/error.html", locals(), context_instance=RequestContext(request)) conn = connOOOP() if not conn: error = _('Error when you are connecting with our ERP. Try again or cantact us') return render_to_response("partner/error.html", locals(), context_instance=RequestContext(request)) contact = conn.ResPartnerContact.get(contact_id) title = _('User Profile') metadescription = _('User profile of %(site)s') % {'site':SITE_TITLE} return render_to_response("partner/contact.html", locals(), context_instance=RequestContext(request))
def profile(request): """Profile page""" print "======" from django.utils.translation import get_language print get_language() full_name = checkFullName(request) contact_id = checkContactID(request) if contact_id: conn = connOOOP() if not conn: error = _('Error when you are connecting with our ERP. Try again or cantact us') return render_to_response("partner/error.html", locals(), context_instance=RequestContext(request)) contact = conn.ResPartnerContact.get(contact_id) offers = contact.offer_ids site_title = SITE_TITLE title = _('Profile %(full_name)s') % {'full_name':full_name} metadescription = _('Account frontpage of %(site)s') % {'site':SITE_TITLE} return render_to_response("partner/profile.html", locals(), context_instance=RequestContext(request))
def index(request): """Training Index page""" contact_id = checkContactID(request) if not contact_id: error = _("Are you a student? Please, contact us. We will create a new role") return render_to_response("partner/error.html", locals(), context_instance=RequestContext(request)) conn = connOOOP() if not conn: error = _("Error when you are connecting with our ERP. Try again or cantact us") return render_to_response("partner/error.html", locals(), context_instance=RequestContext(request)) full_name = checkFullName(request) contact = conn.ResPartnerContact.get(contact_id) offers = contact.offer_ids site_title = SITE_TITLE title = _("My offers :: %(full_name)s") % {"full_name": full_name} metadescription = _("Offers Frontpage of %(full_name)s") % {"full_name": full_name} return render_to_response("training/index.html", locals(), context_instance=RequestContext(request))
def register(request): """Registration page. If exists session, redirect profile""" if request.user.is_authenticated(): #redirect profile return HttpResponseRedirect("/partner/profile/") title = _('Create an Account') metadescription = _('Create an Account of %(site)s') % {'site':SITE_TITLE} if request.method == "POST": message = [] users = '' emails = '' form = UserCreationForm(request.POST) data = request.POST.copy() username = data['username'] email = data['email'] password = data['password1'] name = data['name'] vat_code = data['vat_code'] vat = data['vat'] street = data['street'] zip = data['zip'] city = data['city'] country = data['country'] if data['password1'] == data['password2']: if form.is_valid(): if len(username) < USER_LENGHT: msg = _('Username is short. Minimum %(size)s characters') % {'size': USER_LENGHT} message.append(msg) if len(password) < KEY_LENGHT: msg = _('Password is short. Minimum %(size)s characters') % {'size': KEY_LENGHT} message.append(msg) if is_valid_email(email): # check if user not exist users = User.objects.filter(username__exact=username) emails = User.objects.filter(email__exact=email) else: msg = _('Sorry. This email is not valid. Try again') message.append(msg) check_captcha = captcha.submit(request.POST['recaptcha_challenge_field'], request.POST['recaptcha_response_field'], RECAPTCHA_PRIVATE_KEY, request.META['REMOTE_ADDR']) if check_captcha.is_valid is False: # captcha not valid msg = _('Error with captcha number. Copy the same number.') message.append(msg) if users: msg = _('Sorry. This user already exists. Use another username') message.append(msg) if emails: msg = _('Sorry. This email already exists. Use another email or remember password') message.append(msg) #check if this vat exists ERP if not error: conn = connOOOP() if not conn: error = _('Error when you are connecting with our ERP. Try again or cantact us') return render_to_response("partner/error.html", locals(), context_instance=RequestContext(request)) partner = conn.ResPartner.filter(vat__ilike=data['vat_code']+data['vat']) if len(partner) > 0: msg = _('Sorry. This VAT already exists in our ERP. Contact us to create a new user') message.append(msg) #check if this vat valid if not error: vat = data['vat_code']+data['vat'] check_vat = conn_webservice('res.partner', 'dj_check_vat', [vat, OERP_SALE]) if not check_vat: msg = _('Vat not valid. Check if the vat is correct') message.append(msg) #create new partner and user if not error: # create partner partner = conn.ResPartner.new() partner.name = data['name'] partner.vat = vat partner.dj_username = data['username'] partner.dj_email = data['email'] partner_id = partner.save() # create address partner address_types = ['contact','invoice','delivery'] for address_type in address_types: address = conn.ResPartnerAddress.new() address.name = data['name'] address.partner_id = conn.ResPartner.get(partner_id) address.type = address_type address.street = data['street'] address.zip = data['zip'] address.city = data['city'] address.country_id = conn.ResCountry.get(data['country']) address.email = data['email'] address_id = address.save() # create user # split name: first_name + last name name = data['name'].split(' ') if len(name) > 1: first_name = name[0] del name[0] last_name = " ".join(name) else: first_name = '' last_name = data['name'] user = User.objects.create_user(username, email, password) user.first_name = first_name user.last_name = last_name user.is_staff = False user.save() # create authProfile authProfile = AuthProfile(user=user,partner_id=partner_id) authProfile.save() # send email subject = _('New user is added - %(name)s') % {'name':SITE_TITLE} body = _("This email is generated automatically from %(site)s\n\nUsername: %(username)s\nPassword: %(password)s\n\n%(live_url)s\n\nPlease, do not answer this email") % {'site':SITE_TITLE,'username':username,'password':password,'live_url':LIVE_URL} email = EmailMessage(subject, body, to=[email]) email.send() # authentification / login user user = authenticate(username=username, password=password) auth_login(request, user) return HttpResponseRedirect("/partner/profile/") else: msg = _("Sorry. Error form values. Try again") message.append(msg) else: msg = _("Sorry. Passwords do not match. Try again") message.append(msg) form = UserCreationForm() html_captcha = captcha.displayhtml(RECAPTCHA_PUB_KEY) vat_code = VAT_CODE countries = ResCountry.objects.all() country_default = COUNTRY_DEFAULT return render_to_response("partner/register.html", locals(), context_instance=RequestContext(request))
def register(request): """Registration page. If exists session, redirect profile""" if request.user.is_authenticated(): #redirect profile return HttpResponseRedirect("/partner/profile/") title = _('Create an Account') metadescription = _('Create an Account of %(site)s') % {'site': SITE_TITLE} if request.method == "POST": message = [] users = '' emails = '' form = UserCreationForm(request.POST) data = request.POST.copy() username = data['username'] email = data['email'] password = data['password1'] name = data['name'] vat_code = data['vat_code'] vat = data['vat'] street = data['street'] zip = data['zip'] city = data['city'] country = data['country'] if data['password1'] == data['password2']: if form.is_valid(): if len(username) < USER_LENGHT: msg = _( 'Username is short. Minimum %(size)s characters') % { 'size': USER_LENGHT } message.append(msg) if len(password) < KEY_LENGHT: msg = _( 'Password is short. Minimum %(size)s characters') % { 'size': KEY_LENGHT } message.append(msg) if is_valid_email(email): # check if user not exist users = User.objects.filter(username__exact=username) emails = User.objects.filter(email__exact=email) else: msg = _('Sorry. This email is not valid. Try again') message.append(msg) check_captcha = captcha.submit( request.POST['recaptcha_challenge_field'], request.POST['recaptcha_response_field'], RECAPTCHA_PRIVATE_KEY, request.META['REMOTE_ADDR']) if check_captcha.is_valid is False: # captcha not valid msg = _('Error with captcha number. Copy the same number.') message.append(msg) if users: msg = _( 'Sorry. This user already exists. Use another username' ) message.append(msg) if emails: msg = _( 'Sorry. This email already exists. Use another email or remember password' ) message.append(msg) #check if this vat exists ERP if not error: conn = connOOOP() if not conn: error = _( 'Error when you are connecting with our ERP. Try again or cantact us' ) return render_to_response( "partner/error.html", locals(), context_instance=RequestContext(request)) partner = conn.ResPartner.filter( vat__ilike=data['vat_code'] + data['vat']) if len(partner) > 0: msg = _( 'Sorry. This VAT already exists in our ERP. Contact us to create a new user' ) message.append(msg) #check if this vat valid if not error: vat = data['vat_code'] + data['vat'] check_vat = conn_webservice('res.partner', 'dj_check_vat', [vat, OERP_SALE]) if not check_vat: msg = _('Vat not valid. Check if the vat is correct') message.append(msg) #create new partner and user if not error: # create partner partner = conn.ResPartner.new() partner.name = data['name'] partner.vat = vat partner.dj_username = data['username'] partner.dj_email = data['email'] partner_id = partner.save() # create address partner address_types = ['contact', 'invoice', 'delivery'] for address_type in address_types: address = conn.ResPartnerAddress.new() address.name = data['name'] address.partner_id = conn.ResPartner.get(partner_id) address.type = address_type address.street = data['street'] address.zip = data['zip'] address.city = data['city'] address.country_id = conn.ResCountry.get( data['country']) address.email = data['email'] address_id = address.save() # create user # split name: first_name + last name name = data['name'].split(' ') if len(name) > 1: first_name = name[0] del name[0] last_name = " ".join(name) else: first_name = '' last_name = data['name'] user = User.objects.create_user(username, email, password) user.first_name = first_name user.last_name = last_name user.is_staff = False user.save() # create authProfile authProfile = AuthProfile(user=user, partner_id=partner_id) authProfile.save() # send email subject = _('New user is added - %(name)s') % { 'name': SITE_TITLE } body = _( "This email is generated automatically from %(site)s\n\nUsername: %(username)s\nPassword: %(password)s\n\n%(live_url)s\n\nPlease, do not answer this email" ) % { 'site': SITE_TITLE, 'username': username, 'password': password, 'live_url': LIVE_URL } email = EmailMessage(subject, body, to=[email]) email.send() # authentification / login user user = authenticate(username=username, password=password) auth_login(request, user) return HttpResponseRedirect("/partner/profile/") else: msg = _("Sorry. Error form values. Try again") message.append(msg) else: msg = _("Sorry. Passwords do not match. Try again") message.append(msg) form = UserCreationForm() html_captcha = captcha.displayhtml(RECAPTCHA_PUB_KEY) vat_code = VAT_CODE countries = ResCountry.objects.all() country_default = COUNTRY_DEFAULT return render_to_response("partner/register.html", locals(), context_instance=RequestContext(request))
def exam(request, offer, course, exam): """Training Exam/Questionarie page """ contact_id = checkContactID(request) if not contact_id: error = _("Are you a student? Please, contact us. We will create a new role") return render_to_response("partner/error.html", locals(), context_instance=RequestContext(request)) conn = connOOOP() if not conn: error = _("Error when you are connecting with our ERP. Try again or cantact us") return render_to_response("partner/error.html", locals(), context_instance=RequestContext(request)) full_name = checkFullName(request) contact = conn.ResPartnerContact.get(contact_id) # TODO: check if have rules access view this source offer = conn.TrainingOffer.filter(alias=offer) if len(offer) == 0: error = _("The page requested could not be found.") return render_to_response("partner/error.html", locals(), context_instance=RequestContext(request)) course = conn.TrainingCourse.filter(alias=course) if len(course) == 0: error = _("The page requested could not be found.") return render_to_response("partner/error.html", locals(), context_instance=RequestContext(request)) exam = conn.TrainingExamQuestionnaire.filter(alias=exam) if len(exam) == 0: error = _("The page requested could not be found.") return render_to_response("partner/error.html", locals(), context_instance=RequestContext(request)) offer = offer[0] course = course[0] exam = exam[0] # check if contact make this exam make_exam = True for part in conn.TrainingParticipation.filter(contact_id=contact_id): if course.id == part.seance_id.course_id.id: participation = part if part.questionnaire_id: make_exam = False url = LIVE_URL title = exam.name site_title = SITE_TITLE metadescription = exam.metadescription or _("Questionaire %(name)s") % {"name": exam.name} metakeywords = exam.metakey or "" path_info = request.path_info.split("/") if "questionarie" in path_info: # questionaire page # list questions questions_questions = conn.TrainingExamQuestionnaireQuestion.filter(questionnaire_id=exam.id) questions = [] for question in questions_questions: questions.append(question.question_id) return render_to_response("training/questionarie.html", locals(), context_instance=RequestContext(request)) if "answer" in path_info: # questionaire page if request.method == "POST": values = request.POST if len(values) > 0: # add participation questionaire participation.questionnaire_id = exam participation.result_received = True participation.save() make_exam = False # reload participation participation_id = participation.id del participation i = 1 for k, v in values.iteritems(): answer_values = {} value = k.split("_") if len(value) > 1: answer_values["participation_id"] = participation_id if value[1][-2:] == "[]": answer_values["question_id"] = value[1][:-2] else: answer_values["question_id"] = value[1] if value[0] == "qcm": answer_values["response_qcm_ids"] = [v] if value[0] == "qcu": answer_values["response_qcu_ids"] = [v] if value[0] == "yesno": answer_values["response_yesno"] = v if value[0] == "plain": answer_values["response_plain"] = v answer_values["sequence"] = i i = i + 1 # create participation line questions answer_exam = conn_webservice("training.participation.line", "question_answer", [answer_values]) participation = conn.TrainingParticipation.get(participation_id) # reload participation return render_to_response("training/exam.html", locals(), context_instance=RequestContext(request))