diff --git a/funnel/__init__.py b/funnel/__init__.py index c35b95d76..adc047ce7 100644 --- a/funnel/__init__.py +++ b/funnel/__init__.py @@ -4,6 +4,7 @@ from __future__ import absolute_import import coaster.app from flask import Flask +from flask_flatpages import FlatPages from flask_migrate import Migrate from flask_mail import Mail from flask_lastuser import Lastuser @@ -16,6 +17,7 @@ funnelapp = Flask(__name__, instance_relative_config=True, subdomain_matching=True) mail = Mail() lastuser = Lastuser() +pages = FlatPages() # --- Assets ------------------------------------------------------------------ @@ -58,10 +60,11 @@ lastuser.init_app(funnelapp) lastuser.init_usermanager(UserManager(db, models.User, models.Team)) +pages.init_app(app) baseframe.init_app(app, requires=['funnel'], ext_requires=[ ('codemirror-markdown', 'pygments'), 'toastr', 'baseframe-mui', 'fontawesome>=4.0.0', - 'ractive', 'jquery-easytabs'], theme='mui') + 'ractive', 'jquery-easytabs'], theme='mui') app.assets.register('js_fullcalendar', Bundle(assets.require('!jquery.js', 'jquery.fullcalendar.js', 'spectrum.js'), output='js/fullcalendar.packed.js', filters='uglipyjs')) diff --git a/funnel/pages/about/contact.md b/funnel/pages/about/contact.md new file mode 100644 index 000000000..d9bebdb45 --- /dev/null +++ b/funnel/pages/about/contact.md @@ -0,0 +1,18 @@ +title: Contacting HasGeek + +We try to be as accessible as possible. + +For general enquiries, email us at [info@hasgeek.com](mailto:info@hasgeek.com). For priority support requests, use [support@hasgeek.com](support@hasgeek.com). Prefer social media? We’re [@hasgeek](https://twitter.com/hasgeek) on Twitter and [Facebook](https://www.facebook.com/HasGeek). We host the [Friends of HasGeek](https://friends.hasgeek.com) Slack team that anyone can join. + +You can also call us at [+91 7676 33 2020](tel:+917676332020). This goes straight to the mobile numbers of all team members. If all of us are unable to take a call (or you hang up before we answer), we’ll call you back as soon as we can. + +We are unfortunately unable to take appointments for any product or service you’d like to pitch us, so please don’t call or email about that. + +We host an Open House almost every Friday (the exception being when we are all travelling or hosting an event out of office). Drop in on Fridays 5 PM onwards: + +> HasGeek House +> \#2699, 19th Main, 5th Cross, Indiranagar HAL 2nd Stage +> Bangalore - 560 008, KA, India +> Ph: +91 7676 33 2020 + +This is also where you send us any parcels. Unexpected goodies are always nice. diff --git a/funnel/pages/about/index.md b/funnel/pages/about/index.md new file mode 100644 index 000000000..e23859592 --- /dev/null +++ b/funnel/pages/about/index.md @@ -0,0 +1,18 @@ +title: About HasGeek + +HasGeek creates discussion spaces for geeks. We host [Hasjob](https://hasjob.co/), the HasGeek Job Board, and several well regarded technology conferences: + +* [Fifth Elephant](https://fifthelephant.in/), on data and analytics +* [Rootconf](https://rootconf.in/), on infrastructure +* [JSFoo](https://jsfoo.in/), on JavaScript +* [Meta Refresh](https://metarefresh.in/), on front-end engineering and product design +* [droidconIN](https://droidcon.in/), on Android +* [50p](https://50p.in/), on payments infrastructure + +You may also know us for our past events [DocType HTML5](http://www.doctypehtml5.in/), [AndroidCamp](https://androidcamp.hasgeek.com/), [Scaling PHP in the Cloud](https://phpcloud.hasgeek.com/) and the [Cartonama Conference](https://cartonama.com/). + +Future events are announced on [Talkfunnel](https://talkfunnel.com/), our community-powered website for event organisers and speakers. Come to our events to meet like-minded people, learn new things, and discover new opportunities. Videos from the events we host are on [HasGeek TV](https://hasgeek.tv). + +[We publish our code on GitHub](https://github.com/hasgeek). Work with us to make better community software for everyone. + +HasGeek re-incorporated in 2015 as HasGeek Learning Private Limited, with a renewed focus on learning opportunities for people in technology. We were previously HasGeek Media LLP (since 2010). If you do business with us, you may continue to be affiliated with the LLP through a transition period. diff --git a/funnel/pages/about/media.md b/funnel/pages/about/media.md new file mode 100644 index 000000000..37f9907bb --- /dev/null +++ b/funnel/pages/about/media.md @@ -0,0 +1,3 @@ +title: Media resources + +(Forthcoming) diff --git a/funnel/pages/about/policy/adtos.md b/funnel/pages/about/policy/adtos.md new file mode 100644 index 000000000..0f044f63f --- /dev/null +++ b/funnel/pages/about/policy/adtos.md @@ -0,0 +1,21 @@ +title: Sponsorship and advertising terms of service + +Please see our [terms of service](terms) policy for important definitions used here. + +HasGeek makes physical and online space available for advertisers to showcase their products, APIs, services and job opportunities, for a fee. Specific terms for such opportunities will apply and will be set forth separately (in an email, ordering facility, written agreement, etc). The advertising order will be considered fulfilled once the Advertiser’s collateral has been displayed or serviced for a pre-specified period of time. + +Advertisers may cancel their order through User’s account if online cancellation functionality is available, or, if not available, with prior written notice to HasGeek, including without limitation electronic mail. The cancellation of any advertising may be subject to this document, the sponsorship and advertising terms of service, or HasGeek’s ability to re-schedule reserved inventory or cancel ads already in production. Cancelled ads may be published despite cancellation if cancellation of those ads occurs after any applicable commitment date as set forth in advance by HasGeek, in which case Advertiser must pay for those ads. + +## You must agree to these terms to advertise with HasGeek: + +1. I understand that my advertisement is subject to full specifications and artwork provided by me at least 72 hours before the scheduled start of such advertisement. + +2. I understand that my advertising collateral must comply with the [community guidelines](community) and [code of conduct](code). + +3. I understand that my interactions with other persons is my responsibility, and will not solicit for an illegitimate work opportunities and will not use sexist, racist or misogynist language on advertising collateral. I further assert that I am solely responsible for the content of my advertising collateral. + +HasGeek may revise these terms or discontinue the Service without prior notice at any time. In the event of discontinuation of Service, if an advertising order was made and involved a payment, refunds are subject to the [refund policy](refunds). + +## Grievances + +In case you feel that the product or service received is not as per your expectations, please notify us via our [support channels](/about/contact) within 24 hours of receiving the Service. The customer service team, after looking into your complaint, will take an appropriate decision. diff --git a/funnel/pages/about/policy/code.md b/funnel/pages/about/policy/code.md new file mode 100644 index 000000000..0bdb68932 --- /dev/null +++ b/funnel/pages/about/policy/code.md @@ -0,0 +1,22 @@ +title: Code of conduct + +This code of conduct applies across online forums, conferences and other events hosted by HasGeek. + +We are here as a community to deliberate on the topics of the forum. + +1. Be nice to everyone, +2. Be empathetic, +3. Be questioning, as it furthers the discussion, but +4. Discuss ideas, not people and their personalities (as that would be _ad hominem_). + +We strongly condemn any kind of harassment of any fellow participant. This includes: + +1. Sustained disruption of talks, discussions and other events. +2. Offensive remarks or jokes made about women, men, persons of non-binary genders and those with physical disabilities, or on the basis of sexuality, race, caste or religion. +3. Use of images that objectify the human body unless absolutely relevant to the discussion. +4. Inappropriate physical contact and invasion of private space. +5. Deliberate intimidation, unwelcome gestures and stalking. + +Please report in confidence by sending an SMS to +91 7676 33 2020. SMSes are received by HasGeek staff who can address this quickly. + +Violators, regardless of their standing, may be expelled from the forum, without a refund (where payment was applicable), and reported to the authorities. diff --git a/funnel/pages/about/policy/community.md b/funnel/pages/about/policy/community.md new file mode 100644 index 000000000..37970964b --- /dev/null +++ b/funnel/pages/about/policy/community.md @@ -0,0 +1,19 @@ +title: Community guidelines + +Please see our [terms of service](terms) policy for important definitions used here. + +(To be drafted) + +If you violate our community guidelines then: + +* Your account can be suspended + +However upon re-complying with our community guidelines, your account can be reactivated upon request subject to HasGeek's discretion. + +## Account creation + +* Pseudonyms not allowed which means you have to use your or your organization's legal name to register an account + +* Age limit of 18 years or older to sign up with HasGeek + +* Each user, organization or entity is restricted to one public account. diff --git a/funnel/pages/about/policy/index.md b/funnel/pages/about/policy/index.md new file mode 100644 index 000000000..dd27aac88 --- /dev/null +++ b/funnel/pages/about/policy/index.md @@ -0,0 +1,8 @@ +title: Site policies + +1. [Terms of service](terms) +2. [Sponsorship and advertising terms of service](adtos) +3. [Privacy policy](privacy) +4. [Cancellation, return and refund policy](refunds) +5. [Community guidelines](community) +6. [Code of conduct](code) diff --git a/funnel/pages/about/policy/privacy.md b/funnel/pages/about/policy/privacy.md new file mode 100644 index 000000000..90e6ed301 --- /dev/null +++ b/funnel/pages/about/policy/privacy.md @@ -0,0 +1,122 @@ +title: Privacy policy + +Please see our [terms of service](terms) policy for important definitions used here. + +This document sets out how HasGeek uses and protects any information that the User may give HasGeek when they use this website. HasGeek is committed to ensuring that the User’s privacy is protected. + +## Consent to data and acceptance of this policy + +By agreeing to our [terms of service](terms), you are also agreeing to this privacy policy. + +## Policy revisions + +HasGeek reserves the right to make changes to this privacy policy any time by updating this page. Users should check this page from time to time to ensure that they are happy with any changes. If a User objects to any change to the Policy, the User must cease using this Service and can request the Data Controller to deactivate the User's Account. + +This policy is effective from January 1, 2016. + +## Definitions and legal references + +“**Data Subject**” + +The legal or natural person to whom the Personal Data (as defined below) refers. + +“**User**” or “**you**” or “**your**” + +The individual using this Service, which must coincide with or be authorized by the Data Subject, to whom the Personal Data (as defined below) refers. + +“**Personal Data**” + +Any information regarding a natural person, a legal person, an institution or an association, which is, or can be, identified, even indirectly, by reference to any other information, including a personal identification number, and which has been submitted by you on behalf of the Data Subject. + +“**Application**” or “**Service**” + +The hardware or software tool by which your Personal Data is collected. + +“**Browsing and Usage Data**” + +Information collected automatically from this Service (or third party services employed in this Service), which can include: the IP (Internet Protocol) addresses or domain names of the computers utilized by the Users who use this Service, the URI addresses (Uniform Resource Identifier), the time of the request, the method utilized to submit the request to the server, the size of the file received in response, the numerical code indicating the status of the server’s answer (successful outcome, error, etc.), the country of origin, the features of the browser and the operating system utilized by the User, the various time details per visit (e.g., the time spent on each page within the Service) and the details about the path followed within the Service with special reference to the sequence of pages visited, and other parameters about the device operating system and/or the User’s IT environment. + +“**Data Processor**” or “**Data Supervisor**” + +The natural person, legal person, public administration or any other body, association or organization authorized by the Data Controller (as defined below) to process the Personal Data in compliance with this privacy policy. + +“**Data Controller**” or “**Owner**” + +The natural person, legal person, public administration or any other body, association or organization with the right, also jointly with another Data Controller, to make decisions regarding the purposes, and the methods of processing of Personal Data and the means used, including the security measures concerning the operation and use of this Service. The Data Controller, unless otherwise specified, is the Owner of this Service. + +“**Cookie**” + +A cookie is a small file which asks permission to be placed on the your computer’s hard drive. Once you agree (your browser may be configured to automatically agree on your behalf), the file is added. Cookies allow web applications to respond to you as an individual. The Service can tailor its operations to your needs, likes and dislikes by gathering and remembering information about your preferences. + +## Information collection + +We operate multiple websites and services. When using these websites and services, your browser, computer or phone automatically submits information about itself, and about what you would like to access from our websites. We collect some of this information to help improve our services, including but not limited to the Browsing and Usage Data. + +You may also be required to submit additional information about yourself, including but not limited to your publicly used name, employer name, job title, contact information and any other information as required for your use of our services. + +## Information use + +We collect and store information from our Users for the following purposes including but not limited to: + +* To render the page or service the User requested +* For internal record keeping +* To improve our products and services +* To contact the User with regards to the services they have availed of +* To contact you for promotional offers or market research purposes, with the User’s consent +* To syndicate User’s publicly available data +* To syndicate User’s pesonally identifiable information with HasGeek and it’s partners + +### Disclosure + +Any subpoena or attempts by government agencies or private sector organizations to gain access to any information that you give us will be vigorously challenged. In the unlikely event that we are required by law to disclose the information that you have submitted, we will attempt to provide you with notice (unless we are legally prohibited from doing so) that a request for your information has been made in order to give you an opportunity to object to the disclosure. + +### Information ownership + + We claim no intellectual property rights over the material the User provides to this Service. + +### Information control + +__Retention__ + +We retain User’s searches and other identifiable User information for an undefined period of time. + +__Conservation__ + +We are committed to ensuring that User’s information is secure. In order to prevent unauthorised access or disclosure we have put in place suitable physical, electronic and managerial procedures to safeguard and secure the information we collect online. + +__Retrieval__ + +* The User may request a copy of their data +* The User cannot request a copy of this Service’s representation of User’s data + +__Opt-out and Deletion__ + +* If User no longer wishes to receive marketing email from us, then they can unsubscribe using the unsubscribe link included in the email. + +* Complete withdrawal of information is not always possible as some information may persist in database backups, in messages the User has sent to other Users via our Services, or in public pages that have been reproduced by third parties without our involvement. A request for closing an Account refers to the Account being deactivated. + +* If a User would like to close their account, they must write to us on our [support channels](/about/contact). + +__Transfer__ + +User’s Personal Data may be disclosed to a third party in case of business transfer or insolvency. + +## Cookies, third-party analytics and logging + +__Cookies and logging__ + +We use cookies to log traffic on our website, that is, to identify which pages are being used. This helps us analyse and improve our website in order to tailor it to fit our customers’ needs. We only use this information for statistical analysis purposes. Overall, cookies help us provide User with a better website, by enabling us to monitor which pages User may find useful and which they do not. A cookie in no way gives us access to User’s computer or any information about User, other than the data the User chooses to share with us. User can choose to accept or decline cookies. Most web browsers automatically accept cookies, but User can usually modify their browser setting to decline cookies if they prefer. This may prevent the User from taking full advantage of the website as several aspects of it require cookies to function normally. + +__Third-party analytics__ + +We use analytics tools and other third party technologies, such as Google Analytics, to collect non-personal information in the form of various usage metrics when the User uses our services. These tools and technologies collect and analyse certain types of information, including cookies, IP addresses, device and software identifiers, referring and exit URLs, onsite behavior and usage information, feature use metrics and statistics, usage and purchase history, MAC Address, mobile unique device ID, and other similar information. The third party analytics companies who collect information on our services and other online products and/or services may combine the information collected with other information they have independently collected from other websites and/or other online or mobile products and services relating to User’s activities across their network of websites as well as online and/or mobile products and services. Many of these companies collect and use information under their own privacy policies. + +The User may opt out of Google Analytics by visiting the [Google Analytics opt-out page](https://tools.google.com/dlpage/gaoptout) or by using an ad blocker. + +## Content and scope of website + +Our website may contain links to other websites of interest. However, once the User have used these links to leave our site, the User should note that we do not have any control over that other website. Therefore, we cannot be responsible for the protection and privacy of any information which User provides whilst visiting such sites, and such sites and the User are no longer governed by this privacy statement or HasGeek’s [terms of service](terms). The User should exercise caution and look at the privacy statement applicable to the website in question. + +## Support + +If there are any questions regarding this privacy policy, contact us via [our support channels](/about/contact). diff --git a/funnel/pages/about/policy/refunds.md b/funnel/pages/about/policy/refunds.md new file mode 100644 index 000000000..e106d7d4e --- /dev/null +++ b/funnel/pages/about/policy/refunds.md @@ -0,0 +1,31 @@ +title: Cancellation, return and refund policy + +At HasGeek we believe in offering value in exchange for value. These are our cancellation, return and refund policies with regards to our various services. + +Refunds, where eligible, are typically issued via the same instrument that was used to make the payment (so the refund will go to your card or bank for an online payment). However, we are sometimes unable to do this and may offer you a cheque, bank transfer, cash, or credit coupon, at our discretion. + +## Events + +We offer a 100% refund on attendee ticket cancellations until the day before the event, but some events may have a specific policy that overrides this generic policy. Please check if the event you are cancelling for has a specific policy. + +Please write to us at to request a refund (or see the [contact info](/about/contact) page for other ways to contact us). + +We may cancel an event due to unforeseen reasons or circumstances outside our control (force majeure events such as floods, fire, riots, terrorist incidents, bandhs, etc). If that happens, we may reschedule the event or issue a full or partial refund at our discretion. + +## Merchandise + +**Returns:** If you are unhappy with the merchandise for any reason, you can return the item in an unused condition within 7 days of purchase for a replacement or a refund. Replacement is subject to availability. At the moment all returns must be in-person at our office or at our events. + +Some items may be sold without the option of a return, and will be indicated as such in the item description or during the checkout process. + +**Refunds:** Refunds are issued upon receipt of an item in a saleable condition (subject to the above exception). A restocking fee may apply. + +## Sponsorships, advertising and job board + +Offline bookings are not covered under this policy and will have specific terms revealed to you at the time of making the booking. + +For online bookings, any unused credits are available for refund. Credits, once used, are deemed a final, irreversible sale. + +## Support + +Please see the [contact info](/about/contact) page if you have any questions regarding this policy. diff --git a/funnel/pages/about/policy/terms.md b/funnel/pages/about/policy/terms.md new file mode 100644 index 000000000..8060da527 --- /dev/null +++ b/funnel/pages/about/policy/terms.md @@ -0,0 +1,119 @@ +title: Terms of service + +These are the terms under which you, the User, may use this Service. + +## Definitions and legal references + +The terms “**HasGeek Learning Private Limited**”, “**HasGeek**”, “**us**”, “**we**” and “**our**” refer to the owner of the Service whose registered office is at #2699, 19th Main, 5th Cross, Indiranagar HAL 2nd Stage, Bangalore - 560 078, Karnataka, India. Our registration number is U74900KA2015PTC083923 and we are incorporated under the Companies Act 2013 of India. + +Definition of other terms used in this document: + +* “**Application**”, “**App**”, “**Service**”, “**Website**”, “**Event**” or “**Product**”: Any application, service, website, event or product provided by HasGeek +* “**User**”: The individual using this Service +* “**Account**”: A collection of User-provided information held by HasGeek on behalf of the User + +## Acceptance of terms of service and breach + +If the User continues to browse and use this Service, they are agreeing to comply with and be bound by the following terms and conditions of use, which together with our [privacy policy](privacy) and [community guidelines](community) govern HasGeek’s relationship with the User in relation to our Service, except to the extent they are overriden by special terms that we announce with respect to the respective Service. + +If the User violates these terms, HasGeek may discontinue providing the User with one or more Services and/or refuse to provide the User with access to all HasGeek Services. In addition, we reserve the right to recover any amounts due and owed by the User to HasGeek and to take any necessary legal action including but not limited to a referral to the appropriate legal institution or other authorities for initiating criminal or civil proceedings against the User. + +The User shall defend and indemnify HasGeek, its owners (and directors as applicable), licensees, affiliates, subsidiaries, group companies (as applicable) and their respective officers, directors, agents, and employees, from any claim or demand, or actions including reasonable attorneys’ fees, made by any third party or penalty imposed due to or arising out of the User’s breach of this Terms of Use, [privacy policy](privacy), [community guidelines](community) and other policies, or the User’s violation of any law, rules or regulations or the rights of a third party. + +This policy is effective from January 1, 2016. + +## User’s rights + +The User has the right to leave this service at any time and have their account deactivated. For a full list of rights as a User, please refer to our [privacy policy](privacy). + +## Governing law + +We are incorporated in India. All dealings with the User are governed by, interpreted and construed in accordance with the laws of India. If we have a dispute and any party wishes to initiate legal proceedings in a court of law, the courts at Bangalore, in the state of Karnataka, India shall have exclusive jurisdiction. + +The User’s activities under these terms must not violate applicable laws, must comply with our [community guidelines](community) (which we may amend from time to time) and are subject to deletion or suspension if we receive complaints from third parties. + +## Prohibited uses + +In addition to other prohibitions as set forth in the Terms of Service, the User is prohibited from using the site or its content: + +1. for any unlawful purpose; +2. to solicit others to perform or participate in any unlawful acts; +3. to violate any international, federal, provincial or state regulations, rules, laws, or local ordinances; +4. to infringe upon or violate our intellectual property rights or the intellectual property rights of others; +5. to harass, abuse, insult, harm, defame, slander, disparage, intimidate, or discriminate based on gender, sexual orientation, religion, ethnicity, race, age, national origin, or disability; +6. to submit false or misleading information; +7. to upload or transmit viruses or any other type of malicious code that will or may be used in any way that will affect the functionality or operation of the Service or of any related website, other websites, or the Internet; +8. to collect or track the personal information of others; +9. to spam, phish, pharm, pretext, spider, crawl, or scrape; +10. for any obscene or immoral purpose; or +11. to interfere with or circumvent the security features of the Service or any related website, other websites, or the Internet. We reserve the right to terminate the User’s use of the Service or any related website for violating any of the prohibited uses. + +We do not guarantee, represent or warrant that the User’s use of our Service will be uninterrupted, timely, secure or error-free. + +We do not warrant that the results that may be obtained from the use of the Service will be accurate or reliable. + +The User agrees that from time to time we may remove the Service for indefinite periods of time or cancel the Service at any time, without notice to the User. + +The User expressly agrees that the use of, or inability to use, the Service is at their sole risk. The service and all products and services delivered to the User through the Service are (except as expressly stated by us) provided ‘as is’ and ‘as available’ for their use, without any representation, warranties or conditions of any kind, either express or implied, including all implied warranties or conditions of merchantability, merchantable quality, fitness for a particular purpose, durability, title, and non-infringement. + +## Disclaimer + +The information contained in this Service is for general information purposes only. The information is provided by HasGeek and by users of this Service. While we endeavour to keep the information up to date and correct, we make no representations or warranties of any kind, express or implied, about the completeness, accuracy, reliability, suitability or availability with respect to the Service or the information, products, services, or related graphics contained on the Service for any purpose. Any reliance you place on such information is therefore strictly at your own risk. + +In no event will HasGeek be liable for any damages, including without limitation direct or indirect, special, incidental, or consequential damages, losses or expenses arising in connection with this Service or use thereof or inability to use by any party, or in connection with any failure of performance, error, omission, interruption, defect, delay in operation or transmission, computer virus or line or system failure, even if HasGeek, or representatives thereof, are advised of the possibility of such damages, losses or expenses. + +Through this Service you are able to link to other websites and apps which are not under the control of HasGeek. We have no control over the nature, content and availability of those websites and apps. The inclusion of any links does not necessarily imply a recommendation or endorse the views expressed within them. + +## Branding and APIs + +This Service contains material which is owned by or licensed to us. This material includes, but is not limited to, the design, layout, look, appearance and graphics. Reproduction is prohibited other than in accordance with the copyright notice, which forms part of these terms and conditions. + +HasGeek makes available APIs or interfaces that expose content and functionality from HasGeek’s Services to third party developers. If an API is likely to expose non-public information contributed by the User, we will obtain the User’s consent before enabling it. We will have rules governing the use of the API by such developers/companies/third party websites, but we cannot be held responsible for their use of the API in a manner that is inappropriate or violates an applicable law. + +## Content and scope + +HasGeek reserves the right, but has no obligation, to monitor the materials posted on its Services. HasGeek shall have the right to remove or edit any content that in its sole discretion violates, or is alleged to violate, any applicable law or either the spirit or letter of these Terms of Service or [community guidelines](community). Notwithstanding this right of HasGeek, THE USER SHALL REMAIN SOLELY RESPONSIBLE FOR THE CONTENT OF THE MATERIALS THAT IS POSTED ON THE HASGEEK SERVICES WHETHER SUCH CONTENT IS ACCESSIBLE AND/OR VISIBLE PUBLICLY OR OTHERWISE. + +All trademarks reproduced in this Service which are not the property of, or licensed to, the operator are acknowledged on the Service wherever we have been made aware of a trademark claim. We respond seriously to copyright infringements by removing the said content and de-activating the account responsible. For a full list of our rules regarding content, please refer to our [community guidelines](community). + +The User’s use of any information or materials on this Service is entirely at their own risk, for which we shall not be liable. It shall be the User’s own responsibility to ensure that any products, services or information available through this Service meet their specific requirements. + +## Third party dealings + +From time to time this Service may also include links to other websites. These links are provided for the User’s convenience to provide further information. They do not signify that we endorse the website(s). We have no responsibility for the content of the linked website(s). + +Through the User’s use of our Services or attendance at our events, with or without our intervention or facilitation, they may engage with other individuals or companies, including, for instance, advertisers or prospective employers. The User’s dealings with them are their business entirely. + +## Payment and pricing + +We charge for certain Services and provide other Services without charge. But whether we do charge or not is a commercial decision and we believe it is important that we reserve the right to change pricing and related policies if we feel the need to do so. We will alert the User when we are about to effect such changes that affect them. + +HasGeek may provide more than one payment method as a convenience to the User. This may include online payment gateways operated by other companies. The operation of these payment transactions occurs outside our control and we only receive a confirmation of payment from the payment gateway provider. There are a number of reasons why the User’s payment transaction may fail and we may not be able to provide a suitable explanation for that failure. We are incorporated as an Indian entity and only accept payments in Indian currency. + +## Fulfilment + +For specific products and services, we provide product fulfilment terms that determine when a product or service is deemed to be delivered. + +**Hasjob job board** + +The terms of service specific to listing a job are listed under the [Hasjob terms of service](https://hasjob.co/tos). + +**Events** + +HasGeek organizes events e.g. conferences, workshops, hackathons and meetups for the community, and incurs expenses for venue, food, stationery & printing, audio & video facilities as well as other rental or purchased equipment. HasGeek reserves entry to select events only to valid ticket holders. A ticket is valid only for the persons named on the ticket issued by us. + +Pricing for each event will be publicly available for a specified period before the event. Apart from making tickets available online, HasGeek may also hold a portion of the venue capacity for onsite ticket purchases. Tickets will be available for purchase until there is capacity at the venue, as defined by its safety guidelines or as set by HasGeek, whichever is lower. + +Fulfilment for an event happens on the conclusion of the event associated with a validly purchased/issued ticket. That means that ‘technically’ the service has been provided once the event ends, even though we may provide the User with additional materials after the event. + +**Advertising** + +The terms of service specific to submitting an advertising or sponsorship request are listed under the [Advertising terms of service](adtos). + +## Refunds + +For our refund policy regarding cancellation and returns, please refer to our [Refunds policy](refunds). + +## Support + +If there are any questions regarding this privacy policy, [please contact us](/about/contact) in the manner most suitable to you. diff --git a/funnel/pages/about/team.md b/funnel/pages/about/team.md new file mode 100644 index 000000000..7bd617448 --- /dev/null +++ b/funnel/pages/about/team.md @@ -0,0 +1,21 @@ +title: HasGeek team + +We are a small group of broad-minded geeks, communicators, and overall nice people. + +* Abhishek Balaji ([@booleanbalaji](https://twitter.com/booleanbalaji)) +* Anand V ([@iam_anandv](https://twitter.com/iam_anandv)) +* Anish TP ([@tepotheus](https://twitter.com/tepotheus)) +* Arun Teja Godavarthi ([@zeospec](https://twitter.com/zeospec)) +* Bibhas Debnath ([@bibhasdn](https://twitter.com/bibhasdn)) +* Hari CM ([@haricm](http://twitter.com/haricm)) +* Jayalakshmi AG +* Jyothsna Madabusi +* Kiran Jonnalagadda, director ([@jackerhack](https://twitter.com/jackerhack)) +* Manjunath AK ([@manjuak](https://twitter.com/manjuak)) +* Shodhan Prakash ([@prakashshodhan](https://twitter.com/prakashshodhan)) +* Stephanie Browne +* Vidya Ramakrishnan ([@vidya_ramki](https://twitter.com/vidya_ramki)) +* Zainab Bawa, director ([@zainabbawa](https://twitter.com/zainabbawa)) + +## Careers with HasGeek +Please look up [our Hasjob page](https://hasjob.co/hasgeek.com) for our work environment and current openings, or drop in during [Open House on Fridays](contact) to discuss in person. diff --git a/funnel/templates/about.html.jinja2 b/funnel/templates/about.html.jinja2 new file mode 100644 index 000000000..30c466704 --- /dev/null +++ b/funnel/templates/about.html.jinja2 @@ -0,0 +1,47 @@ +{% extends "layout.html.jinja2" %} +{% block title %}{{ page.title }}{% endblock %} + +{% block top_title %} +

