Пример #1
0
    def save(self):
        content = write_temp_file(self.metadata)

        name = self.entity.metadata.name
        username = authorname(self.user)
        commit_msg = self.cleaned_data['commit_msg_' + self.type].encode('utf8')
        self.entity.metadata.save(name, content, username, commit_msg)
        self.entity.save()
Пример #2
0
 def save(self, *args, **kwargs):
     super(BaseEntityCategoryForm, self).save(*args, **kwargs)
     entity = self.instance.entity
     md_str = etree.tostring(entity._load_metadata().etree,
             pretty_print=True)
     if settings.MODERATION_ENABLED:
         entity.try_to_complete(md_str)
     else:
         content = write_temp_file(md_str)
         name = entity.metadata.name
         username = authorname(self.user)
         commit_msg = 'Saving SP categories'
         entity.metadata.save(name, content, username, commit_msg)
     entity.save()
Пример #3
0
 def save(self, action):
     content = write_temp_file(self.metadata)
     name = self.entity.metadata.name
     username = authorname(self.user)
     commit_msg = self.cleaned_data['commit_msg_' + self.type].encode('utf8')
     if settings.MODERATION_ENABLED:
         if action == 'submit_changes':
             self.entity.modify(self.metadata)
         elif action == 'approve_changes':
             self.entity.approve(name, content, username, commit_msg)
         elif action == 'discard_changes':
             self.entity.reject()
     else:
         self.entity.metadata.save(name, content, username, commit_msg)
     self.entity.save()
Пример #4
0
def entity_remove(request, entity_id):
    entity = get_object_or_404(Entity, id=entity_id)
    if not can_edit_entity(request.user, entity):
        raise PermissionDenied

    if request.method == 'POST':
        username = authorname(request.user)
        commit_msg = u'entity removed'
        entity.metadata.delete(username, commit_msg)
        entity.delete()
        messages.success(request, _('Entity removed succesfully'))
        return HttpResponseRedirect(reverse('entities_list'))

    return render_to_response('entity/remove.html', {
            'entity': entity,
            }, context_instance=RequestContext(request))
Пример #5
0
    def save(self, action):
        content = write_temp_file(self.metadata)
        name = self.entity.metadata.name
        username = authorname(self.user)
        commit_msg = self.cleaned_data['commit_msg_' + self.type].encode('utf8')
        if settings.MODERATION_ENABLED:
            if action == 'update_changes':
                self.entity.try_to_complete(self.metadata)
            elif action == 'submit_changes':
                self.entity.try_to_submit(self.metadata)
            elif action == 'approve_changes':
                self.entity.try_to_approve(self.metadata, name, content,
                        username, commit_msg)
            elif action == 'discard_changes':
                self.entity.try_to_reject()
        else:
            self.entity.metadata.save(name, content, username, commit_msg)
        self.entity.save()
        self.entity.store_mdui_database()
        self.entity.store_contacts_database()
        self.store_entitymd_database(self.entity.id)
        if self.entity.role_descriptor == 'SP':
            self.entity.store_spcategory_database()
        elif self.entity.role_descriptor == 'IDP':
            self.entity.store_idpcategory_database()

        mail_owner = True if self.entity.owner != self.user else False
        if mail_owner:
            if not settings.MODERATION_ENABLED:
                action = 'modified'
            else:
                if action == 'update_changes':
                    action = 'saved changes for'
                if action == 'submit_changes':
                    action = 'submitted changes for'
                if action == 'approve_changes':
                    action = 'approved changes for'
                if action == 'discard_changes':
                    action = 'discarded changes for'
            msg = ('Dear {owner},\n{moderator} has {action} the entity '
                    'with EntityID {entityid}.'.format(
                        owner=unicode(self.entity.owner),
                        moderator=unicode(self.user),
                        action=action.replace('_', ' '),
                        entityid=self.entity.entityid))
            send_mail('Entity modified', msg, settings.DEFAULT_FROM_EMAIL,
                    [self.entity.owner.email])
