Exemplo n.º 1
0
def get_permissions(user):
    permission_dict = {
        'can_edit_corporate': Permissions.can_edit_corporate_page(user),
        'can_add_contact': Permissions.can_add_corporate_contact(user),
        'can_edit_contacts': Permissions.can_edit_corporate_page(user),
        'can_add_company': Permissions.can_add_company(user),
    }
    return permission_dict
Exemplo n.º 2
0
def get_permissions(user):
    permission_dict = {
        'can_edit_corporate': Permissions.can_edit_corporate_page(user),
        'can_add_contact': Permissions.can_add_corporate_contact(user),
        'can_edit_contacts': Permissions.can_edit_corporate_page(user),
        'can_add_company': Permissions.can_add_company(user),
    }
    return permission_dict
Exemplo n.º 3
0
def edit_company_contacts(request):
    if not Permissions.can_edit_corporate_page(request.user):
        request.session['error_message'] = 'You are not authorized to add company contacts'
        return redirect('corporate:index')
    prefix = 'corporate_page'

    formset = ContactFormSet(request.POST or None,prefix=prefix,initial=CompanyContact.get_contacts())
    if request.method == 'POST':
        if formset.is_valid():
            overdetermined = formset.save()
            if overdetermined:
                request.session['warning_message'] = 'Name, email, phone, bio, and chapter are ignored when profile provided.'  
            request.session['success_message'] = 'Corporate contact successfully added.'
            return redirect('corporate:index')
        else:
            request.session['error_message'] = FORM_ERROR
    context_dict = {
        'formset': formset,
        'subnav': 'index',
        'prefix': prefix,
        'has_files': False,
        'submit_name': 'Update company contacts',
        'back_button': {'link': reverse('corporate:index'),
                        'text': 'To Corporate Page'},
        'form_title': 'Edit company contacts',
        'help_text': ('Edit the list of company contacts. '
                      'Contact info is ignored if a profile is provided.'),
        'can_add_row':True,
        'base': 'corporate/base_corporate.html',
        }
    context_dict.update(get_common_context(request))
    context_dict.update(get_permissions(request.user))
    context = RequestContext(request, context_dict)
    template = loader.get_template('generic_formset.html')
    return HttpResponse(template.render(context))
Exemplo n.º 4
0
def view_and_send_email(request):
    if not Permissions.can_edit_corporate_page(request.user):
        request.session['error_message'] = 'You are not authorized to email companies'
        return redirect('corporate:index')
    existing_email = CorporateEmail.objects.filter(active=True)
    if existing_email.exists():
        existing_email = existing_email[0]
    else:
        request.session['error_message'] = 'No email specified'
        return redirect('corporate:index')
    contacts = CompanyContact.get_contacts(gets_email=True)
    context_dict = {
        'contacts': contacts,
        'email':existing_email.preview_email(),
        'mig_alum_email':existing_email.preview_email(mig_alum=True),
        'other_alum_email':existing_email.preview_email(other_alum=True),
        'previous_contact_email':existing_email.preview_email(previous_contact=True),
        'personal_contact_email':existing_email.preview_email(personal_contact=True),
        'subnav': 'index',
        'base': 'corporate/base_corporate.html',
        }
    context_dict.update(get_common_context(request))
    context_dict.update(get_permissions(request.user))
    context = RequestContext(request, context_dict)
    template = loader.get_template('corporate/view_and_send_email.html')
    return HttpResponse(template.render(context))
