コード例 #1
0
def document_form_view(request,
                       runcode,
                       qs,
                       template_name='documents_upload_form.html'):

    qsets, name, db_owners, fingerprint_ttype = createqsets(runcode,
                                                            getAnswers=False)

    if fingerprint_ttype == "":
        raise "There is missing ttype of questionarie, something is really wrong"

    apiinfo = json.dumps(get_api_info(runcode))
    owner_fingerprint = False
    for owner in db_owners.split(" "):
        #print owner
        #print request.user.username
        if (owner == request.user.username):
            owner_fingerprint = True

    return render(
        request, template_name, {
            'request': request,
            'qsets': qsets,
            'export_bd_answers': True,
            'apiinfo': apiinfo,
            'fingerprint_id': runcode,
            'breadcrumb': True,
            'breadcrumb_name': name.decode('ascii', 'ignore'),
            'style': qs,
            'collapseall': False,
            'owner_fingerprint': True,
            'fingerprint_dump': True,
            'contains_population': False,
            'fingerprint_ttype': fingerprint_ttype,
        })
コード例 #2
0
def save_answers_to_csv(list_databases, filename):
    """
    Method to export answers of a given database to a csv file
    """
    # Create the HttpResponse object with the appropriate CSV header.
    response = HttpResponse(content_type='text/csv')
    response['Content-Disposition'] = 'attachment; filename="EMIF_Catalogue_%s_%s.csv"' % (filename, datetime.datetime.now().strftime("%Y%m%d-%H%M%S"))

    if list_databases:
        writer = csv.writer(response, delimiter = '\t')
        writer.writerow(['DB_ID', 'DB_name', 'Questionset', 'Question', 'QuestionNumber', 'Answer', 'Date Last Modification'])
        for t in list_databases:
            id = t.id

            returned = createqsets(id, clean=False, changeSearch=True, noprocessing=False)

            qsets, name, db_owners, fingerprint_ttype  = returned

            qsets = attachPermissions(id, qsets)

            for (k, qs), permissions in qsets:
                if permissions.visibility == 0 and permissions.allow_exporting == True:
                    writeGroup(id, k, qs, writer, name, t)

        writer.writerow([id, name, "System", "Date", "99.0", t.date])
        writer.writerow([id, name, "System", "Date Modification", "99.1", t.date_modification])
        writer.writerow([id, name, "System", "Type", "99.2", t.type_name])
        writer.writerow([id, name, "System", "Type Identifier", "99.3", t.ttype])
    return response
コード例 #3
0
ファイル: documents.py プロジェクト: bastiao/catalogue
def document_form_view(request, runcode, qs, template_name='documents_upload_form.html'):

    qsets, name, db_owners, fingerprint_ttype = createqsets(runcode, getAnswers=False)

    if fingerprint_ttype == "":
        raise "There is missing ttype of questionarie, something is really wrong"

    apiinfo = json.dumps(get_api_info(runcode));
    owner_fingerprint = False
    for owner in db_owners.split(" "):
        #print owner
        #print request.user.username
        if (owner == request.user.username):
            owner_fingerprint = True

    return render(request, template_name,
        {'request': request, 'qsets': qsets, 'export_bd_answers': True,
        'apiinfo': apiinfo, 'fingerprint_id': runcode,
                   'breadcrumb': True, 'breadcrumb_name': name.decode('ascii', 'ignore'),
                    'style': qs, 'collapseall': False,
                    'owner_fingerprint':True,
                    'fingerprint_dump': True,
                    'contains_population': False,
                    'fingerprint_ttype': fingerprint_ttype,
                    })
コード例 #4
0
ファイル: services.py プロジェクト: bastiao/catalogue
def save_answers_to_csv(list_databases, filename):
    """
    Method to export answers of a given database to a csv file
    """
    # Create the HttpResponse object with the appropriate CSV header.
    response = HttpResponse(content_type='text/csv')
    response['Content-Disposition'] = 'attachment; filename="EMIF_Catalogue_%s_%s.csv"' % (filename, datetime.datetime.now().strftime("%Y%m%d-%H%M%S"))

    if list_databases:
        writer = csv.writer(response, delimiter = '\t')
        writer.writerow(['DB_ID', 'DB_name', 'Questionset', 'Question', 'QuestionNumber', 'Answer', 'Date Last Modification'])
        for t in list_databases:
            id = t.id

            returned = createqsets(id, clean=False, changeSearch=True, noprocessing=False)

            qsets, name, db_owners, fingerprint_ttype  = returned

            qsets = attachPermissions(id, qsets)

            for (k, qs), permissions in qsets:
                if permissions.visibility == 0 and permissions.allow_exporting == True:
                    writeGroup(id, k, qs, writer, name, t)

        writer.writerow([id, name, "System", "Date", "99.0", t.date])
        writer.writerow([id, name, "System", "Date Modification", "99.1", t.date_modification])
        writer.writerow([id, name, "System", "Type", "99.2", t.type_name])
        writer.writerow([id, name, "System", "Type Identifier", "99.3", t.ttype])
    return response
