Exemple #1
0
def clean_attribute_initial_value(attribute_name, attribute_value):
    # TODO : clean this function ; it could make up to 6 hits DB
    clean_attribute_value = attribute_value
    if attribute_name == "campus":
        clean_attribute_value = campus.find_by_id(attribute_value)
    elif attribute_name == "language":
        clean_attribute_value = language.find_by_id(attribute_value)
    elif attribute_name in ['requirement_entity', 'allocation_entity', 'additional_entity_1', 'additional_entity_2']:
        clean_attribute_value = get_by_internal_id(attribute_value)
    return clean_attribute_value
def _reinitialize_entities_before_proposal(learning_container_year,
                                           initial_entities_by_type):
    for type_entity, id_entity in initial_entities_by_type.items():
        initial_entity = entity.get_by_internal_id(id_entity)
        if initial_entity:
            update_or_create_entity_container_year_with_components(
                initial_entity, learning_container_year, type_entity)
        else:
            current_entity_container_year = entity_container_year.find_by_learning_container_year_and_linktype(
                learning_container_year, type_entity)
            if current_entity_container_year is not None:
                current_entity_container_year.delete()
Exemple #3
0
def create_versions_of_existing_entity(entityversion_data, same_entity):
    new_versions_count = 0
    for version in entityversion_data:
        identical_versions_count = entity_version.count_identical_versions(same_entity, version)
        if not identical_versions_count:
            parent = entity.get_by_internal_id(version.pop('parent'))
            res = create_version(version, same_entity, parent)
            if res is None:
                continue
            new_versions_count += 1

    return new_versions_count
def create_versions_of_existing_entity(request, same_entity):
    new_versions_count = 0
    entityversion_data = request.data.get('entityversion_set')
    for version in entityversion_data:
        identical_versions_count = entity_version.count_identical_versions(
            same_entity, version)
        if not identical_versions_count:
            parent = entity.get_by_internal_id(version.pop('parent'))
            if create_version(version, same_entity, parent) is not None:
                new_versions_count += 1

    return new_versions_count
Exemple #5
0
def create_versions_of_existing_entity(entityversion_data, same_entity):
    new_versions_count = 0
    for version in entityversion_data:
        identical_versions_count = entity_version.count_identical_versions(same_entity, version)
        if not identical_versions_count:
            parent = entity.get_by_internal_id(version.pop('parent'))
            res = create_version(version, same_entity, parent)
            if res is None:
                continue
            new_versions_count += 1

    return new_versions_count
Exemple #6
0
def is_eligible_for_cancel_of_proposal(learning_unit_proposal, a_person):
    if not learning_unit_proposal or learning_unit_proposal.state != ProposalState.FACULTY.name:
        return False

    if learning_unit_proposal.type not in CANCELLABLE_PROPOSAL_TYPES:
        return False

    initial_entity_requirement_id = learning_unit_proposal.initial_data[
        "entities"][REQUIREMENT_ENTITY]
    an_entity = entity.get_by_internal_id(initial_entity_requirement_id)
    if an_entity in a_person.entities:
        return True

    return a_person.is_linked_to_entity_in_charge_of_learning_unit_year(
        learning_unit_proposal.learning_unit_year)
def get_score_sheet_address(off_year):
    address = score_sheet_address.get_from_offer_year(off_year)
    entity_id = None
    if address is None:
        address = off_year.id
    else:
        if address and not address.customized:
            map_offer_year_entity_type_with_entity_id = _get_map_offer_year_entity_type_with_entity(off_year)
            entity_id = map_offer_year_entity_type_with_entity_id[address.entity_address_choice]
            ent_version = entity_version.get_last_version(entity_id)
            entity = entity_model.get_by_internal_id(entity_id)
            if not entity: # Case no address found for this entity
                entity = entity_model.Entity()
            email = address.email
            address = entity
            address.recipient = '{} - {}'.format(ent_version.acronym, ent_version.title)
            address.email = email
    return {'entity_id_selected': entity_id,
            'address': _get_address_as_dict(address)}
