Skip to content
Snippets Groups Projects
Select Git revision
  • ea60c14d049123067ed1eae716d77effecab7ff5
  • main default protected
  • ansprechpersonen-aktualisiert-ws23_24
  • renovate/gitbeaker-rest-40.x
  • renovate/sveltejs-adapter-node-5.x
  • renovate/docker-dockerfile-1.x
  • renovate/prettier-3.x
  • renovate/sveltejs-kit-2.x
  • renovate/vitest-1.x
  • renovate/vite-5.x
  • renovate/node-21.x
  • renovate/eslint-config-prettier-9.x
  • renovate/prettier-plugin-svelte-3.x
  • migrate-to-oauth
14 results

generate_transcript.js

Blame
  • Forked from FS Info TU Dortmund / Fachschaftsrat / Tools / Protokoll-Pad-Generator
    Source project has a limited visibility.
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    json_export.py 1.92 KiB
    import json
    import sys
    
    event_id = int(sys.argv[1])
    target_name = sys.argv[2]
    
    print(f"Creating export for event '{event_id}' as '{target_name}'")
    
    # Load json file just created by django
    with open('backups/akplanning_only.json', 'r') as json_file:
        exported_entries = json.load(json_file)
    print(f"Loaded {len(exported_entries)} entries in total, restricting to event...")
    
    entries_without_event = 0
    entries_out = []
    virtual_rooms_to_preserve = set()
    
    # Loop over all dumped entries
    for entry in exported_entries:
        # Handle all entries with event reference
        if "event" in entry['fields']:
            event = int(entry['fields']['event'])
    
            # Does this entry belong to the event we are looking for?
            if event == event_id:
                # Store for backup
                entries_out.append(entry)
    
                # Remember the primary keys of all rooms of this event
                # Required for special handling of virtual rooms,
                # since they inherit from normal rooms and have no direct event reference
                if entry['model'] == "AKModel.room":
                    virtual_rooms_to_preserve.add(entry['pk'])
        # Handle entries without event reference
        else:
            # Backup virtual rooms of that event
            if entry['model'] == "AKOnline.virtualroom":
                if entry['pk'] in virtual_rooms_to_preserve:
                    entries_out.append(entry)
            # Backup the event itself
            elif entry['model'] == "AKModel.event":
                if int(entry['pk']) == event_id:
                    entries_out.append(entry)
            else:
                # This should normally not happen (all other models should have a reference to the event)
                entries_without_event += 1
                print(entry)
    
    print(f"Ignored entries without event: {entries_without_event}")
    print(f"Exporting {len(entries_out)} entries for event")
    
    with open(f'backups/{target_name}.json', 'w') as json_file:
        json.dump(entries_out, json_file, indent=2)