コード例 #5
0
ファイル: views.py プロジェクト: bastiao/catalogue
def results_comp(request, template_name='results_comp.html'):
    list_fingerprint_to_compare = []

    if request.POST:
        for k, v in request.POST.items():
            if k.startswith("chks_") and v == "on":
                arr = k.split("_")

                list_fingerprint_to_compare.append(arr[1])

    class Results:
        num_results = 0
        list_results = []

    class DatabaseFields:
        id = ''
        name = ''
        date = ''
        fields = None

    first_name = None
    list_qsets = {}
    for db_id in list_fingerprint_to_compare:
        qsets, name, db_owners, fingerprint_ttype = createqsets(db_id)

        list_qsets[db_id] = { 'name': name, 'qset': qsets}

        if(first_name == None):
            first_name = name

    '''for fingerprint_id, (name, qset) in list_qsets.items:
        print "--------------------------------"
        print content['name']
    '''

    return render(request, template_name, {'request': request, 'breadcrumb': True,
                                           'results': list_qsets, 'database_to_compare': first_name})
コード例 #6
0
ファイル: documents.py プロジェクト: bastiao/catalogue
def document_form_view(request, runcode, qs, activetab='summary', readOnly=False, public_key = None,
    template_name='documents_upload_form.html'):

    h = None

    if "query" in request.session and "highlight_results" in request.session:
        h = request.session["highlight_results"]

    # GET fingerprint primary key (for comments)
    fingerprint = None

    try:
        fingerprint = Fingerprint.objects.get(fingerprint_hash=runcode)
        fingerprint_pk = fingerprint.id
    except:
        fingerprint_pk = 0
        raise Http404

    qsets, name, db_owners, fingerprint_ttype = createqsets(runcode, highlights=h)

    if fingerprint_ttype == "":
        raise "There is a missing type of questionnarie, something is really wrong"

    try:
        if (not request.user.is_anonymous()):
            eprofile = EmifProfile.objects.get(user=request.user)

            if eprofile.restricted == True:
                if not eprofile.has_permission(runcode):
                    raise PermissionDenied


    except EmifProfile.DoesNotExist:
        raise "-- ERROR: Couldn't get emif profile for user"


    apiinfo = json.dumps(get_api_info(runcode))
    owner_fingerprint = False

    for owner in db_owners.split(" "):
        #print request.user.username
        if (owner == request.user.username):
            owner_fingerprint = True

    query_old = None
    try:
        query_old = request.session.get('query', "")
    except:
        query_old = None

    name_bc = name
    try:
        name_bc = name.encode('utf-8')
    except:
        pass

    isAdvanced = None

    if(request.session.get('isAdvanced') == True):
        isAdvanced = True
    else:
        isAdvanced = False

    qsets = attachPermissions(runcode, qsets)

    jerboa_files = Characteristic.objects.filter(fingerprint_id=runcode).order_by('-latest_date')


    contains_population = False
    latest_pop = None
    if len(jerboa_files)!=0:
        contains_population = True
        latest_pop = jerboa_files[0]



    # Find if user has public links for this db.

    public_links = None

    if (owner_fingerprint or request.user.is_staff) and fingerprint != None:
        public_links = PublicFingerprintShare.objects.filter(user=request.user, fingerprint=fingerprint)

    # increase database hits
    hits = 0
    if fingerprint != None:
        hits = fingerprint.hits+1
        fingerprint.hits = hits
        fingerprint.save()

    subscription = False

    try:
        if (not request.user.is_anonymous()):
            subs = FingerprintSubscription.objects.get(user = request.user, fingerprint = fingerprint)

            subscription = not subs.removed

    except FingerprintSubscription.DoesNotExist:
        pass

    return render(request, template_name,
        {'request': request, 'qsets': qsets, 'export_bd_answers': True,
        'apiinfo': apiinfo, 'fingerprint_id': runcode,
                    'fingerprint': fingerprint,
                    'fingerprint_pk': fingerprint_pk,
                    'fingerprint_fill': int(round(fingerprint.fill)),
                   'breadcrumb': True, 'breadcrumb_name': name_bc.decode('utf-8'),
                    'style': qs, 'collapseall': False,
                    'owner_fingerprint':owner_fingerprint,
                    'owners': db_owners,
                    'owner_obj': fingerprint.owner,
                    'shared_obj': fingerprint.shared,
                    'fingerprint_dump': True,
                    'contains_population': contains_population,
                    'latest_pop': latest_pop,
                    'hide_add': True,
                    'fingerprint_ttype': fingerprint_ttype,
                    'search_old': query_old,
                    'isAdvanced': isAdvanced,
                    'activetab': activetab,
                    'readOnly': readOnly,
                    'public_link': public_links,
                    'public_key': public_key,
                    'hits': hits,
                    'subscription': subscription,
                    })
