コード例 #1
0
ファイル: views.py プロジェクト: OpenRuhr/ris-web
def view_paper(id):
  """
  Gibt Dokumenten-Detailseite aus
  """
  result = db.get_paper(search_params = {'_id': ObjectId(id)},
                        deref = {'values': ['body', 'mainFile', 'auxiliaryFile', 'subordinatedPaper', 'superordinatedPaper']})
  if len(result) == 0:
    abort(404)
  result = result[0]
  result['numberOfFiles'] = 0
  if 'mainFile' in result:
    result['numberOfFiles'] += 1
  if 'auxiliaryFile' in result:
    result['numberOfFiles'] += len(result['auxiliaryFile'])
  result['consultation'] = db.get_consultation(search_params = {'paper': DBRef('paper', ObjectId(id))})
  for consultation_id in range(len(result['consultation'])):
    agendaItem_result = db.get_agendaItem(search_params = {'consultation': DBRef('consultation', result['consultation'][consultation_id]['_id'])})
    if len(agendaItem_result):
      result['consultation'][consultation_id]['agendaItem'] = agendaItem_result[0]
      meeting_result = db.get_meeting(search_params = {'agendaItem': DBRef('agendaItem', result['consultation'][consultation_id]['agendaItem']['_id'])})
      if len(meeting_result):
        result['consultation'][consultation_id]['agendaItem']['meeting'] = meeting_result[0]
  """references=[identifier],
    get_attachments=True,
    get_consultations=True,
    get_thumbnails=True)"""
  return render_template('paper_details.html', paper=result)
コード例 #2
0
def oparl_consultation_data(params):
  data = db.get_consultation(search_params={'_id': ObjectId(params['_id'])})
  if len(data) == 1:
    data = oparl_consultation_layout(data[0], params)
    agendaItem = db.get_agendaItem(search_params={'consultation': DBRef('consultation', ObjectId(params['_id']))})
    if len(agendaItem):
      data['agendaItem'] = "%s/oparl/agendaItem/%s%s" % (app.config['api_url'], agendaItem[0]['_id'], generate_postfix(params))
    return data
  elif len(data) == 0:
    abort(404)
コード例 #3
0
ファイル: oparl.py プロジェクト: OpenRuhr/ris-web
def oparl_consultation_data(params):
  data = db.get_consultation(search_params={'_id': ObjectId(params['_id'])})
  if len(data) == 1:
    data[0]['body'] = generate_single_url(params=params, type='body', id=data[0]['body'].id)
    data[0]['agendaItem'] = generate_single_backref_url(params=params, get='get_agendaItem', type='agendaItem', reverse_type='consultation', id=params['_id'])
    data[0]['paper'] = generate_single_url(params=params, type='paper', id=data[0]['paper'].id)
    data[0]['organization'] = generate_sublist_url(params=params, main_type='consultation', sublist_type='organization')
    data[0]['@type'] = 'OParlConsultation'
    data[0]['@id'] = data[0]['_id']
    return data[0]
  elif len(data) == 0:
    abort(404)
コード例 #4
0
def view_paper(id):
    """
  Gibt Dokumenten-Detailseite aus
  """
    result = db.get_paper(search_params={'_id': ObjectId(id)},
                          deref={
                              'values': [
                                  'body', 'mainFile', 'auxiliaryFile',
                                  'relatedPaper', 'subordinatedPaper',
                                  'superordinatedPaper'
                              ]
                          })
    if len(result) == 0:
        abort(404)
    result = result[0]
    result['numberOfFiles'] = 0
    if 'mainFile' in result:
        result['numberOfFiles'] += 1
    if 'auxiliaryFile' in result:
        result['numberOfFiles'] += len(result['auxiliaryFile'])
    result['consultation'] = db.get_consultation(
        search_params={'paper': DBRef('paper', ObjectId(id))})
    for consultation_id in range(len(result['consultation'])):
        agendaItem_result = db.get_agendaItem(
            search_params={
                'consultation':
                DBRef('consultation', result['consultation'][consultation_id]
                      ['_id'])
            })
        if len(agendaItem_result):
            result['consultation'][consultation_id][
                'agendaItem'] = agendaItem_result[0]
            meeting_result = db.get_meeting(
                search_params={
                    'agendaItem':
                    DBRef(
                        'agendaItem', result['consultation'][consultation_id]
                        ['agendaItem']['_id'])
                })
            if len(meeting_result):
                result['consultation'][consultation_id]['agendaItem'][
                    'meeting'] = meeting_result[0]
    return render_template('paper_details.html', paper=result)