Exemplo n.º 5
0
def update_corporate_email(request):
    if not Permissions.can_edit_corporate_page(request.user):
        request.session[
            'error_message'] = 'You are not authorized to email companies'
        return redirect('corporate:index')
    prefix = 'corporate_email'
    existing_email = CorporateEmail.objects.filter(active=True)
    UpdateEmailForm = modelform_factory(CorporateEmail, exclude=[])
    if existing_email.exists():
        form = UpdateEmailForm(request.POST or None,
                               prefix=prefix,
                               instance=existing_email[0])
    else:
        form = UpdateEmailForm(request.POST or None, prefix=prefix)

    if request.method == 'POST':
        if form.is_valid():
            instance = form.save(commit=False)
            instance.id = None
            instance.pk = None
            instance.save()
            if existing_email.exists():
                ex = existing_email[0]
                ex.active = False
                ex.save()
            request.session[
                'success_message'] = 'Company email successfully updated.'
            return redirect('corporate:index')
        else:
            request.session['error_message'] = FORM_ERROR

    context_dict = {
        'form':
        form,
        'subnav':
        'index',
        'prefix':
        prefix,
        'has_files':
        False,
        'submit_name':
        'Update corporate email',
        'back_button': {
            'link': reverse('corporate:index'),
            'text': 'To Corporate Page'
        },
        'form_title':
        'Update corporate email',
        'help_text': ('Update the email sent to companies to encourage their'
                      'participation in TBP corporate events.\n\nUse '
                      '{{company_name}} in the subject line as a placeholder'
                      'and {{extra_text}} in the body as a placeholder for the'
                      'extra text to members or personal contacts.'),
        'base':
        'corporate/base_corporate.html',
    }
    context_dict.update(get_common_context(request))
    context_dict.update(get_permissions(request.user))
    template = loader.get_template('generic_form.html')
    return HttpResponse(template.render(context_dict, request))
Exemplo n.º 6
0
def send_corporate_email(request):
    if not Permissions.can_edit_corporate_page(request.user):
        request.session[
            'error_message'] = 'You are not authorized to email companies'
        return {
            'fragments': {
                '#ajax-message':
                r'''<div id="ajax-message" class="alert alert-danger">
    <button type="button" class="close" data-dismiss="alert">&times</button>
    <strong>Error:</strong>%s</div>''' % (request.session.pop('error_message'))
            }
        }
    existing_email = CorporateEmail.objects.filter(active=True)
    if existing_email.exists():
        existing_email[0].send_corporate_email()
        request.session['success_message'] = 'Companies successfully emailed'
        return {
            'fragments': {
                '#ajax-message':
                r'''<div id="ajax-message" class="alert alert-success">
    <button type="button" class="close" data-dismiss="alert">&times</button>
    <strong>Success:</strong>%s</div>''' %
                (request.session.pop('success_message'))
            }
        }
    else:
        request.session['error_message'] = 'Company email text does not exist'
        return {
            'fragments': {
                '#ajax-message':
                r'''<div id="ajax-message" class="alert alert-danger">
    <button type="button" class="close" data-dismiss="alert">&times</button>
    <strong>Error:</strong>%s</div>''' % (request.session.pop('error_message'))
            }
        }
Exemplo n.º 7
0
def view_and_send_email(request):
    if not Permissions.can_edit_corporate_page(request.user):
        request.session[
            'error_message'] = 'You are not authorized to email companies'
        return redirect('corporate:index')
    existing_email = CorporateEmail.objects.filter(active=True)
    if existing_email.exists():
        existing_email = existing_email[0]
    else:
        request.session['error_message'] = 'No email specified'
        return redirect('corporate:index')
    contacts = CompanyContact.get_contacts(gets_email=True)
    context_dict = {
        'contacts':
        contacts,
        'email':
        existing_email.preview_email(),
        'mig_alum_email':
        existing_email.preview_email(mig_alum=True),
        'other_alum_email':
        existing_email.preview_email(other_alum=True),
        'previous_contact_email':
        existing_email.preview_email(previous_contact=True),
        'personal_contact_email':
        existing_email.preview_email(personal_contact=True),
        'subnav':
        'index',
        'base':
        'corporate/base_corporate.html',
    }
    context_dict.update(get_common_context(request))
    context_dict.update(get_permissions(request.user))
    template = loader.get_template('corporate/view_and_send_email.html')
    return HttpResponse(template.render(context_dict, request))