コード例 #7
0
def document_form_view(request, runcode, qs, activetab='summary', readOnly=False, public_key = None,
    template_name='documents_upload_form.html'):

    h = None

    if "query" in request.session and "highlight_results" in request.session:
        h = request.session["highlight_results"]

    # GET fingerprint primary key (for comments)
    fingerprint = None

    try:
        fingerprint = Fingerprint.objects.get(fingerprint_hash=runcode)
        fingerprint_pk = fingerprint.id
    except:
        fingerprint_pk = 0
        raise Http404

    qsets, name, db_owners, fingerprint_ttype = createqsets(runcode, highlights=h)

    if fingerprint_ttype == "":
        raise "There is a missing type of questionnarie, something is really wrong"

    try:
        if (not request.user.is_anonymous()):
            eprofile = EmifProfile.objects.get(user=request.user)

            if eprofile.restricted == True:
                if not eprofile.has_permission(runcode):
                    raise PermissionDenied


    except EmifProfile.DoesNotExist:
        raise "-- ERROR: Couldn't get emif profile for user"


    apiinfo = json.dumps(get_api_info(runcode))
    owner_fingerprint = False

    for owner in db_owners.split(" "):
        #print request.user.username
        if (owner == request.user.username):
            owner_fingerprint = True

    query_old = None
    try:
        query_old = request.session.get('query', "")
    except:
        query_old = None

    name_bc = name
    try:
        name_bc = name.encode('utf-8')
    except:
        pass

    isAdvanced = None

    if(request.session.get('isAdvanced') == True):
        isAdvanced = True
    else:
        isAdvanced = False

    qsets = attachPermissions(runcode, qsets)

    jerboa_files = Characteristic.objects.filter(fingerprint_id=runcode).order_by('-latest_date')


    contains_population = False
    latest_pop = None
    if len(jerboa_files)!=0:
        contains_population = True
        latest_pop = jerboa_files[0]



    # Find if user has public links for this db.

    public_links = None

    if (owner_fingerprint or request.user.is_staff) and fingerprint != None:
        public_links = PublicFingerprintShare.objects.filter(user=request.user, fingerprint=fingerprint)

    # increase database hits
    hits = 0
    if fingerprint != None:
        hits = fingerprint.hits+1
        fingerprint.hits = hits
        fingerprint.save()

    subscription = False

    try:
        if (not request.user.is_anonymous()):
            subs = FingerprintSubscription.objects.get(user = request.user, fingerprint = fingerprint)

            subscription = not subs.removed

    except FingerprintSubscription.DoesNotExist:
        pass

    plugins = PluginVersion.all_valid(type=Plugin.DATABASE)

    return render(request, template_name,
        {'request': request, 'qsets': qsets, 'export_bd_answers': True,
        'apiinfo': apiinfo, 'fingerprint_id': runcode,
                    'fingerprint': fingerprint,
                    'fingerprint_pk': fingerprint_pk,
                    'fingerprint_fill': int(round(fingerprint.fill)),
                   'breadcrumb': True, 'breadcrumb_name': name_bc.decode('utf-8'),
                    'style': qs, 'collapseall': False,
                    'owner_fingerprint':owner_fingerprint,
                    'owners': db_owners,
                    'owner_obj': fingerprint.owner,
                    'shared_obj': fingerprint.shared,
                    'fingerprint_dump': True,
                    'contains_population': contains_population,
                    'latest_pop': latest_pop,
                    'hide_add': True,
                    'fingerprint_ttype': fingerprint_ttype,
                    'search_old': query_old,
                    'isAdvanced': isAdvanced,
                    'activetab': activetab,
                    'readOnly': readOnly,
                    'public_link': public_links,
                    'public_key': public_key,
                    'hits': hits,
                    'subscription': subscription,
                    'plugins': plugins
                    })