コード例 #1
0
ファイル: io.py プロジェクト: fzxy002763/ieee-802-11-timeline
def import_html_project(item, last_project, cache):
    entry = item.as_dict(html_project_fields_actual)
    if not entry['actual']:
        return None
    if entry['actual'].lower() == 'actual':
        #print 'entry',entry
        # Start of a project line
        # remove the "IEEE Std" from in front of the name, and any text after the name
        entry['name'] = entry['name'].split(' ')[2]
        if ',' in entry['par_date']:
            dates = entry['par_date'].split(',')
            entry['par_date'] = dates[0]
            entry['par_expiry'] = dates[-1]
            entry['par_expiry'] = entry['par_expiry'].replace('[]', '')
        else:
            entry['par_expiry'] = None
        try:
            p = Project.objects.get(name=entry['name'])
        except Project.DoesNotExist:
            p = Project(name=entry['name'], order=1)
        p.description = entry['description']
        p.doc_type = entry['doc_type']
        set_date(p, 'par_date', entry['par_date'])
        if entry['par_expiry']:
            set_date(p, 'par_expiry', entry['par_expiry'])
        p.task_group = entry['task_group']
        p.doc_format = entry['doc_format']
        if entry['mec_date']:
            set_date(p, 'mec_date', entry['mec_date'])
            p.mec_completed = True

        set_date_if_none(p, 'initial_wg_ballot', entry['wg_ballot_date'])
        if entry['wg_ballot_date']:
            initial, recirc = parse_ballot_dates(entry['wg_ballot_date'],
                                                 entry['wg_ballot_result'])
            if p.initial_wg_ballot is None and initial is not None:
                set_date(p, 'initial_wg_ballot', initial)
            if p.recirc_wg_ballot is None and recirc is not None:
                set_date(p, 'recirc_wg_ballot', recirc)
        if entry['sb_ballot_date']:
            initial, recirc = parse_ballot_dates(entry['sb_ballot_date'],
                                                 entry['sb_ballot_result'])
            if p.initial_sb_ballot is None and initial is not None:
                set_date(p, 'initial_sb_ballot', initial)
            if p.recirc_sb_ballot is None and recirc is not None:
                set_date(p, 'recirc_sb_ballot', recirc)
        set_date(p, 'sb_form_date', entry['sb_form_date'])
        set_date(p, 'wg_approval_date', entry['wg_approval_date'])
        set_date(p, 'ec_approval_date', entry['ec_approval_date'])
        set_date(p, 'revcom_approval_date', entry['revcom_approval_date'])
        set_date(p, 'ansi_approval_date', 'ansi_approval_date')
        set_date(p, 'withdrawn_date', 'withdrawn_date')
        if p.withdrawn_date is not None and p.withdrawn_date.toordinal(
        ) <= datetime.datetime.utcnow().toordinal():
            p.withdrawn = True
        if not p.pk:
            p.pk = cache.get_next_project_pk()
        cache.put_project(p)
        return p
    if last_project is None:
        return None
    if entry['actual'].lower() == 'predicted':
        entry = item.as_dict(html_project_fields_predicted)
        p = last_project
        #p. = entry['initial_wg_ballot_ver']
        set_date(p, 'initial_wg_ballot', entry['initial_wg_ballot_date'])
        #p. = entry['recirc_wg_ballot_ver']
        set_date(p, 'recirc_wg_ballot', entry['recirc_wg_ballot_date'])
        set_date(p, 'sb_form_date', entry['sb_form_date'])
        if not p.mec_completed:
            set_date(p, 'mec_date', entry['mec_date'])
        #p. = entry['initial_sb_ballot_ver']
        set_date(p, 'initial_sb_ballot', entry['initial_sb_ballot_date'])
        #p. = entry['recirc_sb_ballot_ver']
        set_date(p, 'recirc_sb_ballot', entry['recirc_sb_ballot_date'])
        set_date(p, 'wg_approval_date', entry['wg_approval_date'])
        set_date(p, 'ec_approval_date', entry['ec_approval_date'])
        set_date(p, 'revcom_approval_date', entry['revcom_approval_date'])
        #p.save()
    return None