Exemplo n.º 8
0
def update_corporate_page(request):
    if not Permissions.can_edit_corporate_page(request.user):
        request.session['error_message'] = 'You are not authorized to edit the corporate page'
        return redirect('corporate:index')
    prefix = 'corporate_page'
    CorporateTextForm = modelformset_factory(CorporateTextField,
                                             extra=1, exclude=[])
    formset = CorporateTextForm(request.POST or None,prefix=prefix)
    if request.method == 'POST':
        if formset.is_valid():
            instances = formset.save()
            request.session['success_message'] = 'Corporate page successfully updated.'
            return redirect('corporate:index')
        else:
            request.session['error_message'] = FORM_ERROR
    context_dict = {
        'formset': formset,
        'subnav': 'index',
        'prefix': prefix,
        'has_files': False,
        'submit_name': 'Update Corporate Page',
        'back_button': {'link': reverse('corporate:index'),
                        'text': 'To Corporate Page'},
        'form_title': 'Edit Corporate Page Text',
        'help_text': ('The text shown on the corporate main page. This text '
                      'uses markdown syntax.'),
        'can_add_row': False,
        'base': 'corporate/base_corporate.html',
        }
    context_dict.update(get_common_context(request))
    context_dict.update(get_permissions(request.user))
    context = RequestContext(request, context_dict)
    template = loader.get_template('generic_formset.html')
    return HttpResponse(template.render(context))
Exemplo n.º 9
0
def update_resource_guide(request):
    if not Permissions.can_edit_corporate_page(request.user):
        request.session[
            'error_message'] = 'You are not authorized to edit the corporate page'
        return redirect('corporate:index')
    ResourceGuideForm = modelform_factory(CorporateResourceGuide,
                                          exclude=('active', ))
    if request.method == 'POST':
        form = ResourceGuideForm(request.POST, request.FILES)
        if form.is_valid():
            instance = form.save(commit=False)
            previously_active_guides = CorporateResourceGuide.objects.filter(
                active=True)
            for guide in previously_active_guides:
                guide.active = False
                guide.save()
            instance.active = True
            instance.save()
            update_resume_zips()
            request.session[
                'success_message'] = 'Corporate resource guide successfully updated.'
            return redirect('corporate:index')
        else:
            request.session['error_message'] = FORM_ERROR
    else:
        form = ResourceGuideForm()
    context_dict = {
        'form':
        form,
        'subnav':
        'index',
        'has_files':
        True,
        'submit_name':
        'Update Corporate Resource Guide',
        'back_button': {
            'link': reverse('corporate:index'),
            'text': 'To Corporate Page'
        },
        'form_title':
        'Edit Corporate Resource Guide',
        'help_text': ('This guide is inluded in the resume zip files. Update '
                      'it when the information (or the officer) changes.'),
        'base':
        'corporate/base_corporate.html',
    }
    context_dict.update(get_common_context(request))
    context_dict.update(get_permissions(request.user))
    template = loader.get_template('generic_form.html')
    return HttpResponse(template.render(context_dict, request))
Exemplo n.º 10
0
def view_company_contacts(request):
    if not Permissions.can_edit_corporate_page(request.user):
        request.session['error_message'] = 'You are not authorized to view company contacts'
        return redirect('corporate:index')
   
    context_dict = {
        'contacts': CompanyContact.get_contacts(),
        'subnav': 'index',
        'base': 'corporate/base_corporate.html',
        }
    context_dict.update(get_common_context(request))
    context_dict.update(get_permissions(request.user))
    template = loader.get_template('corporate/contacts_table.html')
    return HttpResponse(template.render(context_dict, request))