Пример #6
0
def manage_mdui_data(request, entity_id):
    entity = get_object_or_404(Entity, id=entity_id)

    MDUIdataFormSet = modelformset_factory(MDUIdata,
                                           form=MDUIdataForm,
                                           max_num=len(settings.MDUI_LANGS),
                                           validate_max=True,
                                           min_num=len(settings.MDUI_LANGS),
                                           validate_min=True)

    if request.method == 'POST':
        formset = MDUIdataFormSet(
            request.POST, queryset=MDUIdata.objects.filter(entity=entity))
        if formset.is_valid():
            for form in formset:
                form.save()
            md_str = etree.tostring(entity._load_metadata().etree,
                                    pretty_print=True)
            if settings.MODERATION_ENABLED:
                entity.try_to_complete(md_str)
            else:
                content = write_temp_file(md_str)
                name = entity.metadata.name
                username = authorname(request.user)
                commit_msg = 'Saving MDUI Data'
                entity.metadata.save(name, content, username, commit_msg)
            entity.save()
            msg = _('MDUI data successfully changed')
            messages.success(request, msg)
            return HttpResponseRedirect(
                reverse('entities:entity_view', args=(entity_id, )))
    else:
        if entity.mdui.count():
            queryset = MDUIdata.objects.filter(entity=entity)
            formset = MDUIdataFormSet(queryset=queryset)
        else:
            queryset = MDUIdata.objects.none()
            initial = [{
                'entity': entity,
                'lang': lang[0]
            } for lang in settings.MDUI_LANGS]
            formset = MDUIdataFormSet(initial=initial, queryset=queryset)
    context = {'formset': formset, 'entity': entity}
    return render(request, 'entity/manage_mdui_data.html', context)
Пример #7
0
def manage_mdui_data(request, entity_id):
    entity = get_object_or_404(Entity, id=entity_id)

    MDUIdataFormSet = modelformset_factory(MDUIdata,
            form=MDUIdataForm,
            max_num=len(settings.MDUI_LANGS), validate_max=True,
            min_num=len(settings.MDUI_LANGS), validate_min=True)

    if request.method == 'POST':
        formset = MDUIdataFormSet(request.POST,
                queryset=MDUIdata.objects.filter(entity=entity))
        if formset.is_valid():
            for form in formset:
                form.save()
            md_str = etree.tostring(entity._load_metadata().etree,
                    pretty_print=True)
            if settings.MODERATION_ENABLED:
                entity.try_to_complete(md_str)
            else:
                content = write_temp_file(md_str)
                name = entity.metadata.name
                username = authorname(request.user)
                commit_msg = 'Saving MDUI Data'
                entity.metadata.save(name, content, username, commit_msg)
            entity.save()
            msg = _('MDUI data successfully changed')
            messages.success(request, msg)
            return HttpResponseRedirect(reverse('entities:entity_view',
                                         args=(entity_id,)))
    else:
        if entity.mdui.count():
            queryset = MDUIdata.objects.filter(entity=entity)
            formset = MDUIdataFormSet(queryset=queryset)
        else:
            queryset = MDUIdata.objects.none()
            initial = [{'entity': entity, 'lang': lang[0]}
                                       for lang in settings.MDUI_LANGS]
            formset = MDUIdataFormSet(initial=initial, queryset=queryset)
    context = {
            'formset': formset,
            'entity': entity
            }
    return render(request, 'entity/manage_mdui_data.html', context)
Пример #8
0
def entity_remove(request, entity_id):
    entity = get_object_or_404(Entity, id=entity_id)
    if not can_edit_entity(request.user, entity):
        raise PermissionDenied

    if request.method == 'POST':
        username = authorname(request.user)
        commit_msg = u'entity removed'
        try:
            ent_md = EntityMD.objects.get(entity=entity)
            AttributesMD.objects.filter(entity_md=ent_md).delete()
            ent_md.delete()
        except EntityMD.DoesNotExist:
            pass
        entity.metadata.delete(username, commit_msg)
        entity.delete()
        messages.success(request, _('Entity removed succesfully'))
        return HttpResponseRedirect(reverse('entities:entities_list'))

    return render_to_response('entity/remove.html', {
        'entity': entity,
    },
                              context_instance=RequestContext(request))
Пример #9
0
 def author_name(self, entity):
     return authorname(entity.owner)
Пример #10
0
 def author_name(self, entity):
     return authorname(entity.owner)