He:מדרג מיקום
תכונה שנוספה בגרמפס גרסת 4.1 אובייקטי מקום מאוגדים במדרג החל מגרסת גרמפס 4.1 |
Contents
מבנה מיקומים חדש
אוביקט מקום
במקום להכיל מיקום ראשי, אובייקטי מקום מסודרים כעת במדרג. הם כוללים ארבעה שדות חדשים:
- name
- type
- placeref_list (רשימת מקומות אב)
- code (מיקוד / מספר טלפון)
מקום מקושר למקום-הורה על ידי אובייקטי PlaceRef. אלה מכילים קישור למקום-הורה ולתאריך. למקום מסויים יכולים להיות מספר מקומות-הורה, או, במידה והמקום הוא ברמה העליונה (הוא ההורה) ללא הורים כלל. הערך הראשון ברשימה נחשב כהורה העיקרי.
סוג המקום מאוחסן ב־GrampsType שנקרא PlaceType.
שדה הקוד מועבר לאחסון קוד המשויך למקום. הקוד יכול להיות קוד מדינה, קיצור מדינה, קוד מחוז דרום וכו '... שדרוג מסד הנתונים יקצה את המיקוד ו/או מספר הטלפון לשדה זה.
פעולות כלים
לקבלת תיאור המיקום של מקום, נדרש לעבור דרך המקום שברמה העליונה ביותר במדרג. קיימות כמה פונקציות שירות ב- gen.utils.location למטרה זו:
get_location_list(db, place)
הפונקציה חוצה את מדרג המקומות בעקבות ההורה הראשי ומחזירה את רשימת שמות המקומות. לאחר מכן ניתן לעצב את הרשימה תוך שימוש בשיטת 'join'.
', '.join(get_location_list(db, place))
get_main_location(db, place)
גם פונקציה זו חוצה את המדרג בעקבות ההורה הראשי, אך מחזיר מילון סוגי מקומות ושמות. שימושי מאוד לחלוץ מקום על פי סוג מסוים.
get_main_location(db, place).get(PlaceType.CITY)
get_locations(db, place)
חישוב מסלול אפשרי במעלה מדרג המקומות ומחזיר רשימה המכילה מילון סוגי מקומות ושמות. כל רכיב רשימה מייצג נתיב נפרד במעלה המדרג.
מסד נתונים
מצג מדרג מקום משתמש בהורים ראשיים לאחזור מדרג המקום. סמן עץ חדש מספק למצג את רשומות המקום בסדר יורד, דבר שמפשט מאוד את הקוד. כל צומת במצג העץ מייצג מקום בגרמפס.
כדי למצוא צאצאים במדרג המקום, ניתן להשתמש בשיטת מסד הנתונים הקיימת find_backlink_handles. אם רק מקפידים להשתמש בשיטת find_place_child_handles החדשה ב'הורים ראשיים'.
גם סמן עץ המקום וגם שיטת find_place_child_handles משתמשים במיפתח ההורה הראשי הנקרא place_parent.
ללא שינוי
אובייקט המקום עדיין מכיל שדה כותרת. שדה שמכיל תיאור מלא של המקום ומשמש גם ברוב הדוחות.
מקומות חלופיים לא הומרו למקומות חדשים במדרג.
מה הלאה?
- Do we want to use the new widgets demonstrated in the prototype?
- Should we support Gedcom 5.5EL? See Feature Request:688