Exemplo n.º 11
0
def edit_company_contacts(request):
    if not Permissions.can_edit_corporate_page(request.user):
        request.session[
            'error_message'] = 'You are not authorized to add company contacts'
        return redirect('corporate:index')
    prefix = 'corporate_page'

    formset = ContactFormSet(request.POST or None,
                             prefix=prefix,
                             initial=CompanyContact.get_contacts())
    if request.method == 'POST':
        if formset.is_valid():
            overdetermined = formset.save()
            if overdetermined:
                request.session[
                    'warning_message'] = 'Name, email, phone, bio, and chapter are ignored when profile provided.'
            request.session[
                'success_message'] = 'Corporate contact successfully added.'
            return redirect('corporate:index')
        else:
            request.session['error_message'] = FORM_ERROR
    context_dict = {
        'formset':
        formset,
        'subnav':
        'index',
        'prefix':
        prefix,
        'has_files':
        False,
        'submit_name':
        'Update company contacts',
        'back_button': {
            'link': reverse('corporate:index'),
            'text': 'To Corporate Page'
        },
        'form_title':
        'Edit company contacts',
        'help_text': ('Edit the list of company contacts. '
                      'Contact info is ignored if a profile is provided.'),
        'can_add_row':
        True,
        'base':
        'corporate/base_corporate.html',
    }
    context_dict.update(get_common_context(request))
    context_dict.update(get_permissions(request.user))
    template = loader.get_template('generic_formset.html')
    return HttpResponse(template.render(context_dict, request))
Exemplo n.º 12
0
def view_company_contacts(request):
    if not Permissions.can_edit_corporate_page(request.user):
        request.session[
            'error_message'] = 'You are not authorized to view company contacts'
        return redirect('corporate:index')

    context_dict = {
        'contacts': CompanyContact.get_contacts(),
        'subnav': 'index',
        'base': 'corporate/base_corporate.html',
    }
    context_dict.update(get_common_context(request))
    context_dict.update(get_permissions(request.user))
    template = loader.get_template('corporate/contacts_table.html')
    return HttpResponse(template.render(context_dict, request))
Exemplo n.º 13
0
def update_corporate_email(request):
    if not Permissions.can_edit_corporate_page(request.user):
        request.session['error_message'] = 'You are not authorized to email companies'
        return redirect('corporate:index')
    prefix = 'corporate_email'
    existing_email = CorporateEmail.objects.filter(active=True)
    UpdateEmailForm = modelform_factory(CorporateEmail)
    if existing_email.exists():
        form = UpdateEmailForm(request.POST or None,prefix=prefix,instance=existing_email[0])
    else:
        form = UpdateEmailForm(request.POST or None,prefix=prefix)
        
    if request.method == 'POST':
        if form.is_valid():
            instance = form.save(commit=False)
            instance.id=None
            instance.pk=None
            instance.save()
            if existing_email.exists():
                ex=existing_email[0]
                ex.active=False
                ex.save()
            request.session['success_message'] = 'Company email successfully updated.'
            return redirect('corporate:index')
        else:
            request.session['error_message'] = FORM_ERROR

    context_dict = {
        'form': form,
        'subnav': 'index',
        'prefix': prefix,
        'has_files': False,
        'submit_name': 'Update corporate email',
        'back_button': {'link': reverse('corporate:index'),
                        'text': 'To Corporate Page'},
        'form_title': 'Update corporate email',
        'help_text': ('Update the email sent to companies to encourage their'
                      'participation in TBP corporate events.\n\nUse '
                      '{{company_name}} in the subject line as a placeholder'
                      'and {{extra_text}} in the body as a placeholder for the'
                      'extra text to members or personal contacts.'),
        'base': 'corporate/base_corporate.html',
        }
    context_dict.update(get_common_context(request))
    context_dict.update(get_permissions(request.user))
    context = RequestContext(request, context_dict)
    template = loader.get_template('generic_form.html')
    return HttpResponse(template.render(context))
