ajtruckle / meeting-schedule-assistant-support

Get support for Meeting Schedule Assistant.
https://www.publictalksoftware.co.uk/meeting-schedule-assistant/
4 stars 0 forks source link

Change Special Events data base into an XML file #79

Closed ajtruckle closed 1 month ago

ajtruckle commented 3 months ago

Is your feature request related to a problem? Please describe. The Special Events database is a binary file. So only Meeting Schedule Assistant can read / save it. This means that the software has to transfer any special event information into the XML data for display on a given schedule.

Describe the solution you'd like Change things so that all Special Event data is held in a XML database. All the meeting editor has to do is indicate that there is an event and how it affects the meeting(s) that week.

There are other benefits:

cengizu commented 3 months ago

Yes, switching to an XML-based system can provide significant benefits in terms of interoperability, maintainability, and flexibility. It can make MSA more adaptable and easier to integrate with other systems.

ajtruckle commented 3 months ago

@cengizu I agree with your reasoning. 😊👍

cengizu commented 1 month ago

@ajtruckle

Seem to be working fine. A new XML (MSA_SpecialEventsDatabase.xml) file is created and here are the contents:

<?xml version="1.0" encoding="utf-8"?>
<SpecialEvents Version="1.0" LegacyImported="true" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.publictalksoftware.co.uk/msa">
    <SpecialEvent Week="W20240129" FLGMode="false">
        <Event>Circuit Assembly</Event>
        <Location>Arrakeen Palace</Location>
        <SRREventType>SRRSpecialEvent</SRREventType>
        <MWBEventType>MWBSpecialEvent</MWBEventType>
        <DateTime AllDayEvent="true">
            <Date Day="4" DayPadded="04" DayShort="Sun" DayFull="Sunday" Month="2" MonthPadded="02" MonthShort="Feb" MonthFull="February" Year="2024">4.02.2024</Date>
        </DateTime>
        <Reminder SetReminder="false"/>
    </SpecialEvent>
    <SpecialEvent Week="W20240318" FLGMode="false">
        <Event>Memorial</Event>
        <Location>Grand Fenwick</Location>
        <SRREventType>SRRSpecialEvent</SRREventType>
        <MWBEventType>MWBMemorial</MWBEventType>
        <DateTime AllDayEvent="false">
            <Date Day="24" DayPadded="24" DayShort="Sun" DayFull="Sunday" Month="3" MonthPadded="03" MonthShort="Mar" MonthFull="March" Year="2024">24.03.2024</Date>
            <Time StartHour="19" StartMinute="0" EndHour="20" EndMinute="45">
                <StartTime12>7:00</StartTime12>
                <StartTime24>19:00</StartTime24>
                <EndTime12>8:45</EndTime12>
                <EndTime24>20:45</EndTime24>
            </Time>
        </DateTime>
        <Talk>
            <Speaker>Vladimir Harkonnen</Speaker>
            <Theme>Appreciate What God and Christ Have Done for You!</Theme>
        </Talk>
        <Songs>
            <SongOpen Number="6">The Heavens Declare God’s Glory</SongOpen>
            <SongEnd Number="3">Our Strength, Our Hope, Our Confidence</SongEnd>
        </Songs>
        <Duties>
            <Video>Selim Wormrider</Video>
            <Audio>Raquella Berto-Anirul</Audio>
            <Zoom>Piter De Vries</Zoom>
        </Duties>
        <Assignments>
            <Chairman>Paul Atreides</Chairman>
            <PrayerOpen>Paul Atreides</PrayerOpen>
            <PrayerClose>Quentin (Vigar) Butler</PrayerClose>
        </Assignments>
        <Media>
            <ImagePath>G:\Downloads\Memorial2024.jpg</ImagePath>
            <ImageWidthPercent>80</ImageWidthPercent>
            <TextBeforeImage>Some text before</TextBeforeImage>
            <TextAfterImage>Some text after</TextAfterImage>
        </Media>
        <Reminder SetReminder="true">
            <ReminderInterval Units="Days">1</ReminderInterval>
        </Reminder>
    </SpecialEvent>
    <SpecialEvent Week="W20240429" FLGMode="false">
        <Event>SKE Graduation</Event>
        <Location>Krypton</Location>
        <SRREventType>SRRSpecialEvent</SRREventType>
        <MWBEventType>MWBBethelSpeakerServiceTalk</MWBEventType>
        <DateTime AllDayEvent="false">
            <Date Day="3" DayPadded="03" DayShort="Fri" DayFull="Friday" Month="5" MonthPadded="05" MonthShort="May" MonthFull="May" Year="2024">3.05.2024</Date>
            <Time StartHour="19" StartMinute="0" EndHour="20" EndMinute="45">
                <StartTime12>7:00</StartTime12>
                <StartTime24>19:00</StartTime24>
                <EndTime12>8:45</EndTime12>
                <EndTime24>20:45</EndTime24>
            </Time>
        </DateTime>
        <Talk>
            <Speaker>Jean-Baptiste Emanuel Zorg</Speaker>
            <Theme>Beyond Fear... Destiny Awaits</Theme>
        </Talk>
        <Songs>
            <SongOpen Number="2">Jehovah Is Your Name</SongOpen>
            <SongEnd Number="3">Our Strength, Our Hope, Our Confidence</SongEnd>
        </Songs>
        <Duties>
            <Video>Zufa Cenva</Video>
            <Audio>Tylwyth Waff</Audio>
        </Duties>
        <Assignments>
            <Chairman>Paul Atreides</Chairman>
            <PrayerOpen>Paul Atreides</PrayerOpen>
        </Assignments>
        <Info>
            <ImagePath></ImagePath>
            <ImageWidthPercent>80</ImageWidthPercent>
            <TextBeforeImage></TextBeforeImage>
            <TextAfterImage></TextAfterImage>
        </Info>
        <Reminder SetReminder="true">
            <ReminderInterval Units="Days">1</ReminderInterval>
        </Reminder>
    </SpecialEvent>
    <SpecialEvent Week="W20240527" FLGMode="false">
        <Event>Circuit Assembly</Event>
        <Location>Grand Fenwick</Location>
        <SRREventType>SRRSpecialEvent</SRREventType>
        <MWBEventType>MWBSpecialEvent</MWBEventType>
        <DateTime AllDayEvent="true">
            <Date Day="31" DayPadded="31" DayShort="Fri" DayFull="Friday" Month="5" MonthPadded="05" MonthShort="May" MonthFull="May" Year="2024">31.05.2024</Date>
        </DateTime>
        <Reminder SetReminder="true">
            <ReminderInterval Units="Days">1</ReminderInterval>
        </Reminder>
    </SpecialEvent>