コード例 #5
0
ファイル: oparl.py プロジェクト: OpenRuhr/ris-web
def oparl_paper_consultation_data(params):
  data = db.get_consultation(consultation_list = True,
                             search_params = {'paper': DBRef('paper', ObjectId(params['paper_id']))},
                             add_prefix = "%s/oparl/consultation/" % app.config['api_url'],
                             add_postfix = generate_postfix(params))
  return data
コード例 #6
0
ファイル: oparl.py プロジェクト: OpenRuhr/ris-web
def oparl_consultation_organization_data(params):
  data = db.get_consultation(deref={'value': 'organization', 'list_select': '_id'},
                             search_params={'_id': ObjectId(params['consultation_id'])},
                             add_prefix = "%s/oparl/organization/" % app.config['api_url'],
                             add_postfix = generate_postfix(params))
  return data
コード例 #7
0
ファイル: oparl.py プロジェクト: OpenRuhr/ris-web
def oparl_consultations_data(params):
  return db.get_consultation(consultation_list = True,
                           add_prefix = "%s/oparl/consultation/" % app.config['api_url'],
                           add_postfix=generate_postfix(params))
コード例 #8
0
def oparl_paper_layout(data, params):
  # default values
  data['id'] = "%s/oparl/paper/%s%s" % (app.config['api_url'], data['_id'], generate_postfix(params))
  data['type'] = 'https://schema.oparl.org/1.0/Paper'
  data['body'] = generate_single_url(params=params, type='body', id=data['body'].id)
  data['created'] = data['created'].strftime("%Y-%m-%dT%H:%M:%S+01:00")
  data['modified'] = data['modified'].strftime("%Y-%m-%dT%H:%M:%S+01:00")

  # mainFile
  if 'mainFile' in data:
    if data['mainFile']:
      data['mainFile'] = oparl_file_layout(data['mainFile'], params)
    else:
      del data['mainFile']

  # auxiliaryFiles
  if 'auxiliaryFile' in data:
    auxiliaryFiles = []
    for single_auxiliaryFile in data['auxiliaryFile']:
      if single_auxiliaryFile:
        auxiliaryFiles.append(oparl_file_layout(single_auxiliaryFile, params))
    if len(auxiliaryFiles):
      data['auxiliaryFile'] = auxiliaryFiles
    else:
      del data['data']

  data['consultation'] = []
  consultations = db.get_consultation(search_params={'paper': DBRef('paper', ObjectId(data['_id']))})
  for consultation in consultations:
    data['consultation'].append(oparl_consultation_layout(consultation, params))
  if len(data['consultation']) == 0:
    del data['consultation']

  # additional transformations
  if 'publishedDate' in data:
    if isinstance(data['publishedDate'], datetime.datetime):
      data['PolitikBeiUns:publishedDate'] = data['publishedDate'].strftime("%Y-%m-%d")
    del data['publishedDate']

  # TODO for data model
  if 'georeferences' in data:
    del data['georeferences']
  if 'georeferences' in data:
    del data['georeferencesGenerated']
  if 'title' in data:
    del data['title']

  if 'originalId' in data:
    data['PolitikBeiUns:originalId'] = data['originalId']
  if 'originalUrl' in data:
    data['PolitikBeiUns:originalUrl'] = data['originalUrl']
  if 'nameShort' in data:
    data['reference'] = data['nameShort']

  # delete stuff
  del data['_id']
  if 'originalId' in data:
    del data['originalId']
  if 'originalUrl' in data:
    del data['originalUrl']
  if 'slug' in data:
    del data['slug']
  if 'nameShort' in data:
    del data['nameShort']
  if 'georeferencesGenerated' in data:
    del data['georeferencesGenerated']
  return data
コード例 #9
0
ファイル: oparl.py プロジェクト: codeformuenster/ris-web
def oparl_consultation_data(params):
  data = db.get_consultation(search_params={'_id': ObjectId(params['_id'])})
  if len(data) == 1:
    return oparl_consultation_layout(data[0], params)
  elif len(data) == 0:
    abort(404)