Exemplo n.º 14
0
def update_corporate_page(request):
    if not Permissions.can_edit_corporate_page(request.user):
        request.session[
            'error_message'] = 'You are not authorized to edit the corporate page'
        return redirect('corporate:index')
    prefix = 'corporate_page'
    CorporateTextForm = modelformset_factory(CorporateTextField,
                                             extra=1,
                                             exclude=[])
    formset = CorporateTextForm(request.POST or None, prefix=prefix)
    if request.method == 'POST':
        if formset.is_valid():
            instances = formset.save()
            request.session[
                'success_message'] = 'Corporate page successfully updated.'
            return redirect('corporate:index')
        else:
            request.session['error_message'] = FORM_ERROR
    context_dict = {
        'formset':
        formset,
        'subnav':
        'index',
        'prefix':
        prefix,
        'has_files':
        False,
        'submit_name':
        'Update Corporate Page',
        'back_button': {
            'link': reverse('corporate:index'),
            'text': 'To Corporate Page'
        },
        'form_title':
        'Edit Corporate Page Text',
        'help_text': ('The text shown on the corporate main page. This text '
                      'uses markdown syntax.'),
        'can_add_row':
        False,
        'base':
        'corporate/base_corporate.html',
    }
    context_dict.update(get_common_context(request))
    context_dict.update(get_permissions(request.user))
    template = loader.get_template('generic_formset.html')
    return HttpResponse(template.render(context_dict, request))
Exemplo n.º 15
0
def send_corporate_email(request):
    if not Permissions.can_edit_corporate_page(request.user):
        request.session['error_message'] = 'You are not authorized to email companies'
        return {'fragments':{'#ajax-message':r'''<div id="ajax-message" class="alert alert-danger">
    <button type="button" class="close" data-dismiss="alert">&times</button>
    <strong>Error:</strong>%s</div>'''%(request.session.pop('error_message'))}}
    existing_email = CorporateEmail.objects.filter(active=True)
    if existing_email.exists():
        existing_email[0].send_corporate_email()
        request.session['success_message']='Companies successfully emailed'
        return {'fragments':{'#ajax-message':r'''<div id="ajax-message" class="alert alert-success">
    <button type="button" class="close" data-dismiss="alert">&times</button>
    <strong>Success:</strong>%s</div>'''%(request.session.pop('success_message'))}}
    else:
        request.session['error_message'] = 'Company email text does not exist'
        return {'fragments':{'#ajax-message':r'''<div id="ajax-message" class="alert alert-danger">
    <button type="button" class="close" data-dismiss="alert">&times</button>
    <strong>Error:</strong>%s</div>'''%(request.session.pop('error_message'))}}
Exemplo n.º 16
0
def add_company_contact(request):
    if not Permissions.can_add_corporate_contact(request.user):
        request.session[
            'error_message'] = 'You are not authorized to add company contacts'
        return redirect('corporate:index')
    prefix = 'corporate_page'
    can_edit = Permissions.can_edit_corporate_page(request.user)
    form = AddContactForm(request.POST or None,
                          prefix=prefix,
                          can_edit=can_edit)
    if request.method == 'POST':
        if form.is_valid():
            if form.is_overdetermined():
                request.session[
                    'warning_message'] = 'Name, email, phone, bio, and chapter are ignored when profile provided.'
            instance = form.save()
            request.session[
                'success_message'] = 'Corporate contact successfully added.'
            return redirect('corporate:index')
        else:
            request.session['error_message'] = FORM_ERROR
    help_text = 'Add a contact to the company contacts database.'
    if not can_edit:
        help_text = help_text + (' Note: you are adding a suggested contact; '
                                 'they will not be emailed unless approved by '
                                 'the Corporate Relations Officer.')
    context_dict = {
        'form': form,
        'subnav': 'index',
        'prefix': prefix,
        'has_files': False,
        'submit_name': 'Add company contact',
        'back_button': {
            'link': reverse('corporate:index'),
            'text': 'To Corporate Page'
        },
        'form_title': 'Add company contact',
        'help_text': help_text,
        'base': 'corporate/base_corporate.html',
    }
    context_dict.update(get_common_context(request))
    context_dict.update(get_permissions(request.user))
    template = loader.get_template('generic_form.html')
    return HttpResponse(template.render(context_dict, request))