{{ self.title() }}

+{% endblock %} + +{% block contentwrapper -%} +
+ + +
+ {{ page.html | safe }} +
+
+{%- endblock %} \ No newline at end of file diff --git a/funnel/templates/index.html.jinja2 b/funnel/templates/index.html.jinja2 index 171091806..e44bfe503 100644 --- a/funnel/templates/index.html.jinja2 +++ b/funnel/templates/index.html.jinja2 @@ -79,3 +79,26 @@ {% endif %} {% endblock %} + +{% block footer %} +
+
+
+

{% if 'FOOTER_MESSAGE' in config %}{{ config['FOOTER_MESSAGE'] }}{% else %}{% trans %}Copyright © 2010-18 HasGeek{% endtrans %}{% endif %}

+

About us and site policies

+

+ #2699, 19th Main, 5th Cross,
Indiranagar HAL 2nd Stage, Bangalore - 560008,
info@hasgeek.com, +91 7676 33 2020 +

+
+ + Like HasGeek's page on Facebook +
+

+ Hosted by E2E Networks +

+
+
+
+{% endblock %} \ No newline at end of file diff --git a/funnel/views/index.py b/funnel/views/index.py index a73aea1bb..1ba199479 100644 --- a/funnel/views/index.py +++ b/funnel/views/index.py @@ -1,8 +1,9 @@ # -*- coding: utf-8 -*- +import os.path from flask import g, render_template, redirect, jsonify from coaster.views import jsonp, load_model, render_with -from .. import app, funnelapp +from .. import app, funnelapp, pages from ..models import Profile, ProposalSpace, Proposal from .space import space_data @@ -88,3 +89,10 @@ def space_redirect_csv(space): @load_model(Proposal, {'id': 'id'}, 'proposal') def proposal_redirect(proposal): return redirect(proposal.url_for()) + + +@app.route('/about/', defaults={'path': 'index'}) +@app.route('/about/policy/', defaults={'path': 'policy/index'}) +@app.route('/about/') +def about(path): + return render_template('about.html.jinja2', page=pages.get_or_404(os.path.join('about', path))) diff --git a/requirements.txt b/requirements.txt index 840f45451..e2fb505f5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -14,3 +14,4 @@ qrcode==6.0 rq==0.12.0 psycopg2==2.7.5 Flask-Migrate==2.2.1 +Flask-FlatPages==0.6