From dd5cad86b81f12b1cadeb8c04e544424fc05bf5f Mon Sep 17 00:00:00 2001 From: Gowtham M Date: Fri, 5 Sep 2025 12:00:38 +0530 Subject: [PATCH] GWM : shorting issue --- pb.zip | Bin 24977 -> 25044 bytes pb/main.go | 16 ++++++ pb/pb_public/approve.png | Bin 969 -> 0 bytes pb/pb_public/privacy/index.html | 97 ++++++++++++++++++++++++++++++++ pb/pb_public/reject.png | Bin 970 -> 0 bytes pb_data/data.db | Bin 733184 -> 733184 bytes pb_data/data.db-shm | Bin 0 -> 32768 bytes pb_data/data.db-wal | Bin 0 -> 8272 bytes pb_data/logs.db | Bin 45056 -> 106496 bytes pb_data/logs.db-shm | Bin 0 -> 32768 bytes pb_data/logs.db-wal | Bin 0 -> 49472 bytes utils/calculation.go | 59 +++++++++++++++---- 12 files changed, 161 insertions(+), 11 deletions(-) delete mode 100644 pb/pb_public/approve.png create mode 100644 pb/pb_public/privacy/index.html delete mode 100644 pb/pb_public/reject.png create mode 100755 pb_data/data.db-shm create mode 100755 pb_data/data.db-wal create mode 100644 pb_data/logs.db-shm create mode 100644 pb_data/logs.db-wal diff --git a/pb.zip b/pb.zip index 0bec093337817ecd14fa425cacb24795fc9073ad..521178732b8b9759d397166d3f221ea81dc421ae 100644 GIT binary patch delta 24273 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�G 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 delta 24201 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 diff --git a/pb/main.go b/pb/main.go index 164745c..d75f467 100755 --- a/pb/main.go +++ b/pb/main.go @@ -475,6 +475,22 @@ func main() { app = pocketbase.New() + app.OnBeforeServe().Add(func(e *core.ServeEvent) error { + // Serve privacy policy static page + e.Router.GET("/privacy/*", apis.StaticDirectoryHandler(os.DirFS("./pb_public/privacy"), false)) + + // API endpoint: returns JSON policy + e.Router.GET("/api/privacy", func(c echo.Context) error { + policy := map[string]string{ + "title": "Privacy Policy", + "content": "We respect your privacy. Data is collected only for authentication and secure service delivery.", + } + return c.JSON(http.StatusOK, policy) + }) + + return nil + }) + // Hook to send notifications when a new record is created app.OnRecordAfterCreateRequest("notification").Add(func(e *core.RecordCreateEvent) error { title_en := e.Record.GetString("title_en") diff --git a/pb/pb_public/approve.png b/pb/pb_public/approve.png deleted file mode 100644 index c800e6612079d062724c5e4779eab83e76c4d260..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 969 zcmV;)12+7LP)@~0drDELIAGL9O(c600d`2O+f$vv5yPi5bEeeRp9-ZNK6hoF9snWgrf`aRf0 zbRP8hpHv!V#_Y_6Akjy#8L5Ax+wYQ58#1^?_#q%saC6(qJ4J{+Zc8iKMhvtx5p2{I zW7kaXhQ`81h{FLRmszI$#@gbD{bQ5!6wJT_Ed=2ASUWUGjSg`IfZrN2HlWL%g&BbUai8X=?l^mbM_MRwpLFQ7bu@u|poC%5Qds>YXXg1o=CE^g;K*jWj<&oKvm zK>sAX$$Gvx{jDeemnydYQIyBCHqutatTvEc5f2B$Y5Hk2hX?O`KmWVw?CIZ5r zHC={|jXTioP@dAsD>@|zSv?{|%EzQ>Q7J-JSCd4FCPYa>j?QwVkpEuUmL_ENvZVYk z+@$4)`@OiO`hvz_y(GKjqS(KE4NW>uXbtQnW^NW;$T)p~< zW`^;B@hh#)kML2>Y{UYDjF0JC1K~rr>cj$s@($e`WufEIJ?b5g9s@p%ucIKG`Y6nE zkZsV>qd@%1!4U-y5)i*lGwuL8VoV@@ImBG-7*&5qzszD}fYO&kJmUw%aj^t<)=?AX z#?xUYXk%q0hHsxuf5idAQ7Z+B+G!g4hsYV_Au)H(iGGQl@L2TB5!z=zuA9CCEbqianetKt00000NkvXXu0mjf72?5r diff --git a/pb/pb_public/privacy/index.html b/pb/pb_public/privacy/index.html new file mode 100644 index 0000000..5a6491c --- /dev/null +++ b/pb/pb_public/privacy/index.html @@ -0,0 +1,97 @@ + + + + + Privacy Policy - FCSC + + + +
+

+ Privacy Policy +

+ +

+ Welcome to the Federal Competitiveness and Statistics Centre (FCSC) Mobile Application. + We value your privacy and data protection and are committed to safeguarding your personal + information. This Privacy Policy explains how we collect, use, share, and protect your information + when using this App. +

+ +

+ By using the App, you consent to the practices described in this Privacy Policy. +

+ +

1. Information We Collect

+

1.1 Personal Information

+
    +
  • Name, email address, phone number (when registering an account).
  • +
  • User credentials (such as username and password).
  • +
  • Demographic data (if provided by the user).
  • +
+ +

1.2 Usage Data

+
    +
  • Device information (IP address, operating system, device type).
  • +
  • App interactions (pages viewed, features used, actions performed).
  • +
  • Log data (error reports, login timestamps).
  • +
+ +

1.3 Location Data

+

If enabled, we may collect location-based data (to enhance certain features).

+ +

1.4 Cookies and Tracking Technologies

+

We may use cookies, analytics tools, and tracking technologies to improve App functionality and user experience.

+ +

2. How We Use Your Information

+
    +
  • Provide and improve services.
  • +
  • Deliver insights, statistics, and reports.
  • +
  • Personalize user experience.
  • +
  • Ensure security and prevent unauthorized access.
  • +
  • Comply with UAE laws and regulations.
  • +
  • Communicate with users (inquiries, updates, support).
  • +
+ +

3. How We Share Your Information

+

FCSC does not sell or trade your personal information. However, we may share data in the following cases:

+
    +
  • Government and Legal Compliance (UAE authorities, legal obligations).
  • +
  • Third-Party Service Providers (hosting, analytics, technical support).
  • +
  • Security and Fraud Prevention.
  • +
+ +

4. Data Storage and Security

+
    +
  • AES-256 encryption to protect user data.
  • +
  • Stored on government-approved secure servers.
  • +
  • Access only by authorized personnel.
  • +
  • Data retained only as long as legally necessary.
  • +
+ +

5. User Rights and Choices

+
    +
  • Access & Review your stored personal data.
  • +
  • Correction & Deletion of personal data.
  • +
  • Opt-Out of marketing communications.
  • +
  • Disable location services via device settings.
  • +
+

To exercise these rights, contact us at [Insert Official FCSC Email].

+ +

6. Third-Party Links and Services

+

The App may contain links to external websites or services (e.g., UAE government portals). + FCSC is not responsible for third-party privacy practices. Users should review their respective Privacy Policies.

+ +

7. Children's Privacy

+

The App is not intended for children under 13 years. We do not knowingly collect data from minors. + Parents or guardians may request removal of a child’s data by contacting FCSC.

+ +

8. Changes to This Privacy Policy

+

We may update this Privacy Policy periodically to reflect changes in laws, technology, or user feedback. + The latest version will always be available in the App.

+ +

9. Contact Information

+

For privacy-related inquiries, you may contact: info@fcsc.gov.ae

+
+ + diff --git a/pb/pb_public/reject.png b/pb/pb_public/reject.png deleted file mode 100644 index c5165e6b537987ab29fad3263feb3de750b52e5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 970 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 literal 0 HcmV?d00001 diff --git a/pb_data/logs.db b/pb_data/logs.db index 8d06f503e2744b9993749e47e40cf045bdc4bb5e..ededcfc2c65356657cc1f8364d31d3b3f17fd0f3 100644 GIT binary patch literal 106496 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 delta 568 zcmZoTz}E19X@WE>8v_Fa_e2GIMz)O!OZ0h|_`d-K7`XX=^MBhc(D01k1jyr30ur3k zTtHHQ?*Iee0sazx0sc39FZgfpAK|;g@58@=?+<3@%9#W?e>i*ANB$w8XN^O)5S}tA-T|*NE15+yl10dSmP}ic!!^k_E0f<1Zg=! zL|fb9^=4Y@(fM6x_DF9J{6BpqE5Duuoq6d-u?7009C72rN-xXNh;Yiokja?5@{yy|#fsZVZ$r0=Z{V z$`Uv#YaG)MXd%#Tadxwh=6+o%OW?SyaZE#?g+Oi=7Xkzb5FkK+009C72oNAZfB*pk Z1PBlyK!5-N0t5&UAV7cs0Ro#T@C&{@CtCmj literal 0 HcmV?d00001 diff --git a/pb_data/logs.db-wal b/pb_data/logs.db-wal new file mode 100644 index 0000000000000000000000000000000000000000..9da7163fcfef15042aae9323cfe800756f9fb13c GIT binary patch literal 49472 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

I0BiY*LX8JuvrU83u) zp+9v~*bj$Z8I-X<>d~B6cf>=#qY^RGz0&WzJUu^i&e(RLenGjoB$k=Qcw)I!DhSC+ zpt_~6yggQs zPFu`;J9S$B_<%i0>QxWa{m|~$9A~yzLQEi&xpnK)R1Bh@TRj6xOIW=^}akFh!nj2r%JC=;> z?+UDmFc+7f{6t7PaX(1%VhfIIYdNfIx!Nb`cne9WAbOArq9dQk<8bJHJPrr3A3APq z@o_k?uWQl}QMaMY{$K0z8DMS0gMFZF`Ec!>(JWg$N4ripd92$R0rm-az^B$PaPS-P zU;Gynd;!iE*xQ|TxE~tw_WnV4cJN1ozdQK!z{dlx3{d@V^^5&a_dnYINdNx6f9U(| z-kVSYx)1}10mQ(j89<#~>-N8Wn%;7OZ5-Q%{!t2<%!6by2e-jw0^1;CqHRO0tRSUjQ7ITZL6bB?2V-ZmH?AvBQ}Vfl z3tqjFZ1t~vE)*Um_gab7nfd#y|zrfGrzyI)`e)ff*K+I|e zxjt3eIJvKWDy)@v0i02q;S^glv2~9zco3i+$q7zL>YihZs+6}C0w!dWL5iv-V7O&Wete6M0LtAI@HU;Kb5R##A4|ejGa2wg`YvNvbG{ zF_F)wwT!JW`g0Q37jcM^4W8GgRR&?vfiA=VVgNCK7(fgl1`q>?0mJ}e;8%-*qcFK< zzW`ZseBl3=&&437FC%YS2W$26kNOI1tjO12woqTeI(ruA40ZDUZicbKKE8h-9)H?4w3}4rw->HPgPX11%=!Fy}g_+4uO*!GO35^T8TqOQUE8r)uYM19?8uOp&9g#9>n*i-_(EOYr})SOa4 z!?Fckhyla^VgNCK7(fgl1`q>?0mQ(LVqh4gX4vc(D897xosWu-#$gIKdObpY1*or} z<&*+A>VuXYz@-uP-{Z~64i9c$!8#KPf{dS_!c^#2Y(@c17$X9zq-fE}>b!s|lojN8 zN#n#Qnsxw>IBA(hfu8s;GE@EHgs$+n$= O0P!95di-D}=Klb_P%O9r literal 0 HcmV?d00001 diff --git a/utils/calculation.go b/utils/calculation.go index 88058f3..f957731 100755 --- a/utils/calculation.go +++ b/utils/calculation.go @@ -433,6 +433,7 @@ type ChartCalculationRequest struct { GroupByAndSum string `json:"groupby_and_sum"` AdditionalForGroupByAndSum string `json:"additional_for_groupby_and_sum"` GetTop string `json:"get_top"` + ShortBy string `json:"short_by"` Conversion string `json:"conversion"` } @@ -463,12 +464,27 @@ func CalculateGroupedSum(observations []Observation, request ChartCalculationReq }) } - // Sort by value in descending order - sort.Slice(valueList, func(i, j int) bool { - val1, _ := valueList[i].ObsValue.Value.Float64() - val2, _ := valueList[j].ObsValue.Value.Float64() - return val1 > val2 // Descending order - }) + // Sort by value in descending order or given key + shortByKey := request.ShortBy + if shortByKey != "" { + // Sort by given key + sort.Slice(valueList, func(i, j int) bool { + val1Str := valueList[i].ObsKey[shortByKey] + val2Str := valueList[j].ObsKey[shortByKey] + + val1, _ := strconv.ParseFloat(val1Str, 64) + val2, _ := strconv.ParseFloat(val2Str, 64) + + return val1 > val2 // Descending order + }) + } else { + // Default sorting by ObsValue.Value + sort.Slice(valueList, func(i, j int) bool { + val1, _ := valueList[i].ObsValue.Value.Float64() + val2, _ := valueList[j].ObsValue.Value.Float64() + return val1 > val2 // Descending order + }) + } // Get the top N values topN, err := strconv.Atoi(request.GetTop) @@ -526,12 +542,33 @@ func CalculateGroupedSum(observations []Observation, request ChartCalculationReq }) } + // Sort by value in descending order or given key + shortByKey := request.ShortBy + if shortByKey != "" { + // Sort by given key + sort.Slice(result, func(i, j int) bool { + val1Str := result[i].ObsKey[shortByKey] + val2Str := result[j].ObsKey[shortByKey] + + val1, _ := strconv.ParseFloat(val1Str, 64) + val2, _ := strconv.ParseFloat(val2Str, 64) + + return val1 > val2 // Descending order + }) + } else { + // Default sorting by ObsValue.Value + sort.Slice(result, func(i, j int) bool { + val1, _ := result[i].ObsValue.Value.Float64() + val2, _ := result[j].ObsValue.Value.Float64() + return val1 > val2 // Descending order + }) + } // Sort by summed values in descending order - sort.Slice(result, func(i, j int) bool { - val1, _ := result[i].ObsValue.Value.Float64() - val2, _ := result[j].ObsValue.Value.Float64() - return val1 > val2 // Sort descending - }) + // sort.Slice(result, func(i, j int) bool { + // val1, _ := result[i].ObsValue.Value.Float64() + // val2, _ := result[j].ObsValue.Value.Float64() + // return val1 > val2 // Sort descending + // }) // Get the top N values topN, err := strconv.Atoi(request.GetTop)