Exemplo n.º 17
0
def update_resource_guide(request):
    if not Permissions.can_edit_corporate_page(request.user):
        request.session['error_message'] = 'You are not authorized to edit the corporate page'
        return redirect('corporate:index')
    ResourceGuideForm = modelform_factory(CorporateResourceGuide, exclude=('active',))
    if request.method == 'POST':
        form = ResourceGuideForm(request.POST, request.FILES)
        if form.is_valid():
            instance = form.save(commit=False)
            previously_active_guides = CorporateResourceGuide.objects.filter(active=True)
            for guide in previously_active_guides:
                guide.active = False
                guide.save()
            instance.active = True
            instance.save()
            update_resume_zips()
            request.session['success_message'] = 'Corporate resource guide successfully updated.'
            return redirect('corporate:index')
        else:
            request.session['error_message'] = FORM_ERROR
    else:
        form = ResourceGuideForm()
    context_dict = {
        'form': form,
        'subnav': 'index',
        'has_files': True,
        'submit_name': 'Update Corporate Resource Guide',
        'back_button': {'link': reverse('corporate:index'),
                        'text': 'To Corporate Page'},
        'form_title': 'Edit Corporate Resource Guide',
        'help_text': ('This guide is inluded in the resume zip files. Update '
                      'it when the information (or the officer) changes.'),
        'base': 'corporate/base_corporate.html',
        }
    context_dict.update(get_common_context(request))
    context_dict.update(get_permissions(request.user))
    context = RequestContext(request, context_dict)
    template = loader.get_template('generic_form.html')
    return HttpResponse(template.render(context))
Exemplo n.º 18
0
def add_company_contact(request):
    if not Permissions.can_add_corporate_contact(request.user):
        request.session['error_message'] = 'You are not authorized to add company contacts'
        return redirect('corporate:index')
    prefix = 'corporate_page'
    can_edit = Permissions.can_edit_corporate_page(request.user)
    form = AddContactForm(request.POST or None,prefix=prefix,can_edit=can_edit)
    if request.method == 'POST':
        if form.is_valid():
            if form.is_overdetermined():
                request.session['warning_message'] = 'Name, email, phone, bio, and chapter are ignored when profile provided.'  
            instance = form.save()
            request.session['success_message'] = 'Corporate contact successfully added.'
            return redirect('corporate:index')
        else:
            request.session['error_message'] = FORM_ERROR
    help_text = 'Add a contact to the company contacts database.'
    if not can_edit:
        help_text = help_text + (' Note: you are adding a suggested contact; '
                                 'they will not be emailed unless approved by '
                                 'the Corporate Relations Officer.')
    context_dict = {
        'form': form,
        'subnav': 'index',
        'prefix': prefix,
        'has_files': False,
        'submit_name': 'Add company contact',
        'back_button': {'link': reverse('corporate:index'),
                        'text': 'To Corporate Page'},
        'form_title': 'Add company contact',
        'help_text': help_text,
        'base': 'corporate/base_corporate.html',
        }
    context_dict.update(get_common_context(request))
    context_dict.update(get_permissions(request.user))
    context = RequestContext(request, context_dict)
    template = loader.get_template('generic_form.html')
    return HttpResponse(template.render(context))
Exemplo n.º 19
0
def get_permissions(user):
    permission_dict = {
        'can_edit_corporate': Permissions.can_edit_corporate_page(user)
    }
    return permission_dict
Exemplo n.º 20
0
def get_permissions(user):
    permission_dict={'can_edit_corporate':Permissions.can_edit_corporate_page(user)}
    return permission_dict