</SpecialEvents>
ajtruckle commented 1 month ago

@cengizu I am sending you a new beta to try. I have completed the changes needed to support the new events database.

[!Note] Do not create any events with the FLG Mode set as I have not adapted the XSL template yet.

Here is the new template: Workbook-S-140-Events.zip

Things to do:

See how it behaves. Thank you. 🙏

ajtruckle commented 1 month ago

@cengizu I am sending you a new beta with the following template revisions:

ajtruckle commented 1 month ago

@cengizu I have made several other improvements now, including:

ajtruckle commented 1 month ago

@cengizu I have been examining the Foreign Language Group mode.

<xsl:variable name="event"
    select="$EventsDatabase/msa:SpecialEvents/msa:SpecialEvent[@Week = current()/Date/@ThisWeek]"/>
<xsl:variable name="flgMenuId" select="//Settings/ForeignGroupMenuId"/>
<xsl:variable name="event"
     select="$EventsDatabase/msa:SpecialEvents/msa:SpecialEvent[@Week = current()/Date/@ThisWeek
     and @FLGMode='true'
     and @FLGMenuId = $flgMenuId]"/>

[!Note] I have to change the software to include ForeignGroupMenuId in the XML file.

I would suggest that the user creates a duplicate of the template and modifies the logic accordingly, or alternatively, we could provide a sample on GitHub. In my opinion, it appears overly complex to accommodate both event types within a single template.

OpenAI's ChatGPT offers several suggestions, but I have found that they are not effective.