def get_score_sheet_address(off_year):
    address = score_sheet_address.get_from_offer_year(off_year)
    entity_id = None
    if address is None:
        address = off_year.id
    else:
        if address and not address.customized:
            map_offer_year_entity_type_with_entity_id = _get_map_offer_year_entity_type_with_entity(off_year)
            entity_id = map_offer_year_entity_type_with_entity_id[address.entity_address_choice]
            ent_version = entity_version.get_last_version(entity_id)
            entity = entity_model.get_by_internal_id(entity_id)
            if not entity:  # Case no address found for this entity
                entity = entity_model.Entity()
            email = address.email
            address = entity
            address.recipient = '{} - {}'.format(ent_version.acronym, ent_version.title)
            address.email = email
    return {'entity_id_selected': entity_id,
            'address': _get_address_as_dict(address)}
Exemple #9
0
 def test_get_by_internal_id(self):
     an_entity = EntityFactory()
     self.assertEqual(entity.get_by_internal_id(an_entity.id), an_entity)
     self.assertEqual(entity.get_by_internal_id(an_entity.id + 1), None)
Exemple #10
0
def add_reviewer_for_structure(request):
    entity_id = request.POST.get("entity_id")
    related_entity = entity.get_by_internal_id(entity_id)
    current_entity_version = entity_version.get_last_version(
        entity.get_by_internal_id(entity_id))
    year = academic_year.current_academic_year().year
    try:
        reviewer.can_delegate_to_entity(
            reviewer.find_by_person(request.user.person), related_entity)
    except:
        return redirect('assistants_home')
    if request.POST:
        form = ReviewerDelegationForm(data=request.POST)
        if form.is_valid():
            new_reviewer = form.save(commit=False)
            if request.POST.get('person_id'):
                this_person = person.find_by_id(request.POST.get('person_id'))
                try:
                    reviewer.find_by_person(this_person)
                    msg = _("person_already_reviewer_msg")
                    form.add_error(None, msg)
                    return render(
                        request, "reviewer_add_reviewer.html", {
                            'form':
                            form,
                            'year':
                            year,
                            'related_entity':
                            related_entity,
                            'current_entity_version':
                            current_entity_version,
                            'reviewer':
                            reviewer.find_by_person(request.user.person)
                        })
                except reviewer.Reviewer.DoesNotExist:
                    pass
                new_reviewer.person = this_person
                new_reviewer.save()
                html_template_ref = 'assistant_reviewers_startup_html'
                txt_template_ref = 'assistant_reviewers_startup_txt'
                send_message(person=this_person,
                             html_template_ref=html_template_ref,
                             txt_template_ref=txt_template_ref)
                return redirect('reviewer_delegation')
        else:
            this_reviewer = reviewer.find_by_person(person=request.user.person)
            if this_reviewer.role == reviewer_role.SUPERVISION:
                role = reviewer_role.SUPERVISION_ASSISTANT
            else:
                role = reviewer_role.RESEARCH_ASSISTANT
            form = ReviewerDelegationForm(initial={
                'entity': related_entity,
                'year': year,
                'role': role
            })
            reviewer_entity = entity_version.get_last_version(
                this_reviewer.entity)
            return render(
                request, "reviewer_add_reviewer.html", {
                    'form': form,
                    'year': year,
                    'related_entity': related_entity,
                    'entity': reviewer_entity,
                    'current_entity_version': current_entity_version,
                    'reviewer': reviewer.find_by_person(request.user.person)
                })
Exemple #11
0
 def test_get_by_internal_id(self):
     self.assertEqual(entity.get_by_internal_id(self.an_entity.id),
                      self.an_entity)
     self.assertEqual(entity.get_by_internal_id(self.an_entity.id + 1),
                      None)