Example #1
0
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))
Example #2
0
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))
Example #3
0
        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
Example #4
0
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))
Example #5
0
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))
Example #6
0
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))
Example #7
0
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))
Example #8
0
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))
Example #9
0
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))
Example #10
0
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))
Example #11
0
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))